@metarouter/ajs-starter-kit 1.0.156 → 1.0.158
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/amazon-dsp-capi/kit.etag.json +1 -1
- package/.dist/amazon-dsp-capi/metadata.json +5 -1
- package/.dist/amazon-dsp-capi/playbook.etag.json +1 -1
- package/.dist/amazon-dsp-capi/playbook.json +1 -1
- package/.dist/amazon-dsp-events/kit.etag.json +1 -1
- package/.dist/amazon-dsp-events/metadata.json +4 -0
- package/.dist/amazon-dsp-events/playbook.etag.json +1 -1
- package/.dist/amazon-dsp-events/playbook.json +5 -24
- package/.dist/axon/connection.etag.json +1 -0
- package/.dist/axon/connection.json +35 -0
- package/.dist/axon/kit.etag.json +1 -0
- package/.dist/axon/metadata.json +21 -0
- package/.dist/axon/playbook.etag.json +1 -0
- package/.dist/axon/playbook.json +436 -0
- package/.dist/google-cm360/kit.etag.json +1 -1
- package/.dist/google-cm360/metadata.json +8 -0
- package/.dist/google-cm360/playbook.etag.json +1 -1
- package/.dist/google-cm360/playbook.json +38 -10
- package/.dist/optimizely/connection.etag.json +1 -0
- package/.dist/optimizely/connection.json +23 -0
- package/.dist/optimizely/kit.etag.json +1 -0
- package/.dist/optimizely/metadata.json +25 -0
- package/.dist/optimizely/playbook.etag.json +1 -0
- package/.dist/optimizely/playbook.json +241 -0
- package/README.md +12 -21
- package/index.js +22 -11
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"13f89ab0a95962c27ba341f6e99d9ec2 -"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"isDraft": false,
|
|
3
|
-
"isDeprecated":
|
|
3
|
+
"isDeprecated": true,
|
|
4
4
|
"isBeta": false,
|
|
5
5
|
"friendlyName": "Amazon DSP CAPI",
|
|
6
6
|
"description": "Amazon DSP is a programmatic advertising solution that allows advertisers to purchase video, audio, and display ad placements both on Amazon-owned properties and across a network of third-party sites and apps.",
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
{
|
|
29
29
|
"date": "2025-08-13T21:00:00.000Z",
|
|
30
30
|
"note": "Version: 1.0.0\nStable Release"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"date": "2026-02-04T21:00:00.000Z",
|
|
34
|
+
"note": "Version: 1.1.0\nDeprecated"
|
|
31
35
|
}
|
|
32
36
|
]
|
|
33
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"d68489bf6ec40c6328bd05d64e879072 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"8c5fcfc86106e5d58c6857afb6423d9d -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"74f3b76313bbc2916088ec4ad2035b8e -"
|
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.2.0",
|
|
3
3
|
"global": {
|
|
4
|
-
"filters": [
|
|
5
|
-
{
|
|
6
|
-
"byConditions": {
|
|
7
|
-
"action": "allow",
|
|
8
|
-
"when": {
|
|
9
|
-
"matchesAny": {
|
|
10
|
-
"conditions": [
|
|
11
|
-
{
|
|
12
|
-
"inputPathExists": {
|
|
13
|
-
"inputPath": "traits.email"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"inputPathExists": {
|
|
18
|
-
"inputPath": "userId"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
],
|
|
27
4
|
"enrichments": [
|
|
28
5
|
{
|
|
29
6
|
"staticString": "SERVER_TO_SERVER",
|
|
@@ -51,6 +28,10 @@
|
|
|
51
28
|
}
|
|
52
29
|
]
|
|
53
30
|
},
|
|
31
|
+
{
|
|
32
|
+
"inputKey": "anonymousId",
|
|
33
|
+
"outputKey": "match_id"
|
|
34
|
+
},
|
|
54
35
|
{
|
|
55
36
|
"inputKey": "input",
|
|
56
37
|
"outputKey": "countryCode",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"313c6d56fb5612f80a69a45f86b8f505 -"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "PIXEL_ID",
|
|
5
|
+
"exampleValue": "my-pixel-id"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "AUTH_KEY",
|
|
9
|
+
"exampleValue": "my-auth-key",
|
|
10
|
+
"defaultValue": "ak_276r1e1s2y541x193518483x1j2z512r5a0v5t42262e1y4h0b4e413y6u3e6f6s"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"default": {
|
|
14
|
+
"endpoint": "https://b.applovin.com/v1/event?pixel_id=$$PIXEL_ID$$",
|
|
15
|
+
"method": "POST",
|
|
16
|
+
"transform": {
|
|
17
|
+
"lang": "lua",
|
|
18
|
+
"body": "request.body = { events = batch }\nreturn request"
|
|
19
|
+
},
|
|
20
|
+
"headers": [
|
|
21
|
+
{
|
|
22
|
+
"key": "Accept-Encoding",
|
|
23
|
+
"value": "application/json"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"key": "Content-Type",
|
|
27
|
+
"value": "application/json"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"key": "Authorization",
|
|
31
|
+
"value": "$$AUTH_KEY$$"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"49b2bda0f9cda2e5241e9ace07c4fb12 -"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "Axon",
|
|
6
|
+
"description": "Axon by AppLovin is the company's AI-powered advertising platform, rebranded from its earlier ad tech offerings to focus on automated, performance-driven campaign management.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/axon.png",
|
|
8
|
+
"color": "#0683AA",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": true,
|
|
11
|
+
"isIosApp": true,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-02-04T21:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nAxon initial release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"012f2c496a6ef7c6fcd63cc131c4a385 -"
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"global": {
|
|
4
|
+
"mappings": [
|
|
5
|
+
{
|
|
6
|
+
"inputKey": "input",
|
|
7
|
+
"outputKey": "event_time",
|
|
8
|
+
"transforms": [
|
|
9
|
+
{
|
|
10
|
+
"expression": {
|
|
11
|
+
"lang": "lua",
|
|
12
|
+
"body": "return MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.originalTimestamp or input.sentAt))"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"inputKey": "context.page.url",
|
|
19
|
+
"outputKey": "event_source_url"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"inputKey": "context.providers.axon.aleid",
|
|
23
|
+
"outputKey": "user_data.aleid"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"inputKey": "context.providers.axon.alart",
|
|
27
|
+
"outputKey": "user_data.alart"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"inputKey": "anonymousId",
|
|
31
|
+
"outputKey": "user_data.client_id"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputKey": "context.ip",
|
|
35
|
+
"outputKey": "user_data.client_ip_address"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"inputKey": "context.userAgent",
|
|
39
|
+
"outputKey": "user_data.client_user_agent"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"inputKey": "input",
|
|
43
|
+
"outputKey": "user_data.esi",
|
|
44
|
+
"transforms": [
|
|
45
|
+
{
|
|
46
|
+
"expression": {
|
|
47
|
+
"lang": "lua",
|
|
48
|
+
"body": "if input.context.device.type then\n return \"app\"\nend\nreturn \"web\""
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"inputKey": "context.device.advertisingId",
|
|
55
|
+
"outputKey": "user_data.ifa"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"inputKey": "input",
|
|
59
|
+
"outputKey": "user_data.idfv",
|
|
60
|
+
"transforms": [
|
|
61
|
+
{
|
|
62
|
+
"expression": {
|
|
63
|
+
"lang": "lua",
|
|
64
|
+
"body": "if LOWER(input.context.device.type) == \"ios\" then\n return input.context.device.id\nend"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"inputKey": "input",
|
|
71
|
+
"outputKey": "user_data.os",
|
|
72
|
+
"transforms": [
|
|
73
|
+
{
|
|
74
|
+
"expression": {
|
|
75
|
+
"lang": "lua",
|
|
76
|
+
"body": "local deviceType = LOWER(input.context.device.type)\nif deviceType == 'ios' then\n return \"ios\"\nelseif deviceType == 'android' then\n return \"android\"\nend\nreturn \"desktop_os\""
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"inputKey": "traits.address.postalCode",
|
|
83
|
+
"outputKey": "user_data.zip"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"default": {
|
|
88
|
+
"filters": [
|
|
89
|
+
{
|
|
90
|
+
"byEventNames": {
|
|
91
|
+
"action": "allow",
|
|
92
|
+
"events": [
|
|
93
|
+
""
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"eventSpecific": {
|
|
100
|
+
"application_open": {
|
|
101
|
+
"enrichments": [
|
|
102
|
+
{
|
|
103
|
+
"staticString": "app_open",
|
|
104
|
+
"outputKey": "name"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"identify": {
|
|
109
|
+
"enrichments": [
|
|
110
|
+
{
|
|
111
|
+
"staticString": "login",
|
|
112
|
+
"outputKey": "name"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"page": {
|
|
117
|
+
"enrichments": [
|
|
118
|
+
{
|
|
119
|
+
"staticString": "page_view",
|
|
120
|
+
"outputKey": "name"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"products_searched": {
|
|
125
|
+
"enrichments": [
|
|
126
|
+
{
|
|
127
|
+
"staticString": "search",
|
|
128
|
+
"outputKey": "name"
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"mappings": [
|
|
132
|
+
{
|
|
133
|
+
"inputKey": "properties.query",
|
|
134
|
+
"outputKey": "data.search_term"
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"product_viewed": {
|
|
139
|
+
"enrichments": [
|
|
140
|
+
{
|
|
141
|
+
"staticString": "view_item",
|
|
142
|
+
"outputKey": "name"
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"mappings": [
|
|
146
|
+
{
|
|
147
|
+
"inputKey": "properties.currency",
|
|
148
|
+
"outputKey": "data.currency",
|
|
149
|
+
"transforms": [
|
|
150
|
+
{
|
|
151
|
+
"modifyString": "uppercase"
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"inputKey": "input",
|
|
157
|
+
"outputKey": "data.value",
|
|
158
|
+
"transforms": [
|
|
159
|
+
{
|
|
160
|
+
"expression": {
|
|
161
|
+
"lang": "lua",
|
|
162
|
+
"body": "return TOTAL_VALUE(input.properties)"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"inputKey": "input",
|
|
169
|
+
"outputKey": "data.items",
|
|
170
|
+
"transforms": [
|
|
171
|
+
{
|
|
172
|
+
"expression": {
|
|
173
|
+
"lang": "lua",
|
|
174
|
+
"body": "local p = input.properties\nreturn {\n {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\n}"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"product_added": {
|
|
182
|
+
"enrichments": [
|
|
183
|
+
{
|
|
184
|
+
"staticString": "add_to_cart",
|
|
185
|
+
"outputKey": "name"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"mappings": [
|
|
189
|
+
{
|
|
190
|
+
"inputKey": "properties.currency",
|
|
191
|
+
"outputKey": "data.currency",
|
|
192
|
+
"defaultString": "USD",
|
|
193
|
+
"transforms": [
|
|
194
|
+
{
|
|
195
|
+
"modifyString": "uppercase"
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"inputKey": "input",
|
|
201
|
+
"outputKey": "data.value",
|
|
202
|
+
"transforms": [
|
|
203
|
+
{
|
|
204
|
+
"expression": {
|
|
205
|
+
"lang": "lua",
|
|
206
|
+
"body": "return TOTAL_VALUE(input.properties)"
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"inputKey": "input",
|
|
213
|
+
"outputKey": "data.items",
|
|
214
|
+
"transforms": [
|
|
215
|
+
{
|
|
216
|
+
"expression": {
|
|
217
|
+
"lang": "lua",
|
|
218
|
+
"body": "local p = input.properties\nreturn {\n {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\n}"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"product_removed": {
|
|
226
|
+
"enrichments": [
|
|
227
|
+
{
|
|
228
|
+
"staticString": "remove_from_cart",
|
|
229
|
+
"outputKey": "name"
|
|
230
|
+
}
|
|
231
|
+
],
|
|
232
|
+
"mappings": [
|
|
233
|
+
{
|
|
234
|
+
"inputKey": "properties.currency",
|
|
235
|
+
"outputKey": "data.currency",
|
|
236
|
+
"defaultString": "USD",
|
|
237
|
+
"transforms": [
|
|
238
|
+
{
|
|
239
|
+
"modifyString": "uppercase"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"inputKey": "input",
|
|
245
|
+
"outputKey": "data.value",
|
|
246
|
+
"transforms": [
|
|
247
|
+
{
|
|
248
|
+
"expression": {
|
|
249
|
+
"lang": "lua",
|
|
250
|
+
"body": "return TOTAL_VALUE(input.properties)"
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"inputKey": "input",
|
|
257
|
+
"outputKey": "data.items",
|
|
258
|
+
"transforms": [
|
|
259
|
+
{
|
|
260
|
+
"expression": {
|
|
261
|
+
"lang": "lua",
|
|
262
|
+
"body": "local p = input.properties\nreturn {\n {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\n}"
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
]
|
|
268
|
+
},
|
|
269
|
+
"cart_viewed": {
|
|
270
|
+
"enrichments": [
|
|
271
|
+
{
|
|
272
|
+
"staticString": "view_cart",
|
|
273
|
+
"outputKey": "name"
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"mappings": [
|
|
277
|
+
{
|
|
278
|
+
"inputKey": "properties.currency",
|
|
279
|
+
"outputKey": "data.currency",
|
|
280
|
+
"transforms": [
|
|
281
|
+
{
|
|
282
|
+
"modifyString": "uppercase"
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"inputKey": "input",
|
|
288
|
+
"outputKey": "data.value",
|
|
289
|
+
"transforms": [
|
|
290
|
+
{
|
|
291
|
+
"expression": {
|
|
292
|
+
"lang": "lua",
|
|
293
|
+
"body": "return TOTAL_VALUE(input.properties.products)"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"inputKey": "input",
|
|
300
|
+
"outputKey": "data.items",
|
|
301
|
+
"transforms": [
|
|
302
|
+
{
|
|
303
|
+
"expression": {
|
|
304
|
+
"lang": "lua",
|
|
305
|
+
"body": "return MAP(input.properties.products, function(p)\n return {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\nend)"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
]
|
|
309
|
+
}
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
"checkout_started": {
|
|
313
|
+
"enrichments": [
|
|
314
|
+
{
|
|
315
|
+
"staticString": "begin_checkout",
|
|
316
|
+
"outputKey": "name"
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"mappings": [
|
|
320
|
+
{
|
|
321
|
+
"inputKey": "properties.currency",
|
|
322
|
+
"outputKey": "data.currency",
|
|
323
|
+
"transforms": [
|
|
324
|
+
{
|
|
325
|
+
"modifyString": "uppercase"
|
|
326
|
+
}
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"inputKey": "input",
|
|
331
|
+
"outputKey": "data.value",
|
|
332
|
+
"transforms": [
|
|
333
|
+
{
|
|
334
|
+
"expression": {
|
|
335
|
+
"lang": "lua",
|
|
336
|
+
"body": "return TOTAL_VALUE(input.properties.products)"
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
]
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"inputKey": "input",
|
|
343
|
+
"outputKey": "data.items",
|
|
344
|
+
"transforms": [
|
|
345
|
+
{
|
|
346
|
+
"expression": {
|
|
347
|
+
"lang": "lua",
|
|
348
|
+
"body": "return MAP(input.properties.products, function(p)\n return {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\nend)"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
}
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
"payment_info_entered": {
|
|
356
|
+
"enrichments": [
|
|
357
|
+
{
|
|
358
|
+
"staticString": "add_payment_info",
|
|
359
|
+
"outputKey": "name"
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
"mappings": [
|
|
363
|
+
{
|
|
364
|
+
"inputKey": "properties.currency",
|
|
365
|
+
"outputKey": "data.currency",
|
|
366
|
+
"transforms": [
|
|
367
|
+
{
|
|
368
|
+
"modifyString": "uppercase"
|
|
369
|
+
}
|
|
370
|
+
]
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
},
|
|
374
|
+
"order_completed": {
|
|
375
|
+
"enrichments": [
|
|
376
|
+
{
|
|
377
|
+
"staticString": "purchase",
|
|
378
|
+
"outputKey": "name"
|
|
379
|
+
}
|
|
380
|
+
],
|
|
381
|
+
"mappings": [
|
|
382
|
+
{
|
|
383
|
+
"inputKey": "userId",
|
|
384
|
+
"outputKey": "data.user_id"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"inputKey": "properties.order_id",
|
|
388
|
+
"outputKey": "data.transaction_id"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"inputKey": "properties.shipping",
|
|
392
|
+
"outputKey": "data.shipping",
|
|
393
|
+
"defaultInt": 0
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"inputKey": "properties.tax",
|
|
397
|
+
"outputKey": "data.tax",
|
|
398
|
+
"defaultInt": 0
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"inputKey": "properties.currency",
|
|
402
|
+
"outputKey": "data.currency",
|
|
403
|
+
"transforms": [
|
|
404
|
+
{
|
|
405
|
+
"modifyString": "uppercase"
|
|
406
|
+
}
|
|
407
|
+
]
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"inputKey": "input",
|
|
411
|
+
"outputKey": "data.value",
|
|
412
|
+
"transforms": [
|
|
413
|
+
{
|
|
414
|
+
"expression": {
|
|
415
|
+
"lang": "lua",
|
|
416
|
+
"body": "return TOTAL_VALUE(input.properties.products)"
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
]
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"inputKey": "input",
|
|
423
|
+
"outputKey": "data.items",
|
|
424
|
+
"transforms": [
|
|
425
|
+
{
|
|
426
|
+
"expression": {
|
|
427
|
+
"lang": "lua",
|
|
428
|
+
"body": "return MAP(input.properties.products, function(p)\n return {\n item_id = p.product_id or p.sku,\n image_url = p.image_url,\n item_name = p.name,\n price = p.price,\n quantity = p.quantity or 1,\n item_brand = p.brand,\n item_category = p.category\n }\nend)"
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
]
|
|
432
|
+
}
|
|
433
|
+
]
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"6c92f9256d5074dcd25869e1a9281822 -"
|
|
@@ -52,6 +52,14 @@
|
|
|
52
52
|
{
|
|
53
53
|
"date": "2026-01-14T00:00:00.000Z",
|
|
54
54
|
"note": "Version: 1.1.0\nMigrated from V4 to V5\nUpdated all quantity fields and added the value field to all events."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"date": "2026-01-28T00:00:00.000Z",
|
|
58
|
+
"note": "Version: 1.2.0\nUpdated quantity in events to ensure a minimum of 1"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"date": "2026-02-04T00:00:00.000Z",
|
|
62
|
+
"note": "Version: 1.3.0\nAdded cartData.items mapping."
|
|
55
63
|
}
|
|
56
64
|
]
|
|
57
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"269b6fd8b6ee84992b9e59bea73f4a7a -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.3.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "CONFIG_ID",
|
|
@@ -89,13 +89,21 @@
|
|
|
89
89
|
{
|
|
90
90
|
"staticString": "ADD_FLOODLIGHT_ACTIVITY_ID_HERE",
|
|
91
91
|
"outputKey": "floodlightActivityId"
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"staticString": "1",
|
|
95
|
-
"outputKey": "quantity"
|
|
96
92
|
}
|
|
97
93
|
],
|
|
98
94
|
"mappings": [
|
|
95
|
+
{
|
|
96
|
+
"inputKey": "input",
|
|
97
|
+
"outputKey": "quantity",
|
|
98
|
+
"transforms": [
|
|
99
|
+
{
|
|
100
|
+
"expression": {
|
|
101
|
+
"lang": "lua",
|
|
102
|
+
"body": "local q = input.properties.quantity\nif q and q > 0 then\n return TO_STRING(q)\nend\nreturn '1'"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
99
107
|
{
|
|
100
108
|
"inputKey": "input",
|
|
101
109
|
"outputKey": "value",
|
|
@@ -103,7 +111,7 @@
|
|
|
103
111
|
{
|
|
104
112
|
"expression": {
|
|
105
113
|
"lang": "lua",
|
|
106
|
-
"body": "return
|
|
114
|
+
"body": "return TOTAL_VALUE(input.properties)"
|
|
107
115
|
}
|
|
108
116
|
}
|
|
109
117
|
]
|
|
@@ -115,16 +123,36 @@
|
|
|
115
123
|
{
|
|
116
124
|
"staticString": "ADD_FLOODLIGHT_ACTIVITY_ID_HERE",
|
|
117
125
|
"outputKey": "floodlightActivityId"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"staticString": "1",
|
|
121
|
-
"outputKey": "quantity"
|
|
122
126
|
}
|
|
123
127
|
],
|
|
124
128
|
"mappings": [
|
|
129
|
+
{
|
|
130
|
+
"inputKey": "input",
|
|
131
|
+
"outputKey": "quantity",
|
|
132
|
+
"transforms": [
|
|
133
|
+
{
|
|
134
|
+
"expression": {
|
|
135
|
+
"lang": "lua",
|
|
136
|
+
"body": "return TO_STRING(SUM(MAP(input.properties.products, function(p)\n if p.quantity and p.quantity > 0 then\n return p.quantity\n end\n return 1\n end))\n)"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
},
|
|
125
141
|
{
|
|
126
142
|
"inputKey": "properties.total",
|
|
127
143
|
"outputKey": "value"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"inputKey": "input",
|
|
147
|
+
"outputKey": "cartData.items",
|
|
148
|
+
"transforms": [
|
|
149
|
+
{
|
|
150
|
+
"expression": {
|
|
151
|
+
"lang": "lua",
|
|
152
|
+
"body": "-- cartData is optional but if included, each item requires product_id, price, and quantity\n-- DELETE THIS ENTIRE MAPPING IF NOT USING CART DATA\nreturn MAP(input.properties.products, function(p)\n return {\n itemId = p.product_id,\n quantity = p.quantity or 1,\n unitPrice = p.price\n }\n end)"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
]
|
|
128
156
|
}
|
|
129
157
|
]
|
|
130
158
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"08f560facd598d68e2f21accaeb934ad -"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "ACCOUNT_ID",
|
|
5
|
+
"exampleValue": "my_account_id"
|
|
6
|
+
}
|
|
7
|
+
],
|
|
8
|
+
"default": {
|
|
9
|
+
"method": "POST",
|
|
10
|
+
"headers": [
|
|
11
|
+
{
|
|
12
|
+
"key": "Content-Type",
|
|
13
|
+
"value": "application/json"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"endpoint": "https://logx.optimizely.com/v1/events",
|
|
17
|
+
"batchSize": 100,
|
|
18
|
+
"transform": {
|
|
19
|
+
"body": "request.body = {\n account_id = \"$$ACCOUNT_ID$$\",\n visitors = batch,\n anonymize_ip = true,\n client_name = \"metarouter/optimizely\",\n client_version = \"1.0.0\",\n enrich_decisions = true\n}\nreturn request",
|
|
20
|
+
"lang": "lua"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"3200fdeb751f9cea19d44dd0d0c90829 -"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "Optimizely",
|
|
6
|
+
"description": "Optimizely is a powerful experimentation platform designed to help businesses optimize digital experiences through A/B testing, feature flags, and personalization.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/optimizely.png",
|
|
8
|
+
"color": "#0073e6",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": true,
|
|
11
|
+
"isIosApp": true,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-01-28T00:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nOptimizely Event API initial release"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"date": "2026-02-04T00:00:00.000Z",
|
|
22
|
+
"note": "Version: 0.1.1\nOrder attributes alphabetically"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"64b4ec71180f7c25c68aba254c71f0d1 -"
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.1",
|
|
3
|
+
"default": {
|
|
4
|
+
"filters": [
|
|
5
|
+
{
|
|
6
|
+
"byEventNames": {
|
|
7
|
+
"action": "allow",
|
|
8
|
+
"events": [
|
|
9
|
+
""
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"global": {
|
|
16
|
+
"filters": [
|
|
17
|
+
{
|
|
18
|
+
"byConditions": {
|
|
19
|
+
"action": "allow",
|
|
20
|
+
"when": {
|
|
21
|
+
"inputPathExists": {
|
|
22
|
+
"inputPath": "context.providers.optimizely.optimizelyEndUserId"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"mappings": [
|
|
29
|
+
{
|
|
30
|
+
"inputKey": "context.providers.optimizely.optimizelyEndUserId",
|
|
31
|
+
"outputKey": "visitor_id"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputKey": "input",
|
|
35
|
+
"outputKey": "attributes",
|
|
36
|
+
"transforms": [
|
|
37
|
+
{
|
|
38
|
+
"expression": {
|
|
39
|
+
"body": "local attrs = {}\nif input.traits then\n for key, value in pairs(input.traits) do\n table.insert(attrs, {\n type = \"custom\",\n key = key,\n value = value\n })\n end\n table.sort(attrs, function(a, b) return a.key < b.key end)\nend\nreturn attrs",
|
|
40
|
+
"lang": "lua"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"eventSpecific": {
|
|
48
|
+
"identify": {
|
|
49
|
+
"mappings": [
|
|
50
|
+
{
|
|
51
|
+
"inputKey": "input",
|
|
52
|
+
"outputKey": "snapshots",
|
|
53
|
+
"transforms": [
|
|
54
|
+
{
|
|
55
|
+
"expression": {
|
|
56
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"identify\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\"\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
57
|
+
"lang": "lua"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"page": {
|
|
65
|
+
"mappings": [
|
|
66
|
+
{
|
|
67
|
+
"inputKey": "input",
|
|
68
|
+
"outputKey": "snapshots",
|
|
69
|
+
"transforms": [
|
|
70
|
+
{
|
|
71
|
+
"expression": {
|
|
72
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"page\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
73
|
+
"lang": "lua"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"products_searched": {
|
|
81
|
+
"mappings": [
|
|
82
|
+
{
|
|
83
|
+
"inputKey": "input",
|
|
84
|
+
"outputKey": "snapshots",
|
|
85
|
+
"transforms": [
|
|
86
|
+
{
|
|
87
|
+
"expression": {
|
|
88
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"products_searched\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
89
|
+
"lang": "lua"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
"product_list_viewed": {
|
|
97
|
+
"mappings": [
|
|
98
|
+
{
|
|
99
|
+
"inputKey": "input",
|
|
100
|
+
"outputKey": "snapshots",
|
|
101
|
+
"transforms": [
|
|
102
|
+
{
|
|
103
|
+
"expression": {
|
|
104
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"product_list_viewed\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
105
|
+
"lang": "lua"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"product_clicked": {
|
|
113
|
+
"mappings": [
|
|
114
|
+
{
|
|
115
|
+
"inputKey": "input",
|
|
116
|
+
"outputKey": "snapshots",
|
|
117
|
+
"transforms": [
|
|
118
|
+
{
|
|
119
|
+
"expression": {
|
|
120
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"product_clicked\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
121
|
+
"lang": "lua"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"product_viewed": {
|
|
129
|
+
"mappings": [
|
|
130
|
+
{
|
|
131
|
+
"inputKey": "input",
|
|
132
|
+
"outputKey": "snapshots",
|
|
133
|
+
"transforms": [
|
|
134
|
+
{
|
|
135
|
+
"expression": {
|
|
136
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"product_viewed\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n revenue = TO_TRUNCATED_INT(TOTAL_VALUE(input.properties) * 100),\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
137
|
+
"lang": "lua"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"product_added": {
|
|
145
|
+
"mappings": [
|
|
146
|
+
{
|
|
147
|
+
"inputKey": "input",
|
|
148
|
+
"outputKey": "snapshots",
|
|
149
|
+
"transforms": [
|
|
150
|
+
{
|
|
151
|
+
"expression": {
|
|
152
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"product_added\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n quantity = input.properties.quantity,\n revenue = TO_TRUNCATED_INT(TOTAL_VALUE(input.properties) * 100),\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
153
|
+
"lang": "lua"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"product_removed": {
|
|
161
|
+
"mappings": [
|
|
162
|
+
{
|
|
163
|
+
"inputKey": "input",
|
|
164
|
+
"outputKey": "snapshots",
|
|
165
|
+
"transforms": [
|
|
166
|
+
{
|
|
167
|
+
"expression": {
|
|
168
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"product_removed\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n quantity = input.properties.quantity,\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
169
|
+
"lang": "lua"
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
"cart_viewed": {
|
|
177
|
+
"mappings": [
|
|
178
|
+
{
|
|
179
|
+
"inputKey": "input",
|
|
180
|
+
"outputKey": "snapshots",
|
|
181
|
+
"transforms": [
|
|
182
|
+
{
|
|
183
|
+
"expression": {
|
|
184
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"cart_viewed\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n revenue = TO_TRUNCATED_INT(TOTAL_VALUE(input.properties.products) * 100),\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
185
|
+
"lang": "lua"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
"checkout_started": {
|
|
193
|
+
"mappings": [
|
|
194
|
+
{
|
|
195
|
+
"inputKey": "input",
|
|
196
|
+
"outputKey": "snapshots",
|
|
197
|
+
"transforms": [
|
|
198
|
+
{
|
|
199
|
+
"expression": {
|
|
200
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"checkout_started\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n revenue = TO_TRUNCATED_INT(TOTAL_VALUE(input.properties.products) * 100),\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
201
|
+
"lang": "lua"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"payment_info_entered": {
|
|
209
|
+
"mappings": [
|
|
210
|
+
{
|
|
211
|
+
"inputKey": "input",
|
|
212
|
+
"outputKey": "snapshots",
|
|
213
|
+
"transforms": [
|
|
214
|
+
{
|
|
215
|
+
"expression": {
|
|
216
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"payment_info_entered\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
217
|
+
"lang": "lua"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"order_completed": {
|
|
225
|
+
"mappings": [
|
|
226
|
+
{
|
|
227
|
+
"inputKey": "input",
|
|
228
|
+
"outputKey": "snapshots",
|
|
229
|
+
"transforms": [
|
|
230
|
+
{
|
|
231
|
+
"expression": {
|
|
232
|
+
"body": "local event = {\n timestamp = MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.receivedAt or input.originalTimestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" })),\n uuid = input.messageId,\n key = \"order_completed\",\n entity_id = \"ADD_YOUR_EVENT_ID_HERE\",\n revenue = TO_TRUNCATED_INT(TOTAL_VALUE(input.properties.products) * 100),\n tags = input.properties\n}\n\nreturn {{\n decisions = {},\n events = {event}\n}}",
|
|
233
|
+
"lang": "lua"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
package/README.md
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# MetaRouter Starter Kits
|
|
2
2
|
|
|
3
|
-
### 2026-
|
|
4
|
-
-
|
|
5
|
-
-
|
|
3
|
+
### 2026-02
|
|
4
|
+
- Amazon DSP CAPI
|
|
5
|
+
- Axon (New)
|
|
6
6
|
- CM360 - Floodlights
|
|
7
|
-
-
|
|
8
|
-
- Google Ads - Conversions
|
|
9
|
-
- Hightouch (New)
|
|
10
|
-
- Meta CAPI
|
|
11
|
-
- Pipeline Router (New)
|
|
12
|
-
- Reddit Ads
|
|
13
|
-
- Ringier Axel Springer Poland
|
|
14
|
-
- Ringier Axel Springer Poland
|
|
15
|
-
- Snapchat - CAPI
|
|
16
|
-
- Teads
|
|
17
|
-
- TheTradeDesk Firstparty Advertiser Data
|
|
18
|
-
- adMarketplace (New)
|
|
7
|
+
- Optimizely
|
|
19
8
|
|
|
20
9
|
| Kit Name | Initial Release Date | Stable Release Date | Latest Release Date | Current Version | Latest Note |
|
|
21
10
|
|----------|----------------------|---------------------|---------------------|-----------------|-------------|
|
|
@@ -26,8 +15,8 @@
|
|
|
26
15
|
| Adobe Analytics | 2025-10-08 | 2026-01-07 | 2026-01-07 | Version: 1.0.0 | Stable Release |
|
|
27
16
|
| Adobe Experience Platform | 2023-03-21 | 2025-08-20 | 2025-11-19 | Version: 1.1.0 | Added ECID support Updated identityMap mappings |
|
|
28
17
|
| Adobe ID | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
29
|
-
| Amazon DSP - Events | 2025-12-03 | N/A |
|
|
30
|
-
| Amazon DSP CAPI | 2025-05-21 | 2025-08-13 |
|
|
18
|
+
| Amazon DSP - Events | 2025-12-03 | N/A | 2026-01-28 | Version: 0.2.0 | Amazon DSP - Events added match_id |
|
|
19
|
+
| Amazon DSP CAPI | 2025-05-21 | 2025-08-13 | 2026-02-04 | Version: 1.1.0 | Deprecated |
|
|
31
20
|
| Amazon Data Firehose | 2025-02-05 | 2025-04-02 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
32
21
|
| Amazon Kinesis | 2025-05-21 | N/A | 2025-10-15 | Version: 0.1.1 | Added friendly names to expressions |
|
|
33
22
|
| Amazon S3 | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
@@ -38,12 +27,13 @@
|
|
|
38
27
|
| AppsFlyer Android | 2021-06-24 | 2023-12-13 | 2024-10-23 | Version: 1.2.0 | Added header `Accept-Encoding: application/json` |
|
|
39
28
|
| AppsFlyer iOS | 2021-06-24 | 2023-12-13 | 2024-10-23 | Version: 1.2.0 | Added header `Accept-Encoding: application/json` |
|
|
40
29
|
| Attentive | 2025-12-17 | N/A | 2026-01-14 | Version: 0.2.0 | Updated customIdentifiers mapping logic, and added a conditional filter for userId, phone, and email. |
|
|
30
|
+
| Axon (New) | 2026-02-04 | N/A | 2026-02-04 | Version: 0.1.0 | Beta Version Axon initial release |
|
|
41
31
|
| Azure Blob | 2021-08-03 | 2023-12-13 | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
|
|
42
32
|
| Bloomreach CDP | 2022-10-06 | N/A | 2023-12-13 | N/A | Marked as stable version: 1.0.0 |
|
|
43
33
|
| Blueshift | 2021-06-24 | 2025-01-22 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
44
34
|
| Braze | 2021-06-24 | N/A | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
45
35
|
| Button | 2025-02-19 | 2025-03-12 | 2025-07-30 | Version: 1.1.0 | Replaced context.traits with traits. |
|
|
46
|
-
| CM360 - Floodlights | 2021-06-24 | 2025-08-20 | 2026-
|
|
36
|
+
| CM360 - Floodlights | 2021-06-24 | 2025-08-20 | 2026-02-04 | Version: 1.3.0 | Added cartData.items mapping. |
|
|
47
37
|
| Clinch | 2024-04-24 | 2024-06-12 | 2025-10-15 | Version: 1.3.1 | Added friendly names to expressions |
|
|
48
38
|
| Commission Junction | 2024-01-17 | 2024-04-24 | 2025-11-19 | Version: 1.5.1 | Added friendly name to trackingSource expression |
|
|
49
39
|
| Convert | 2023-09-08 | N/A | 2024-11-20 | Version: 0.3.0 | Added new deduplication parameter for all events, `tid` |
|
|
@@ -61,7 +51,7 @@
|
|
|
61
51
|
| Google Cloud Storage | 2021-06-24 | N/A | 2025-10-15 | Version: 0.2.1 | Added friendly names to expressions |
|
|
62
52
|
| Google Pub/Sub | 2021-06-24 | 2023-12-13 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
63
53
|
| Heap | 2024-03-26 | N/A | 2024-10-23 | Version: 0.2.0 | Updated header `Accept-Encoding: application/json` |
|
|
64
|
-
| Hightouch
|
|
54
|
+
| Hightouch | 2026-01-14 | N/A | 2026-01-14 | Version: 0.1.0 | Beta Version Hightouch initial release |
|
|
65
55
|
| HubSpot | 2023-02-20 | N/A | 2025-07-30 | Version: 0.4.0 | Replaced context.traits with traits. |
|
|
66
56
|
| Impact Radius | 2021-06-24 | N/A | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
|
|
67
57
|
| InMarket | 2021-07-21 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
@@ -85,10 +75,11 @@
|
|
|
85
75
|
| Movable Ink - Customer Data | 2024-02-07 | 2024-04-24 | 2025-07-16 | Version: 1.3.0 | TABLE_SLICE custom function usage. |
|
|
86
76
|
| Nextdoor | 2023-03-07 | 2024-08-07 | 2024-08-07 | Version: 1.0.0 | Stable release |
|
|
87
77
|
| Nextdoor - CAPI | 2024-06-05 | 2024-07-17 | 2025-10-08 | Version: 1.4.0 | Extended Nextdoor CAPI events. |
|
|
78
|
+
| Optimizely | 2026-01-28 | N/A | 2026-02-04 | Version: 0.1.1 | Order attributes alphabetically |
|
|
88
79
|
| Perion | 2025-05-21 | 2025-07-16 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
89
80
|
| Pinterest Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
90
81
|
| Pinterest CAPI | 2023-03-07 | N/A | 2024-10-23 | Version: 1.2.0 | Added header `Accept-Encoding: application/json` |
|
|
91
|
-
| Pipeline Router
|
|
82
|
+
| Pipeline Router | 2026-01-14 | N/A | 2026-01-14 | Version: 0.1.0 | Beta Version Pipeline Router initial release |
|
|
92
83
|
| Podscribe | 2025-03-12 | 2025-04-09 | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
|
|
93
84
|
| Podsights | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
94
85
|
| RTB House | 2024-11-20 | N/A | 2025-12-03 | Version: 0.4.0 | Updated endpoint to be a parameter |
|
|
@@ -116,4 +107,4 @@
|
|
|
116
107
|
| Yahoo Enhanced Attribution | 2023-03-07 | N/A | 2025-04-09 | Version: 0.4.0 | Deprecated |
|
|
117
108
|
| Yahoo Pixel API | 2023-03-07 | 2023-12-13 | 2025-04-09 | Version: 1.3.0 | Friendly name updated |
|
|
118
109
|
| Zeotap | 2024-02-21 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
|
|
119
|
-
| adMarketplace
|
|
110
|
+
| adMarketplace | 2026-01-21 | N/A | 2026-01-21 | Version: 0.1.0 | Beta Version adMarketplace initial release |
|
package/index.js
CHANGED
|
@@ -136,12 +136,6 @@ exports.adroll = {
|
|
|
136
136
|
metadata: require('./.dist/adroll/metadata.json')
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
exports['amazon-dsp-capi'] = {
|
|
140
|
-
endpointSchema: require('./.dist/amazon-dsp-capi/connection.json'),
|
|
141
|
-
playbook: require('./.dist/amazon-dsp-capi/playbook.json'),
|
|
142
|
-
metadata: require('./.dist/amazon-dsp-capi/metadata.json')
|
|
143
|
-
}
|
|
144
|
-
|
|
145
139
|
exports['amazon-dsp-events'] = {
|
|
146
140
|
endpointSchema: require('./.dist/amazon-dsp-events/connection.json'),
|
|
147
141
|
playbook: require('./.dist/amazon-dsp-events/playbook.json'),
|
|
@@ -196,6 +190,12 @@ exports.awin = {
|
|
|
196
190
|
metadata: require('./.dist/awin/metadata.json')
|
|
197
191
|
}
|
|
198
192
|
|
|
193
|
+
exports['axon'] = {
|
|
194
|
+
endpointSchema: require('./.dist/axon/connection.json'),
|
|
195
|
+
playbook: require('./.dist/axon/playbook.json'),
|
|
196
|
+
metadata: require('./.dist/axon/metadata.json')
|
|
197
|
+
}
|
|
198
|
+
|
|
199
199
|
exports['bing-ads'] = {
|
|
200
200
|
endpointSchema: require('./.dist/bing-ads/connection.json'),
|
|
201
201
|
playbook: require('./.dist/bing-ads/playbook.json'),
|
|
@@ -441,6 +441,12 @@ exports['nextdoor-capi'] = {
|
|
|
441
441
|
metadata: require('./.dist/nextdoor-capi/metadata.json')
|
|
442
442
|
}
|
|
443
443
|
|
|
444
|
+
exports.optimizely = {
|
|
445
|
+
endpointSchema: require('./.dist/optimizely/connection.json'),
|
|
446
|
+
playbook: require('./.dist/optimizely/playbook.json'),
|
|
447
|
+
metadata: require('./.dist/optimizely/metadata.json')
|
|
448
|
+
}
|
|
449
|
+
|
|
444
450
|
exports['perion'] = {
|
|
445
451
|
endpointSchema: require('./.dist/perion/connection.json'),
|
|
446
452
|
playbook: require('./.dist/perion/playbook.json'),
|
|
@@ -714,11 +720,6 @@ exports.etags = {
|
|
|
714
720
|
playbook: require('./.dist/adroll/playbook.etag.json'),
|
|
715
721
|
kit: require('./.dist/adroll/kit.etag.json')
|
|
716
722
|
},
|
|
717
|
-
'amazon-dsp-capi': {
|
|
718
|
-
endpointSchema: require('./.dist/amazon-dsp-capi/connection.etag.json'),
|
|
719
|
-
playbook: require('./.dist/amazon-dsp-capi/playbook.etag.json'),
|
|
720
|
-
kit: require('./.dist/amazon-dsp-capi/kit.etag.json')
|
|
721
|
-
},
|
|
722
723
|
'amazon-dsp-events': {
|
|
723
724
|
endpointSchema: require('./.dist/amazon-dsp-events/connection.etag.json'),
|
|
724
725
|
playbook: require('./.dist/amazon-dsp-events/playbook.etag.json'),
|
|
@@ -765,6 +766,11 @@ exports.etags = {
|
|
|
765
766
|
playbook: require('./.dist/awin/playbook.etag.json'),
|
|
766
767
|
kit: require('./.dist/awin/kit.etag.json')
|
|
767
768
|
},
|
|
769
|
+
'axon': {
|
|
770
|
+
endpointSchema: require('./.dist/axon/connection.etag.json'),
|
|
771
|
+
playbook: require('./.dist/axon/playbook.etag.json'),
|
|
772
|
+
kit: require('./.dist/axon/kit.etag.json')
|
|
773
|
+
},
|
|
768
774
|
'bing-ads': {
|
|
769
775
|
endpointSchema: require('./.dist/bing-ads/connection.etag.json'),
|
|
770
776
|
playbook: require('./.dist/bing-ads/playbook.etag.json'),
|
|
@@ -969,6 +975,11 @@ exports.etags = {
|
|
|
969
975
|
playbook: require('./.dist/nextdoor-capi/playbook.etag.json'),
|
|
970
976
|
kit: require('./.dist/nextdoor-capi/kit.etag.json')
|
|
971
977
|
},
|
|
978
|
+
optimizely: {
|
|
979
|
+
endpointSchema: require('./.dist/optimizely/connection.etag.json'),
|
|
980
|
+
playbook: require('./.dist/optimizely/playbook.etag.json'),
|
|
981
|
+
kit: require('./.dist/optimizely/kit.etag.json')
|
|
982
|
+
},
|
|
972
983
|
'perion': {
|
|
973
984
|
endpointSchema: require('./.dist/perion/connection.etag.json'),
|
|
974
985
|
playbook: require('./.dist/perion/playbook.etag.json'),
|