Initialization
Assuming you have completed the Java Tracker Setup for your project, you are now ready to initialize the Java Tracker.
Importing the module#
Import the Java Tracker's classes into your Java code like so:
import com.snowplowanalytics.snowplow.tracker.*;
import com.snowplowanalytics.snowplow.tracker.emitter.*;
import com.snowplowanalytics.snowplow.tracker.http.*;
That's it - you are now ready to initialize a Tracker instance.
Creating a Tracker#
To instantiate a tracker in your code (can be global or local to the process being tracked) simply instantiate the Tracker interface with the following builder patterm:
Tracker.TrackerBuilder(Emitter : emitter, String : namespace, String : appId)
.subject(Subject)
.base64(boolean)
.platform(enum DevicePlatforms)
.build();
For example:
Tracker tracker = new Tracker.TrackerBuilder(emitter, "AF003", "cf")
.subject(user1Subject)
.base64(true)
.platform(DevicePlatform.Desktop)
.build();
| Argument Name | Description | Required? | Default |
|---|---|---|---|
emitter | The Emitter object you create | Yes | Null |
namespace | The name of the tracker instance | Yes | Null |
appId | The application ID | Yes | Null |
subject | The subject that defines a user | No | Null |
base64 | Whether to enable base 64 encoding | No | True |
platform | The device the Tracker is running on | No | ServerSideApp |
emitter
The emitter to which the tracker will send events. See Emitters for more on emitter configuration.
To attach a new Emitter to the Tracker:
Emitter emitter = BatchEmitter.builder()
.url(collectorEndpoint)
.bufferSize(5)
.build();
Tracker tracker = new Tracker.TrackerBuilder(emitter, "AF003", "sp")
.base64(true)
.build();
subject
The user which the Tracker will track. This should be an instance of the Subject class. You don't need to set this during Tracker construction; you can also include a Subject object with the actual event; this will override the Tracker attached subject.
In fact, you don't need to create a subject at all. If you don't, though, your events won't contain user-specific data such as timezone and language.
To attach a new Subject to the Tracker:
Subject subject = SubjectBuilder.builder()
.userId("e2479592-4e9a-4d75-948c-7c02d2f718df")
.build();
Tracker tracker = new Tracker.TrackerBuilder(emitter, "AF003", "sp")
.subject(subject)
.base64(true)
.platform(DevicePlatform.Desktop)
.build();
For a full list of supported platforms, please see the Snowplow Tracker Protocol.