-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.tpl
357 lines (318 loc) · 31.9 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
___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",
"categories": [
"REMARKETING",
"ANALYTICS",
"ADVERTISING",
"ATTRIBUTION",
"CONVERSIONS",
"TAG_MANAGEMENT",
"AFFILIATE_MARKETING"
],
"id": "cvt_temp_public_id",
"version": 1,
"securityGroups": [],
"displayName": "Eulerian Marketing Platform - GTM SS",
"brand": {
"id": "github.com_EulerianTechnologies",
"displayName": "Eulerian",
"thumbnail": "data:image/png;base64,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"
},
"description": "Implementation of tracking code for Eulerian Marketing Platform\n@author Mathieu Jondet\n@web https://eulerian.com\n@version 2024-02-26",
"containerContexts": [
"SERVER"
]
}
___TEMPLATE_PARAMETERS___
[
{
"type": "TEXT",
"name": "targetHost",
"displayName": "Name of the target sub-domain",
"simpleValueType": true,
"help": "Takes the value of the sub-domain provided in data-collection domain. Example: https://io1.eulerian.net - you need to provide io1",
"valueValidators": [
{
"type": "REGEX",
"args": [ "^[a-z0-9\\-]+$" ]
}
],
"alwaysInSummary": true
},
{
"type": "GROUP",
"name": "Consent",
"displayName": "Manage consent",
"groupStyle": "ZIPPY_OPEN",
"subParams": [
{
"type": "CHECKBOX",
"name": "enoepm",
"checkboxText" : "Trafic is always consented",
"simpleValueType": true,
"help": "Traffic is always consented, WARNING: this mean consent is properly decided BEFORE this tag is triggered.",
"alwaysInSummary": true
},
{
"type" : "TEXT",
"name": "consent-pmcat",
"displayName" : "List of pmcat values to use for consent",
"simpleValueType": true,
"help": "Takes the ids of pmcats for which you have consent, ex: 1-3",
"alwaysInSummary": true
},
{
"type" : "TEXT",
"name": "consent-tcf",
"displayName" : "Provide TCF TCstring",
"simpleValueType": true,
"help": "Takes the content of a complete/valid TCF TCString",
"alwaysInSummary": true
}
]
}
]
___SANDBOXED_JS_FOR_SERVER___
const sendHttpRequest = require('sendHttpRequest');
const getAllEventData = require('getAllEventData');
const getTimestampMillis = require('getTimestampMillis');
const JSON = require('JSON');
const makeInteger = require('makeInteger');
const encodeUri = require('encodeUri');
const TEMPLATE_VERSION = '1.0.1';
/**
* avoid list of entries for copy
*/
const A_AVOID_LIST = [
"page_location", "page_referer", "screen_resolution",
"ip_override", "user_agent", "client_id", "currency",
"user_id", "user_data", "event_name", "items", "value"
];
let H_AVOID_LIST = {};
A_AVOID_LIST.forEach( (key) => {
H_AVOID_LIST[key] = 1;
});
function getData(key) {
let d = data;
if (typeof(d[key]) != 'undefined') {
return d[key];
}
d = getAllEventData();
if (typeof(d[key]) != 'undefined') {
return d[key];
}
return data[key];
}
function isDefined(val) {
if ( (val !== null) && (val !== undefined) ) {
return val;
}
return null;
}
function items2product(items, isRemove) {
return (items || []).map((item,idx) => {
// if remove_from_cart we invert the quantity
let qty = isRemove ? item.item_quantity * -1 : item.item_quantity;
let h_prd = {
"ref" : item.item_id,
"name" : item.item_name || '',
"quantity" : qty,
"amount" : item.item_price || 0,
"params" : {}
};
// work on other params
[
"item_brand", "item_category", "item_category2",
"item_category3", "item_category4", "item_category5",
"item_list_id", "item_list_name", "item_variant"
].forEach((key) => {
if ( isDefined(item[key]) ) {
let rex = "/^item_";
let subk = "ga-"+key.replace(rex,"");
h_prd.params[subk] = item[key];
}
});
return h_prd;
});
}
function augmentPayload(p, allData) {
for ( const key in allData ) {
if ( allData.hasOwnProperty(key) && !isDefined(H_AVOID_LIST[key]) ) {
p[key] = allData[key];
}
}
}
/**
* Build payload
*/
let payload = {
"url" : getData("page_location"),
"rf" : getData("page_referrer"),
"ss" : getData("screen_resolution"),
"ereplay-ip" : getData("ip_override"),
"ereplay-ua" : getData("user_agent"),
"ereplay-time" : makeInteger(getTimestampMillis() / 1000),
"euidl" : getData("client_id"),
"currency" : getData("currency"),
"uid" : getData("user_id"),
"email" : (getData("user_data") || {}).sha256_email_address
};
/**
* Handle consent
*/
if ( getData("enoepm") ) {
payload.enoepm = 1;
} else {
if ( isDefined(getData("consent-pmcat")) ) {
payload.pmcat = getData("consent-pmcat");
}
if ( isDefined(getData("consent-tcf")) ) {
payload.gdpr_consent = getData("consent-tcf");
payload.gdpr = 1;
}
}
let event_name = getData("event_name");
let gaEData = getAllEventData() || {};
/**
* Build the remap for all events
*
*/
switch ( event_name ) {
case 'page_view':
augmentPayload(payload, gaEData);
break;
case 'add_to_cart':
payload.scart = 1;
payload.amount = getData("value");
payload.products = items2product(getData("items"));
augmentPayload(payload, gaEData);
break;
case 'remove_from_cart':
payload.scart = 1;
payload.amount = getData("value");
payload.products = items2product(getData("items"), true);
augmentPayload(payload, gaEData);
break;
case 'purchase':
payload.order = 1;
payload.amount = getData("value");
payload.ref = getData("transaction_id");
payload["ga-coupon"] = getData("coupon");
payload["ga-shipping"] = getData("shipping");
payload["ga-tax"] = getData("tax");
payload.products = items2product(getData("items"));
augmentPayload(payload, gaEData);
break;
case 'generate_lead':
payload.estimate = 1;
payload.amount = getData("value");
payload.ref = getData("transaction_id");
payload.products = items2product(getData("items"));
if ( !isDefined(payload.ref) ) {
payload.ref = 'estimate-'+getTimestampMillis();
}
augmentPayload(payload, gaEData);
break;
default:
let params = {};
augmentPayload(params, gaEData);
payload.actions = [{
"name" : event_name,
"params" : params
}];
break;
}
/**
* targetURL
*/
let targetURL = "https://"+encodeUri(getData("targetHost"))+".eulerian.net/collectorjson/-/"+getTimestampMillis();
/**
* Send network call
*/
sendHttpRequest(
targetURL,
(statusCode, headers, body) => {
if (statusCode >= 200 && statusCode < 300) {
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
},
{
headers: {
"X-Eulerian-Client": "GTM-SS",
"X-Forwarded-For": payload["ereplay-ip"],
"Content-Type": "application/json; charset=UTF-8"
},
method: "POST",
timeout: 500
},
JSON.stringify(payload)
);
___SERVER_PERMISSIONS___
[
{
"instance": {
"key": {
"publicId": "read_event_data",
"versionId": "1"
},
"param": [
{
"key": "eventDataAccess",
"value": {
"type": 1,
"string": "any"
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
},
{
"instance": {
"key": {
"publicId": "send_http",
"versionId": "1"
},
"param": [
{
"key": "allowedUrls",
"value": {
"type": 1,
"string": "specific"
}
},
{
"key": "urls",
"value": {
"type": 2,
"listItem": [
{
"type": 1,
"string": "https://*.eulerian.net/"
}
]
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
}
]
___TESTS___
scenarios: []
___NOTES___
Created on 26.02.2024 14:33:16