-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.tpl
791 lines (730 loc) · 65.6 KB
/
template.tpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
___TERMS_OF_SERVICE___
By creating or modifying this file you agree to Google Tag Manager's Community
Template Gallery Developer Terms of Service available at
https://developers.google.com/tag-manager/gallery-tos (or such other URL as
Google may provide), as modified from time to time.
___INFO___
{
"type": "TAG",
"id": "cvt_temp_public_id",
"version": 1,
"securityGroups": [],
"displayName": "Kwai Pixel",
"brand": {
"id": "brand_dummy",
"displayName": "",
"thumbnail": "data:image/png;base64,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"
},
"description": "Install Kwai Pixel easily to your site without the need to write a line of event code.",
"containerContexts": [
"WEB"
]
}
___TEMPLATE_PARAMETERS___
[
{
"type": "GROUP",
"name": "Event",
"displayName": "Event Configuration",
"groupStyle": "NO_ZIPPY",
"subParams": [
{
"type": "TEXT",
"name": "pixelId",
"displayName": "Pixel ID",
"simpleValueType": true,
"help": "You can find your Pixel ID in Assets--web events",
"valueHint": "eg: 563028887941689429",
"valueValidators": [
{
"type": "NON_EMPTY"
}
]
},
{
"type": "SELECT",
"name": "eventName",
"displayName": "Trigger Event",
"macrosInSelect": false,
"selectItems": [
{
"value": "contentView",
"displayValue": "contentView"
},
{
"value": "addToCart",
"displayValue": "addToCart"
},
{
"value": "purchase",
"displayValue": "purchase"
},
{
"value": "completeRegistration",
"displayValue": "completeRegistration"
},
{
"value": "addPaymentInfo",
"displayValue": "addPaymentInfo"
},
{
"value": "buttonClick",
"displayValue": "buttonClick"
},
{
"value": "download",
"displayValue": "download"
},
{
"value": "formSubmit",
"displayValue": "formSubmit"
},
{
"value": "initiatedCheckout",
"displayValue": "initiatedCheckout"
},
{
"value": "contact",
"displayValue": "contact"
},
{
"value": "placeOrder",
"displayValue": "placeOrder"
},
{
"value": "search",
"displayValue": "search"
},
{
"value": "addToWishlist",
"displayValue": "addToWishlist"
},
{
"value": "subscribe",
"displayValue": "subscribe"
},
{
"value": "firstDeposit",
"displayValue": "firstDeposit"
},
{
"value": "creditApproval",
"displayValue": "creditApproval"
},
{
"value": "loanApplication",
"displayValue": "loanApplication"
},
{
"value": "loanCredit",
"displayValue": "loanCredit"
},
{
"value": "loanDisbursal",
"displayValue": "loanDisbursal"
},
{
"value": "creditCardApplication",
"displayValue": "creditCardApplication"
}
],
"simpleValueType": true,
"help": "supports standard events"
}
]
},
{
"type": "GROUP",
"name": "Object Properties",
"displayName": "Object Properties",
"groupStyle": "ZIPPY_CLOSED",
"subParams": [
{
"type": "LABEL",
"name": "Description",
"displayName": "Configure and send \u003ca href\u003d\"https://docs.qingque.cn/d/home/eZQBPnaAO4EoQJB8DG_CRh0na?identityId\u003d1oE4cJxM7Uq#section\u003dh.ylgg7ugtkwy3\"\u003eadditional parameters\u003c/a\u003e to Kwai for to improve Ad performance and unlock Ad features. \u003cbr /\u003e \u003cbr /\u003e"
},
{
"type": "RADIO",
"name": "product",
"displayName": "Manually Input Single / Multiple Products from Data Layer",
"radioItems": [
{
"value": "empty",
"displayValue": "No Contents"
},
{
"value": "single",
"displayValue": "Single Content"
},
{
"value": "multiple",
"displayValue": "Multiple Contents"
}
],
"simpleValueType": true,
"defaultValue": "empty"
},
{
"type": "TEXT",
"name": "contents",
"displayName": "contents",
"simpleValueType": true,
"valueHint": "[{ \"content_id\": \"301\", \"content_type\": \"product\", \"quantity\": 1, \"price\": 8 },{ \"content_id\": \"401\", \"content_type\": \"product\", \"quantity\": 1, \"price\": 1.2 }]",
"help": "Use contents when you have multiple content IDs. If you use contents in your parameter, you must also include the following in a sub-object: the product id or ids, and the quantity (number of items added to cart or purchased).",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "multiple",
"type": "EQUALS"
}
]
},
{
"type": "TEXT",
"name": "content_id",
"displayName": "*content_id",
"simpleValueType": true,
"help": "Product or content identifier",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
],
"valueValidators": [
{
"type": "NON_EMPTY"
}
]
},
{
"type": "SELECT",
"name": "content_type",
"displayName": "content_type",
"macrosInSelect": false,
"selectItems": [
{
"value": "product",
"displayValue": "product"
},
{
"value": "product_group",
"displayValue": "product_group"
}
],
"simpleValueType": true,
"help": "If you will be tracking events associated with individual products, set the value to product. If you are tracking events associated with product groups, set it to product_group instead.",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
],
"notSetText": ""
},
{
"type": "TEXT",
"name": "content_name",
"displayName": "content_name",
"simpleValueType": true,
"help": "Name of the page/product",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
],
"canBeEmptyString": true
},
{
"type": "TEXT",
"name": "content_category",
"displayName": "content_category",
"simpleValueType": true,
"help": "Category of the page/product",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
]
},
{
"type": "TEXT",
"name": "currency",
"displayName": "currency",
"simpleValueType": true,
"help": "Refers to currency used as a means of circulation in social and economic activities such as USD Must in Uppercase letters,like“USD”、“BRL”、“IDN”,details in \u003ca href\u003d\"https://en.wikipedia.org/wiki/ISO_4217\"\u003ehttps://en.wikipedia.org/wiki/ISO_4217\u003c/a\u003e",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "empty",
"type": "NOT_EQUALS"
}
]
},
{
"type": "TEXT",
"name": "value",
"displayName": "value",
"simpleValueType": true,
"help": "The total price of the order, like 10.13",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "empty",
"type": "NOT_EQUALS"
}
],
"valueValidators": [
{
"type": "REGEX",
"args": [
"^\\d*(\\.)?\\d*$"
]
}
]
},
{
"type": "TEXT",
"name": "quantity",
"displayName": "quantity",
"simpleValueType": true,
"help": "The number of product which is added to cart or bought by users",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
],
"valueValidators": [
{
"type": "REGEX",
"args": [
"^\\d*(\\.)?\\d*$"
]
}
]
},
{
"type": "TEXT",
"name": "price",
"displayName": "price",
"simpleValueType": true,
"help": "The price of the item, please use float number, like 4.99",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "single",
"type": "EQUALS"
}
],
"valueValidators": [
{
"type": "REGEX",
"args": [
"^\\d*(\\.)?\\d*$"
]
}
]
},
{
"type": "TEXT",
"name": "query",
"displayName": "query",
"simpleValueType": true,
"help": "Used with the Search event. The string entered by the user for the search.",
"enablingConditions": [
{
"paramName": "product",
"paramValue": "empty",
"type": "NOT_EQUALS"
}
]
}
]
}
]
___SANDBOXED_JS_FOR_WEB_TEMPLATE___
const version = '0_0_2';
const gtmLog = require('logToConsole');
const copyFromWindow = require('copyFromWindow');
const callInWindow = require('callInWindow');
const makeNumber = require('makeNumber');
const JSON = require('JSON');
const getProductParams = () => {
const params = {
partner: 'gtm' + version
};
const productMetrics = {
content_id: {},
content_type: {},
content_name: {},
content_category: {},
currency: {},
value: { format: makeNumber },
quantity: { format: makeNumber },
price: { format: makeNumber }
};
const saveIfExist = (key) => {
if (data[key]) {
let val = data[key];
if (productMetrics[key] && productMetrics[key].format) {
val = productMetrics[key].format(val);
}
params[key] = val;
}
};
if (data.product === 'single') {
[
'content_id',
'content_type',
'content_name',
'content_category',
'currency',
'value',
'quantity',
'price',
'query'
].forEach((key) => saveIfExist(key));
} else if (data.product === 'multiple') {
const parsedContents = JSON.parse(data.contents);
if (parsedContents !== undefined) {
params.contents = parsedContents;
} else {
params.contents = data.contents;
}
['currency', 'value', 'query'].forEach((key) => saveIfExist(key));
}
return params;
};
const main = () => {
gtmLog('Hello GTM!');
gtmLog(data);
// gtmLog(data.pixelId);
const params = getProductParams();
const configs = {
pixelId: data.pixelId.trim()
};
gtmLog(
'tracking with: event-',
data.eventName,
',params-',
params,
',configs-',
configs
);
callInWindow('kwaiq.track', data.eventName, params, configs);
};
const validate = (data) => {
const errors = [];
const warnings = [];
if (typeof data.pixelId === 'undefined' || data.pixelId.trim() === '') {
errors.push('pixelId not found');
}
if (typeof copyFromWindow('kwaiq') === 'undefined') {
errors.push('kwaiq not found');
}
for (const msg of errors) {
gtmLog('[ERROR] ' + msg);
}
return errors;
};
const start = () => {
const errors = validate(data);
if (errors.length > 0) {
data.gtmOnFailure();
return;
}
main();
data.gtmOnSuccess();
};
start();
___WEB_PERMISSIONS___
[
{
"instance": {
"key": {
"publicId": "logging",
"versionId": "1"
},
"param": [
{
"key": "environments",
"value": {
"type": 1,
"string": "debug"
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "access_globals",
"versionId": "1"
},
"param": [
{
"key": "keys",
"value": {
"type": 2,
"listItem": [
{
"type": 3,
"mapKey": [
{
"type": 1,
"string": "key"
},
{
"type": 1,
"string": "read"
},
{
"type": 1,
"string": "write"
},
{
"type": 1,
"string": "execute"
}
],
"mapValue": [
{
"type": 1,
"string": "kwaiq"
},
{
"type": 8,
"boolean": true
},
{
"type": 8,
"boolean": false
},
{
"type": 8,
"boolean": false
}
]
},
{
"type": 3,
"mapKey": [
{
"type": 1,
"string": "key"
},
{
"type": 1,
"string": "read"
},
{
"type": 1,
"string": "write"
},
{
"type": 1,
"string": "execute"
}
],
"mapValue": [
{
"type": 1,
"string": "kwaiq.track"
},
{
"type": 8,
"boolean": false
},
{
"type": 8,
"boolean": false
},
{
"type": 8,
"boolean": true
}
]
}
]
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
}
]
___TESTS___
scenarios:
- name: 1_Basic
code: |
const mockData = {
// Mocked field values
pixelId: '1',
eventName: 'contentView',
product: 'single',
content_type: 'product',
content_id: 'aaa'
};
// Call runCode to run the template's code.
runCode(mockData);
// Verify that the tag finished successfully.
assertThat(Calls['kwaiq.track'].length).isStrictlyEqualTo(1);
assertThat(Calls['kwaiq.track'][0].eventName).isEqualTo('contentView');
assertThat(Calls['kwaiq.track'][0].params.partner).isEqualTo('gtm0_0_2');
assertThat(Calls['kwaiq.track'][0].params.content_type).isEqualTo('product');
assertThat(Calls['kwaiq.track'][0].params.content_id).isEqualTo('aaa');
assertThat(Calls['kwaiq.track'][0].configs.pixelId).isEqualTo('1');
assertApi('gtmOnSuccess').wasCalled();
- name: 2_NoPixelId
code: |
const mockData = {
// Mocked field values
eventName: 'contentView'
};
// Call runCode to run the template's code.
runCode(mockData);
assertThat(errors.length).isStrictlyEqualTo(1);
assertThat(errors).contains('[ERROR] pixelId not found');
// Verify that the tag finished successfully.
assertApi('gtmOnFailure').wasCalled();
- name: 3_Properties-singleContent
code: |
const mockData = {
// Mocked field values
pixelId: '1',
eventName: 'purchase',
product: 'single',
content_id: '345',
content_type: 'product_group',
content_name: 'testName',
content_category: 'testCategory',
currency: 'USD',
price: '0.1',
value: '0.2',
quantity: '1.2',
query: 'testQuery'
};
// Call runCode to run the template's code.
runCode(mockData);
// Verify that the tag finished successfully.
assertThat(Calls['kwaiq.track'].length).isStrictlyEqualTo(1);
assertThat(Calls['kwaiq.track'][0].params.content_id).isEqualTo('345');
assertThat(Calls['kwaiq.track'][0].params.content_type).isEqualTo(
'product_group'
);
assertThat(Calls['kwaiq.track'][0].params.content_name).isEqualTo('testName');
assertThat(Calls['kwaiq.track'][0].params.content_category).isEqualTo(
'testCategory'
);
assertThat(Calls['kwaiq.track'][0].params.currency).isEqualTo('USD');
assertThat(Calls['kwaiq.track'][0].params.price).isEqualTo(0.1);
assertThat(Calls['kwaiq.track'][0].params.value).isEqualTo(0.2);
assertThat(Calls['kwaiq.track'][0].params.quantity).isEqualTo(1.2);
assertThat(Calls['kwaiq.track'][0].params.query).isEqualTo('testQuery');
assertApi('gtmOnSuccess').wasCalled();
- name: 4_Properties-Number
code: |
const mockData = {
// Mocked field values
pixelId: '1',
eventName: 'purchase',
product: 'single',
content_id: '345',
price: '0.1',
value: '0.2',
quantity: '1.2'
};
// Call runCode to run the template's code.
runCode(mockData);
// Verify that the tag finished successfully.
assertThat(Calls['kwaiq.track'].length).isStrictlyEqualTo(1);
assertThat(Calls['kwaiq.track'][0].params.price).isEqualTo(0.1);
assertThat(Calls['kwaiq.track'][0].params.value).isEqualTo(0.2);
assertThat(Calls['kwaiq.track'][0].params.quantity).isEqualTo(1.2);
assertApi('gtmOnSuccess').wasCalled();
- name: 5_Properties-NumberReg
code: |
const mockData = {
// Mocked field values
pixelId: '1',
eventName: 'purchase',
product: 'single',
content_id: '345',
price: '.1',
value: '',
quantity: '00.'
};
// Call runCode to run the template's code.
runCode(mockData);
// Verify that the tag finished successfully.
assertThat(Calls['kwaiq.track'].length).isStrictlyEqualTo(1);
assertThat(Calls['kwaiq.track'][0].params.price).isEqualTo(0.1);
assertThat(Calls['kwaiq.track'][0].params.value).isEqualTo(undefined);
assertThat(Calls['kwaiq.track'][0].params.quantity).isEqualTo(0);
assertApi('gtmOnSuccess').wasCalled();
- name: 6_wrongContentsParse
code: |
const wrongContents = '[{"content_id": "aaa", "price": 1.1}}';
const mockData = {
// Mocked field values
pixelId: '1',
eventName: 'purchase',
product: 'multiple',
contents: wrongContents
};
// Call runCode to run the template's code.
runCode(mockData);
// Verify that the tag finished successfully.
assertThat(Calls['kwaiq.track'].length).isStrictlyEqualTo(1);
assertThat(Calls['kwaiq.track'][0].params.contents).isEqualTo(wrongContents);
assertApi('gtmOnSuccess').wasCalled();
setup: |-
const gtmLog = require('logToConsole');
const errors = [];
const Calls = {};
mock('logToConsole', function () {
if (
arguments.length > 0 &&
typeof arguments[0] === 'string' &&
arguments[0].substring(0, 7) == '[ERROR]'
) {
errors.push(arguments[0]);
}
gtmLog(arguments);
});
mock('callInWindow', function () {
const fnName = arguments[0];
Calls[fnName] = Calls[fnName] || [];
const call = {};
call.arguments = arguments;
Calls[fnName].push(call);
call.eventName = arguments[1];
call.params = arguments[2];
call.configs = arguments[3];
});
mock('copyFromWindow', function (name) {
if (name === 'kwaiq') {
return {
track: function () {}
};
}
});
___NOTES___
Created on 2023/12/25 10:28:35