Skip to content

Commit 9a38422

Browse files
committed
mixpanel: set "batch" as "$source" (integration id)
add utm_ prefix to all UTM properties update tests to match
1 parent 8a0b8a5 commit 9a38422

File tree

2 files changed

+76
-69
lines changed

2 files changed

+76
-69
lines changed

mixpanel-dispatcher/src/main/java/com/batch/android/dispatcher/mixpanel/MixpanelDispatcher.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ public class MixpanelDispatcher implements BatchEventDispatcher
2323
/**
2424
* Mixpanel UTM tag keys
2525
*/
26-
private static final String CAMPAIGN = "campaign";
27-
private static final String SOURCE = "source";
28-
private static final String MEDIUM = "medium";
29-
private static final String CONTENT = "content";
26+
private static final String CAMPAIGN = "utm_campaign";
27+
private static final String SOURCE = "utm_source";
28+
private static final String MEDIUM = "utm_medium";
29+
private static final String CONTENT = "utm_content";
30+
private static final String INTEGRATION_ID = "$source";
3031

3132
/**
3233
* UTM tag keys
@@ -53,7 +54,7 @@ public class MixpanelDispatcher implements BatchEventDispatcher
5354
private static final String MESSAGING_CLICK_NAME = "batch_in_app_click";
5455
private static final String UNKNOWN_EVENT_NAME = "batch_unknown";
5556

56-
private MixpanelAPI mixpanelInstance = null;
57+
MixpanelAPI mixpanelInstance = null;
5758

5859
MixpanelDispatcher()
5960
{
@@ -93,6 +94,7 @@ public void dispatchEvent(@NonNull Batch.EventDispatcher.Type type,
9394
} else if (type.isMessagingEvent()) {
9495
mixpanelParams = getInAppParams(payload);
9596
}
97+
mixpanelParams.put(INTEGRATION_ID, "batch");
9698

9799
if (mixpanelInstance != null) {
98100
mixpanelInstance.trackMap(getMixpanelEventName(type), mixpanelParams);
@@ -107,7 +109,6 @@ private static Map<String, Object> getInAppParams(Batch.EventDispatcher.Payload
107109
{
108110
Map<String, Object> mixpanelParams = new HashMap<>();
109111
mixpanelParams.put(CAMPAIGN, payload.getTrackingId());
110-
mixpanelParams.put(SOURCE, "batch");
111112
mixpanelParams.put(MEDIUM, "in-app");
112113
mixpanelParams.put(BATCH_TRACKING_ID, payload.getTrackingId());
113114

@@ -135,7 +136,6 @@ private static Map<String, Object> getInAppParams(Batch.EventDispatcher.Payload
135136
private static Map<String, Object> getNotificationParams(Batch.EventDispatcher.Payload payload)
136137
{
137138
Map<String, Object> mixpanelParams = new HashMap();
138-
mixpanelParams.put(SOURCE, "batch");
139139
mixpanelParams.put(MEDIUM, "push");
140140

141141
String deeplink = payload.getDeeplink();

mixpanel-dispatcher/src/test/java/com/batch/android/dispatcher/mixpanel/MixpanelDispatcherTest.java

Lines changed: 69 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void setUp() {
4949
mixpanel = PowerMockito.mock(MixpanelAPI.class);
5050

5151
mixpanelDispatcher = new MixpanelDispatcher();
52-
mixpanelDispatcher.setMixpanelInstance(mixpanel);
52+
mixpanelDispatcher.mixpanelInstance = mixpanel;
5353
}
5454

5555
@Test
@@ -60,8 +60,8 @@ public void testNotificationNoData() {
6060
new HashMap());
6161

6262
Map<String, Object> expected = new HashMap();
63-
expected.put("medium", "push");
64-
expected.put("source", "batch");
63+
expected.put("utm_medium", "push");
64+
expected.put("$source", "batch");
6565

6666
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_DISPLAY, payload);
6767
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_display"), Mockito.eq(expected));
@@ -75,10 +75,11 @@ public void testNotificationDeeplinkQueryVars() {
7575
new HashMap());
7676

7777
Map<String, Object> expected = new HashMap();
78-
expected.put("medium", "push-batch");
79-
expected.put("source", "batchsdk");
80-
expected.put("campaign", "yoloswag");
81-
expected.put("content", "button1");
78+
expected.put("$source", "batch");
79+
expected.put("utm_medium", "push-batch");
80+
expected.put("utm_source", "batchsdk");
81+
expected.put("utm_campaign", "yoloswag");
82+
expected.put("utm_content", "button1");
8283

8384
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_DISPLAY, payload);
8485
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_display"), mapEq(expected));
@@ -92,10 +93,11 @@ public void testNotificationDeeplinkQueryVarsEncode() {
9293
new HashMap());
9394

9495
Map<String, Object> expected = new HashMap();
95-
expected.put("medium", "push-batch");
96-
expected.put("source", "[batchsdk]");
97-
expected.put("campaign", "yoloswag");
98-
expected.put("content", "button1");
96+
expected.put("$source", "batch");
97+
expected.put("utm_medium", "push-batch");
98+
expected.put("utm_source", "[batchsdk]");
99+
expected.put("utm_campaign", "yoloswag");
100+
expected.put("utm_content", "button1");
99101

100102
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_DISPLAY, payload);
101103
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_display"), mapEq(expected));
@@ -109,10 +111,11 @@ public void testNotificationDeeplinkFragmentVars() {
109111
new HashMap());
110112

111113
Map<String, Object> expected = new HashMap();
112-
expected.put("medium", "pushbatch01");
113-
expected.put("source", "batch-sdk");
114-
expected.put("campaign", "154879548754");
115-
expected.put("content", "notif001");
114+
expected.put("$source", "batch");
115+
expected.put("utm_medium", "pushbatch01");
116+
expected.put("utm_source", "batch-sdk");
117+
expected.put("utm_campaign", "154879548754");
118+
expected.put("utm_content", "notif001");
116119

117120
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_OPEN, payload);
118121
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_open"), mapEq(expected));
@@ -126,10 +129,11 @@ public void testNotificationDeeplinkFragmentVarsEncode() {
126129
new HashMap());
127130

128131
Map<String, Object> expected = new HashMap();
129-
expected.put("medium", "pushbatch01");
130-
expected.put("source", "[batch-sdk]");
131-
expected.put("campaign", "154879548754");
132-
expected.put("content", "notif001");
132+
expected.put("$source", "batch");
133+
expected.put("utm_medium", "pushbatch01");
134+
expected.put("utm_source", "[batch-sdk]");
135+
expected.put("utm_campaign", "154879548754");
136+
expected.put("utm_content", "notif001");
133137

134138
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_OPEN, payload);
135139
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_open"), mapEq(expected));
@@ -148,9 +152,10 @@ public void testNotificationCustomPayload() {
148152
customPayload);
149153

150154
Map<String, Object> expected = new HashMap();
151-
expected.put("medium", "654987");
152-
expected.put("source", "jesuisuntest");
153-
expected.put("campaign", "heinhein");
155+
expected.put("$source", "batch");
156+
expected.put("utm_medium", "654987");
157+
expected.put("utm_source", "jesuisuntest");
158+
expected.put("utm_campaign", "heinhein");
154159

155160
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_DISPLAY, payload);
156161
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_display"), mapEq(expected));
@@ -166,10 +171,11 @@ public void testNotificationDeeplinkPriority() {
166171
customPayload);
167172

168173
Map<String, Object> expected = new HashMap();
169-
expected.put("medium", "654987");
170-
expected.put("source", "batchsdk");
171-
expected.put("campaign", "yoloswag");
172-
expected.put("content", "notif001");
174+
expected.put("$source", "batch");
175+
expected.put("utm_medium", "654987");
176+
expected.put("utm_source", "batchsdk");
177+
expected.put("utm_campaign", "yoloswag");
178+
expected.put("utm_content", "notif001");
173179

174180
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_OPEN, payload);
175181
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_open"), mapEq(expected));
@@ -183,9 +189,10 @@ public void testNotificationDeeplinkNonTrimmed() {
183189
customPayload);
184190

185191
Map<String, Object> expected = new HashMap();
186-
expected.put("medium", "push");
187-
expected.put("source", "batchsdk");
188-
expected.put("campaign", "yoloswag");
192+
expected.put("$source", "batch");
193+
expected.put("utm_medium", "push");
194+
expected.put("utm_source", "batchsdk");
195+
expected.put("utm_campaign", "yoloswag");
189196

190197
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_OPEN, payload);
191198
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_open"), mapEq(expected));
@@ -200,9 +207,9 @@ public void testNotificationDismissCampaign() {
200207
customPayload);
201208

202209
Map<String, Object> expected = new HashMap();
203-
expected.put("medium", "push");
204-
expected.put("source", "batch");
205-
expected.put("campaign", "yoloswag");
210+
expected.put("utm_medium", "push");
211+
expected.put("$source", "batch");
212+
expected.put("utm_campaign", "yoloswag");
206213

207214
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.NOTIFICATION_DISMISS, payload);
208215
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_notification_dismiss"), mapEq(expected));
@@ -216,9 +223,9 @@ public void testInAppNoData() {
216223
new HashMap());
217224

218225
Map<String, Object> expected = new HashMap();
219-
expected.put("medium", "in-app");
220-
expected.put("source", "batch");
221-
expected.put("campaign", null);
226+
expected.put("utm_medium", "in-app");
227+
expected.put("$source", "batch");
228+
expected.put("utm_campaign", null);
222229
expected.put("batch_tracking_id", null);
223230

224231
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_SHOW, payload);
@@ -234,10 +241,10 @@ public void testInAppShowUppercaseQueryVars() {
234241

235242
Map<String, Object> expected = new HashMap();
236243
expected.put("batch_tracking_id", null);
237-
expected.put("medium", "in-app");
238-
expected.put("source", "batch");
239-
expected.put("campaign", null);
240-
expected.put("content", "jesuisuncontent");
244+
expected.put("utm_medium", "in-app");
245+
expected.put("$source", "batch");
246+
expected.put("utm_campaign", null);
247+
expected.put("utm_content", "jesuisuncontent");
241248

242249
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_SHOW, payload);
243250
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_show"), mapEq(expected));
@@ -252,10 +259,10 @@ public void testInAppShowUppercaseFragmentVars() {
252259

253260
Map<String, Object> expected = new HashMap();
254261
expected.put("batch_tracking_id", null);
255-
expected.put("medium", "in-app");
256-
expected.put("source", "batch");
257-
expected.put("campaign", null);
258-
expected.put("content", "jesuisuncontent");
262+
expected.put("utm_medium", "in-app");
263+
expected.put("$source", "batch");
264+
expected.put("utm_campaign", null);
265+
expected.put("utm_content", "jesuisuncontent");
259266

260267
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_SHOW, payload);
261268
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_show"), mapEq(expected));
@@ -269,9 +276,9 @@ public void testInAppTrackingId() {
269276
new HashMap());
270277

271278
Map<String, Object> expected = new HashMap();
272-
expected.put("medium", "in-app");
273-
expected.put("source", "batch");
274-
expected.put("campaign", "jesuisunid");
279+
expected.put("utm_medium", "in-app");
280+
expected.put("$source", "batch");
281+
expected.put("utm_campaign", "jesuisunid");
275282
expected.put("batch_tracking_id", "jesuisunid");
276283

277284
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_CLICK, payload);
@@ -286,11 +293,11 @@ public void testInAppDeeplinkContentQueryVars() {
286293
new HashMap());
287294

288295
Map<String, Object> expected = new HashMap();
289-
expected.put("medium", "in-app");
290-
expected.put("source", "batch");
291-
expected.put("campaign", "jesuisunid");
296+
expected.put("utm_medium", "in-app");
297+
expected.put("$source", "batch");
298+
expected.put("utm_campaign", "jesuisunid");
292299
expected.put("batch_tracking_id", "jesuisunid");
293-
expected.put("content", "jesuisuncontent");
300+
expected.put("utm_content", "jesuisuncontent");
294301

295302
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_CLOSE, payload);
296303
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_close"), mapEq(expected));
@@ -304,11 +311,11 @@ public void testInAppDeeplinkFragmentQueryVars() {
304311
new HashMap());
305312

306313
Map<String, Object> expected = new HashMap();
307-
expected.put("medium", "in-app");
308-
expected.put("source", "batch");
309-
expected.put("campaign", "jesuisunid");
314+
expected.put("utm_medium", "in-app");
315+
expected.put("$source", "batch");
316+
expected.put("utm_campaign", "jesuisunid");
310317
expected.put("batch_tracking_id", "jesuisunid");
311-
expected.put("content", "jesuisuncontent00587");
318+
expected.put("utm_content", "jesuisuncontent00587");
312319

313320
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_SHOW, payload);
314321
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_show"), mapEq(expected));
@@ -322,11 +329,11 @@ public void testInAppDeeplinkContentPriority() {
322329
new HashMap());
323330

324331
Map<String, Object> expected = new HashMap();
325-
expected.put("medium", "in-app");
326-
expected.put("source", "batch");
327-
expected.put("campaign", "jesuisunid");
332+
expected.put("utm_medium", "in-app");
333+
expected.put("$source", "batch");
334+
expected.put("utm_campaign", "jesuisunid");
328335
expected.put("batch_tracking_id", "jesuisunid");
329-
expected.put("content", "jesuisuncontent002");
336+
expected.put("utm_content", "jesuisuncontent002");
330337

331338
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_AUTO_CLOSE, payload);
332339
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_auto_close"), mapEq(expected));
@@ -340,11 +347,11 @@ public void testInAppDeeplinkContentNoId() {
340347
new HashMap());
341348

342349
Map<String, Object> expected = new HashMap();
343-
expected.put("medium", "in-app");
344-
expected.put("source", "batch");
345-
expected.put("campaign", null);
350+
expected.put("utm_medium", "in-app");
351+
expected.put("$source", "batch");
352+
expected.put("utm_campaign", null);
346353
expected.put("batch_tracking_id", null);
347-
expected.put("content", "jesuisuncontent");
354+
expected.put("utm_content", "jesuisuncontent");
348355

349356
mixpanelDispatcher.dispatchEvent(Batch.EventDispatcher.Type.MESSAGING_CLICK, payload);
350357
Mockito.verify(mixpanel).trackMap(Mockito.eq("batch_in_app_click"), mapEq(expected));

0 commit comments

Comments
 (0)