|
1 | 1 | package com.xendit.Tracker;
|
2 | 2 |
|
3 |
| -import com.snowplowanalytics.snowplow.tracker.*; |
4 |
| -import com.snowplowanalytics.snowplow.tracker.emitter.HttpMethod; |
5 |
| -import com.snowplowanalytics.snowplow.tracker.emitter.RequestCallback; |
6 |
| -import com.snowplowanalytics.snowplow.tracker.emitter.RequestSecurity; |
| 3 | +import com.snowplowanalytics.snowplow.Snowplow; |
| 4 | +import com.snowplowanalytics.snowplow.configuration.EmitterConfiguration; |
| 5 | +import com.snowplowanalytics.snowplow.configuration.GdprConfiguration; |
| 6 | +import com.snowplowanalytics.snowplow.configuration.NetworkConfiguration; |
| 7 | +import com.snowplowanalytics.snowplow.configuration.SessionConfiguration; |
| 8 | +import com.snowplowanalytics.snowplow.configuration.TrackerConfiguration; |
| 9 | +import com.snowplowanalytics.snowplow.controller.TrackerController; |
| 10 | +import com.snowplowanalytics.snowplow.network.HttpMethod; |
| 11 | +import com.snowplowanalytics.snowplow.network.RequestCallback; |
| 12 | +import com.snowplowanalytics.snowplow.tracker.DevicePlatform; |
| 13 | +import com.snowplowanalytics.snowplow.util.Basis; |
| 14 | +import com.snowplowanalytics.snowplow.util.TimeMeasure; |
7 | 15 |
|
8 | 16 | import android.content.Context;
|
9 | 17 | import android.util.Log;
|
10 | 18 |
|
| 19 | +import java.util.concurrent.TimeUnit; |
| 20 | + |
11 | 21 | public class SnowplowTrackerBuilder {
|
12 |
| - public static Tracker getTracker(Context context) { |
13 |
| - Emitter emitter = getEmitter(context); |
14 |
| - Subject subject = getSubject(context); // Optional |
| 22 | + private static String COLLECTOR_URL = "https://snowplow-collector.iluma.ai"; |
15 | 23 |
|
16 |
| - return Tracker.init(new Tracker.TrackerBuilder(emitter, "TPI", "xendit-android-sdk", context) |
17 |
| - .subject(subject) // Optional |
18 |
| - .mobileContext(true) |
19 |
| - .build() |
| 24 | + public static TrackerController getTracker(Context context) { |
| 25 | + if (Snowplow.getDefaultTracker() != null) { |
| 26 | + return Snowplow.getDefaultTracker(); |
| 27 | + } |
| 28 | + NetworkConfiguration networkConfig = new NetworkConfiguration( |
| 29 | + COLLECTOR_URL, |
| 30 | + HttpMethod.POST |
20 | 31 | );
|
| 32 | + EmitterConfiguration emitterConfiguration = new EmitterConfiguration() |
| 33 | + .threadPoolSize(20) |
| 34 | + .emitRange(500) |
| 35 | + .byteLimitPost(52000); |
| 36 | + TrackerConfiguration trackerConfiguration = |
| 37 | + new TrackerConfiguration("xendit-android-sdk") |
| 38 | + .base64encoding(false) |
| 39 | + .devicePlatform(DevicePlatform.Mobile) |
| 40 | + .sessionContext(true) |
| 41 | + .platformContext(true) |
| 42 | + .applicationContext(true) |
| 43 | + .geoLocationContext(false) |
| 44 | + .lifecycleAutotracking(true) |
| 45 | + .screenViewAutotracking(true) |
| 46 | + .screenContext(true) |
| 47 | + .exceptionAutotracking(true) |
| 48 | + .installAutotracking(true); |
| 49 | + GdprConfiguration gdprConfiguration = new GdprConfiguration( |
| 50 | + Basis.CONSENT, |
| 51 | + "", |
| 52 | + "", |
| 53 | + "" |
| 54 | + ); |
| 55 | + SessionConfiguration sessionConfig = new SessionConfiguration( |
| 56 | + new TimeMeasure(30, TimeUnit.MINUTES), |
| 57 | + new TimeMeasure(30, TimeUnit.MINUTES) |
| 58 | + ); |
| 59 | + TrackerController tracker = Snowplow.createTracker( |
| 60 | + context, |
| 61 | + "TPI", |
| 62 | + networkConfig, |
| 63 | + trackerConfiguration, |
| 64 | + emitterConfiguration, |
| 65 | + sessionConfig, |
| 66 | + gdprConfiguration); |
| 67 | + Snowplow.setTrackerAsDefault(tracker); |
| 68 | + return tracker; |
21 | 69 | }
|
22 | 70 |
|
23 |
| - private static Emitter getEmitter(Context context) { |
24 |
| - return new Emitter.EmitterBuilder("snowplow-collector.iluma.ai", context) |
25 |
| - .security(RequestSecurity.HTTPS) |
26 |
| - .method(HttpMethod.POST) |
27 |
| - .build(); |
28 |
| - } |
29 |
| - |
30 |
| - private static Subject getSubject(Context context) { |
31 |
| - return new Subject.SubjectBuilder() |
32 |
| - .context(context) |
33 |
| - .build(); |
34 |
| - } |
35 |
| - |
36 |
| - |
37 | 71 | private static RequestCallback callback = new RequestCallback() {
|
38 | 72 | @Override
|
39 | 73 | public void onSuccess(int successCount) {
|
40 | 74 | Log.d("Tracker", "Buffer length for POST/GET:" + successCount);
|
41 | 75 | }
|
| 76 | + |
42 | 77 | @Override
|
43 | 78 | public void onFailure(int successCount, int failureCount) {
|
44 | 79 | Log.d("Tracker", "Failures: " + failureCount + "; Successes: " + successCount);
|
|
0 commit comments