com.dmurph.tracking
Class JGoogleAnalyticsTracker

java.lang.Object
  extended by com.dmurph.tracking.JGoogleAnalyticsTracker

public class JGoogleAnalyticsTracker
extends Object

Common tracking calls are implemented as methods, but if you want to control what data to send, then use makeCustomRequest(AnalyticsRequestData). If you are making custom calls, the only requirements are:

See the Google Troubleshooting Guide for more info on the tracking parameters (although it doesn't seem to be fully updated).

The tracker can operate in three modes:

To halt the background thread safely, use the call stopBackgroundThread(long), where the parameter is the timeout to wait for any remaining queued tracking calls to be made. Keep in mind that if new tracking requests are made after the thread is stopped, they will just be stored in the queue, and will not be sent to GA until the thread is started again with startBackgroundThread() (This is assuming you are in single-threaded mode to begin with).

Author:
Daniel Murphy, Stefan Brozinski

Nested Class Summary
static class JGoogleAnalyticsTracker.DispatchMode
           
static class JGoogleAnalyticsTracker.GoogleAnalyticsVersion
           
 
Constructor Summary
JGoogleAnalyticsTracker(AnalyticsConfigData argConfigData, JGoogleAnalyticsTracker.GoogleAnalyticsVersion argVersion)
           
JGoogleAnalyticsTracker(AnalyticsConfigData argConfigData, JGoogleAnalyticsTracker.GoogleAnalyticsVersion argVersion, JGoogleAnalyticsTracker.DispatchMode argMode)
           
 
Method Summary
static void completeBackgroundTasks(long timeoutMillis)
          Wait for background tasks to complete.
 JGoogleAnalyticsTracker.DispatchMode getDispatchMode()
          Gets the current dispatch mode.
 boolean isEnabled()
          If the api is dispatching tracking requests (default of true).
 boolean isMultiThreaded()
          Convenience method to check if the tracker is in multi-thread mode
 boolean isSingleThreaded()
          Convenience method to check if the tracker is in single-thread mode
 boolean isSynchronous()
          Convenience method to check if the tracker is in synchronous mode.
 void makeCustomRequest(AnalyticsRequestData argData)
          Makes a custom tracking request based from the given data.
 void resetSession()
          Resets the session cookie.
 void setDispatchMode(JGoogleAnalyticsTracker.DispatchMode argMode)
          Sets the dispatch mode
 void setEnabled(boolean argEnabled)
          Sets if the api dispatches tracking requests.
static void setProxy(Proxy argProxy)
          Define the proxy to use for all GA tracking requests.
static void setProxy(String proxyAddr)
          Define the proxy to use for all GA tracking requests.
static void stopBackgroundThread(long timeoutMillis)
          Stop the long-lived background thread.
 void trackEvent(String argCategory, String argAction)
          Tracks an event.
 void trackEvent(String argCategory, String argAction, String argLabel)
          Tracks an event.
 void trackEvent(String argCategory, String argAction, String argLabel, Integer argValue)
          Tracks an event.
 void trackPageView(String argPageURL, String argPageTitle, String argHostName)
          Tracks a page view.
 void trackPageViewFromReferrer(String argPageURL, String argPageTitle, String argHostName, String argReferrerSite, String argReferrerPage)
          Tracks a page view.
 void trackPageViewFromSearch(String argPageURL, String argPageTitle, String argHostName, String argSearchSource, String argSearchKeywords)
          Tracks a page view.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JGoogleAnalyticsTracker

public JGoogleAnalyticsTracker(AnalyticsConfigData argConfigData,
                               JGoogleAnalyticsTracker.GoogleAnalyticsVersion argVersion)

JGoogleAnalyticsTracker

public JGoogleAnalyticsTracker(AnalyticsConfigData argConfigData,
                               JGoogleAnalyticsTracker.GoogleAnalyticsVersion argVersion,
                               JGoogleAnalyticsTracker.DispatchMode argMode)
Method Detail

setDispatchMode

public void setDispatchMode(JGoogleAnalyticsTracker.DispatchMode argMode)
Sets the dispatch mode

Parameters:
argMode - the mode to to put the tracker in. If this is null, the tracker defaults to JGoogleAnalyticsTracker.DispatchMode.SINGLE_THREAD
See Also:
JGoogleAnalyticsTracker.DispatchMode

getDispatchMode

public JGoogleAnalyticsTracker.DispatchMode getDispatchMode()
Gets the current dispatch mode. Default is JGoogleAnalyticsTracker.DispatchMode.SINGLE_THREAD.

Returns:
See Also:
JGoogleAnalyticsTracker.DispatchMode

isSynchronous

public boolean isSynchronous()
Convenience method to check if the tracker is in synchronous mode.

Returns:

isSingleThreaded

public boolean isSingleThreaded()
Convenience method to check if the tracker is in single-thread mode

Returns:

isMultiThreaded

public boolean isMultiThreaded()
Convenience method to check if the tracker is in multi-thread mode

Returns:

resetSession

public void resetSession()
Resets the session cookie.


setEnabled

public void setEnabled(boolean argEnabled)
Sets if the api dispatches tracking requests.

Parameters:
argEnabled -

isEnabled

public boolean isEnabled()
If the api is dispatching tracking requests (default of true).

Returns:

setProxy

public static void setProxy(Proxy argProxy)
Define the proxy to use for all GA tracking requests.

Call this static method early (before creating any tracking requests).

Parameters:
argProxy - The proxy to use

setProxy

public static void setProxy(String proxyAddr)
Define the proxy to use for all GA tracking requests.

Call this static method early (before creating any tracking requests).

Parameters:
proxyAddr - "addr:port" of the proxy to use; may also be given as URL ("http://addr:port/").

completeBackgroundTasks

public static void completeBackgroundTasks(long timeoutMillis)
Wait for background tasks to complete.

This works in queued and asynchronous mode.

Parameters:
timeoutMillis - The maximum number of milliseconds to wait.

trackPageView

public void trackPageView(String argPageURL,
                          String argPageTitle,
                          String argHostName)
Tracks a page view.

Parameters:
argPageURL - required, Google won't track without it. Ex: "org/me/javaclass.java", or anything you want as the page url.
argPageTitle - content title
argHostName - the host name for the url

trackPageViewFromReferrer

public void trackPageViewFromReferrer(String argPageURL,
                                      String argPageTitle,
                                      String argHostName,
                                      String argReferrerSite,
                                      String argReferrerPage)
Tracks a page view.

Parameters:
argPageURL - required, Google won't track without it. Ex: "org/me/javaclass.java", or anything you want as the page url.
argPageTitle - content title
argHostName - the host name for the url
argReferrerSite - site of the referrer. ex, www.dmurph.com
argReferrerPage - page of the referrer. ex, /mypage.php

trackPageViewFromSearch

public void trackPageViewFromSearch(String argPageURL,
                                    String argPageTitle,
                                    String argHostName,
                                    String argSearchSource,
                                    String argSearchKeywords)
Tracks a page view.

Parameters:
argPageURL - required, Google won't track without it. Ex: "org/me/javaclass.java", or anything you want as the page url.
argPageTitle - content title
argHostName - the host name for the url
argSearchSource - source of the search engine. ex: google
argSearchKeywords - the keywords of the search. ex: java google analytics tracking utility

trackEvent

public void trackEvent(String argCategory,
                       String argAction)
Tracks an event. To provide more info about the page, use makeCustomRequest(AnalyticsRequestData).

Parameters:
argCategory -
argAction -

trackEvent

public void trackEvent(String argCategory,
                       String argAction,
                       String argLabel)
Tracks an event. To provide more info about the page, use makeCustomRequest(AnalyticsRequestData).

Parameters:
argCategory -
argAction -
argLabel -

trackEvent

public void trackEvent(String argCategory,
                       String argAction,
                       String argLabel,
                       Integer argValue)
Tracks an event. To provide more info about the page, use makeCustomRequest(AnalyticsRequestData).

Parameters:
argCategory - required
argAction - required
argLabel - optional
argValue - optional

makeCustomRequest

public void makeCustomRequest(AnalyticsRequestData argData)
Makes a custom tracking request based from the given data.

Parameters:
argData -
Throws:
NullPointerException - if argData is null or if the URL builder is null

stopBackgroundThread

public static void stopBackgroundThread(long timeoutMillis)
Stop the long-lived background thread.

This method is needed for debugging purposes only. Calling it in an application is not really required: The background thread will terminate automatically when the application exits.

Parameters:
timeoutMillis - If nonzero, wait for thread completion before returning.


Copyright © 2011. All Rights Reserved.