@metarouter/ajs-starter-kit 1.0.128 → 1.0.130

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.
Files changed (32) hide show
  1. package/.dist/adroll/connection.etag.json +1 -0
  2. package/.dist/adroll/connection.json +34 -0
  3. package/.dist/adroll/kit.etag.json +1 -0
  4. package/.dist/adroll/metadata.json +21 -0
  5. package/.dist/adroll/playbook.etag.json +1 -0
  6. package/.dist/adroll/playbook.json +189 -0
  7. package/.dist/amazon-dsp-capi/connection.etag.json +1 -0
  8. package/.dist/amazon-dsp-capi/connection.json +44 -0
  9. package/.dist/amazon-dsp-capi/kit.etag.json +1 -0
  10. package/.dist/amazon-dsp-capi/metadata.json +21 -0
  11. package/.dist/amazon-dsp-capi/playbook.etag.json +1 -0
  12. package/.dist/amazon-dsp-capi/playbook.json +302 -0
  13. package/.dist/amazon-kinesis/connection.etag.json +1 -0
  14. package/.dist/amazon-kinesis/connection.json +26 -0
  15. package/.dist/amazon-kinesis/kit.etag.json +1 -0
  16. package/.dist/amazon-kinesis/metadata.json +21 -0
  17. package/.dist/amazon-kinesis/playbook.etag.json +1 -0
  18. package/.dist/amazon-kinesis/playbook.json +11 -0
  19. package/.dist/connection-schemas.json +24 -0
  20. package/.dist/perion/connection.etag.json +1 -0
  21. package/.dist/perion/connection.json +28 -0
  22. package/.dist/perion/kit.etag.json +1 -0
  23. package/.dist/perion/metadata.json +21 -0
  24. package/.dist/perion/playbook.etag.json +1 -0
  25. package/.dist/perion/playbook.json +197 -0
  26. package/.dist/thetradedesk-conversion-events/kit.etag.json +1 -1
  27. package/.dist/thetradedesk-conversion-events/metadata.json +5 -1
  28. package/.dist/thetradedesk-conversion-events/playbook.etag.json +1 -1
  29. package/.dist/thetradedesk-conversion-events/playbook.json +1 -1
  30. package/README.md +10 -2
  31. package/index.js +43 -0
  32. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ "ff2bbb3d545810a3cecd723c17fc8988"
@@ -0,0 +1,34 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "ADVERTISABLE_EID",
5
+ "exampleValue": "my-advertisable-eid"
6
+ },
7
+ {
8
+ "name": "SERVER_ACCESS_TOKEN",
9
+ "exampleValue": "my-server-access-token"
10
+ }
11
+ ],
12
+ "default": {
13
+ "endpoint": "https://srv.adroll.com/api?advertisable=$$ADVERTISABLE_EID$$",
14
+ "method": "POST",
15
+ "headers": [
16
+ {
17
+ "key": "Accept-Encoding",
18
+ "value": "application/json"
19
+ },
20
+ {
21
+ "key": "Content-Type",
22
+ "value": "application/json"
23
+ },
24
+ {
25
+ "key": "User-Agent",
26
+ "fromEventKey": "context.userAgent"
27
+ },
28
+ {
29
+ "key": "Authorization",
30
+ "value": "Token $$SERVER_ACCESS_TOKEN$$"
31
+ }
32
+ ]
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ "3d0cac0125e3c87c73dbd72a5a25f337"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": true,
3
+ "isDeprecated": false,
4
+ "isBeta": false,
5
+ "friendlyName": "AdRoll",
6
+ "description": "AdRoll is a digital marketing platform designed to help businesses grow their online presence\nthrough targeted advertising and retargeting strategies.",
7
+ "logo": "https://cdn.metarouter.io/adroll.png",
8
+ "color": "#dbf3fc",
9
+ "eventSource": {
10
+ "isAndroidApp": false,
11
+ "isIosApp": false,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-03-12T07:00:00.000Z",
18
+ "note": "Version: 0.1.0\nDraft Mode\nAdRoll draft release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "6df52e68ec1260123db132718d5cfdf7"
@@ -0,0 +1,189 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "ADVERTISABLE_EID",
6
+ "exampleValue": "org_123456"
7
+ },
8
+ {
9
+ "name": "PIXEL_EID",
10
+ "exampleValue": "pixel_123456"
11
+ }
12
+ ],
13
+ "global": {
14
+ "enrichments": [
15
+ {
16
+ "outputKey": "advertisable_eid",
17
+ "staticString": "$$ADVERTISABLE_EID$$"
18
+ },
19
+ {
20
+ "outputKey": "pixel_eid",
21
+ "staticString": "$$PIXEL_EID$$"
22
+ }
23
+ ],
24
+ "mappings": [
25
+ {
26
+ "inputKey": "context.page.url",
27
+ "outputKey": "page_location"
28
+ },
29
+ {
30
+ "inputKey": "context.ip",
31
+ "outputKey": "ip"
32
+ },
33
+ {
34
+ "inputKey": "userId",
35
+ "outputKey": "identifiers.user_id"
36
+ },
37
+ {
38
+ "inputKey": "traits.email",
39
+ "outputKey": "identifiers.email"
40
+ },
41
+ {
42
+ "inputKey": "context.providers.adroll.adct",
43
+ "outputKey": "identifiers.adct"
44
+ },
45
+ {
46
+ "inputKey": "context.providers.adroll.fpc_cookie",
47
+ "outputKey": "identifiers.first_party_cookie"
48
+ },
49
+ {
50
+ "inputKey": "context.userAgent",
51
+ "outputKey": "user_agent"
52
+ },
53
+ {
54
+ "inputKey": "input",
55
+ "outputKey": "external_data",
56
+ "transforms": [
57
+ {
58
+ "expression": {
59
+ "lang": "lua",
60
+ "body": "local p = input.properties\nlocal result = {}\n\nfor k, v in pairs(p) do\n result[k] = TO_STRING(v)\nend\n\nreturn TO_STRING(result)"
61
+ }
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "inputKey": "input",
67
+ "outputKey": "timestamp",
68
+ "transforms": [
69
+ {
70
+ "expression": {
71
+ "lang": "lua",
72
+ "body": "return TO_STRING(SECONDS_SINCE_EPOCH_FROM_RFC3999(input.timestamp))"
73
+ }
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "inputKey": "input",
79
+ "outputKey": "event_attributes.products",
80
+ "transforms": [
81
+ {
82
+ "expression": {
83
+ "lang": "lua",
84
+ "body": "return MAP(input.properties.products, function(p)\n return {\n product_id = p.product_id or p.sku,\n product_group = p.category,\n price = TO_STRING(p.price),\n quantity = p.quantity,\n product_category = p.category,\n }\n end)"
85
+ }
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ },
91
+ "default": {
92
+ "enrichments": [
93
+ {
94
+ "staticString": "pageView",
95
+ "outputKey": "event_name"
96
+ }
97
+ ],
98
+ "mappings": [
99
+ {
100
+ "inputKey": "properties.products",
101
+ "outputKey": "event_attributes.products"
102
+ }
103
+ ]
104
+ },
105
+ "eventSpecific": {
106
+ "products_searched": {
107
+ "enrichments": [
108
+ {
109
+ "staticString": "productSearch",
110
+ "outputKey": "event_name"
111
+ }
112
+ ],
113
+ "mappings": [
114
+ {
115
+ "inputKey": "properties.query",
116
+ "outputKey": "event_attributes.keywords"
117
+ }
118
+ ]
119
+ },
120
+ "product_added": {
121
+ "enrichments": [
122
+ {
123
+ "staticString": "addToCart",
124
+ "outputKey": "event_name"
125
+ }
126
+ ],
127
+ "mappings": [
128
+ {
129
+ "inputKey": "properties.currency",
130
+ "outputKey": "currency"
131
+ },
132
+ {
133
+ "inputKey": "input",
134
+ "outputKey": "event_attributes.products",
135
+ "transforms": [
136
+ {
137
+ "expression": {
138
+ "lang": "lua",
139
+ "body": "local p = input.properties\nreturn {{\n product_id = p.product_id or p.sku,\n product_group = p.category,\n price = TO_STRING(p.price),\n quantity = p.quantity,\n product_category = p.category,\n }}"
140
+ }
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ },
146
+ "order_completed": {
147
+ "enrichments": [
148
+ {
149
+ "staticString": "purchase",
150
+ "outputKey": "event_name"
151
+ }
152
+ ],
153
+ "mappings": [
154
+ {
155
+ "inputKey": "input",
156
+ "outputKey": "conversion_value",
157
+ "transforms": [
158
+ {
159
+ "expression": {
160
+ "lang": "lua",
161
+ "body": "return TO_STRING(input.properties.total or 0)"
162
+ }
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "inputKey": "properties.currency",
168
+ "outputKey": "currency"
169
+ },
170
+ {
171
+ "inputKey": "properties.order_id",
172
+ "outputKey": "event_attributes.order_id"
173
+ },
174
+ {
175
+ "inputKey": "input",
176
+ "outputKey": "event_attributes.external_data",
177
+ "transforms": [
178
+ {
179
+ "expression": {
180
+ "lang": "lua",
181
+ "body": "local p = input.properties\nreturn TO_STRING({\n affiliation = p.affiliation,\n checkout_id = p.checkout_id,\n checkout_id = p.checkout_id,\n coupon = p.coupon,\n discount = TO_STRING(p.discount),\n revenue = TO_STRING(p.revenue),\n shipping = TO_STRING(p.shipping),\n tax = TO_STRING(p.tax),\n total = TO_STRING(p.total)\n})"
182
+ }
183
+ }
184
+ ]
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ }
@@ -0,0 +1 @@
1
+ "33bb05a09a1e790fae0bdcf96e64e402"
@@ -0,0 +1,44 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "BASE_URL",
5
+ "exampleValue": "my-base-url",
6
+ "defaultValue": "https://advertising-api.amazon.com"
7
+ },
8
+ {
9
+ "name": "ADVERTISER_ID",
10
+ "exampleValue": "my-advertiser-id"
11
+ },
12
+ {
13
+ "name": "CLIENT_ID",
14
+ "exampleValue": "my-client-id"
15
+ },
16
+ {
17
+ "name": "PROFILE_ID",
18
+ "exampleValue": "my-profile-id"
19
+ }
20
+ ],
21
+ "default": {
22
+ "endpoint": "$$BASE_URL$$/accounts/$$ADVERTISER_ID$$/dsp/conversionDefinitions/eventData",
23
+ "method": "POST",
24
+ "headers": [
25
+ {
26
+ "key": "Amazon-Advertising-API-ClientId",
27
+ "value": "$$CLIENT_ID$$"
28
+ },
29
+ {
30
+ "key": "Amazon-Advertising-API-Scope",
31
+ "value": "$$PROFILE_ID$$"
32
+ },
33
+ {
34
+ "key": "Amazon-Ads-AccountId",
35
+ "value": "$$ADVERTISER_ID$$"
36
+ }
37
+ ],
38
+ "batchSize": 50,
39
+ "transform": {
40
+ "lang": "lua",
41
+ "body": "request.body = { eventData = batch, source = \"SERVER_TO_SERVER\" }\nreturn request"
42
+ }
43
+ }
44
+ }
@@ -0,0 +1 @@
1
+ "6dffe77de4d0cc00bf44d2ce99491d5f"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Amazon DSP CAPI",
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.",
7
+ "logo": "https://cdn.metarouter.io/amazon-dsp-capi.png",
8
+ "color": "#FF9900",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-05-21T00:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nAmazon DSP CAPI initial release."
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "cf2b6b7cd79e9c32d53532032e35fb28"
@@ -0,0 +1,302 @@
1
+ {
2
+ "version": "0.1.0",
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": "context.traits.email"
19
+ }
20
+ }
21
+ ]
22
+ }
23
+ }
24
+ }
25
+ }
26
+ ],
27
+ "enrichments": [
28
+ {
29
+ "staticString": "US",
30
+ "outputKey": "countryCode"
31
+ },
32
+ {
33
+ "staticString": "",
34
+ "outputKey": "dataProcessingOptions"
35
+ }
36
+ ],
37
+ "mappings": [
38
+ {
39
+ "inputKey": "input",
40
+ "outputKey": "name",
41
+ "transforms": [
42
+ {
43
+ "expression": {
44
+ "lang": "lua",
45
+ "body": "if (input.type == \"track\") then return REPLACE(LOWER(input.event), \" \", \"_\") end\nreturn input.type"
46
+ }
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ "inputKey": "input",
52
+ "outputKey": "matchKeys",
53
+ "transforms": [
54
+ {
55
+ "expression": {
56
+ "body": "local email = input.traits.email or input.context.traits.email\nif email then return {{ values = {TO_SHA256_HASH(LOWER(TRIM(email)))}, type = \"EMAIL\" }} end",
57
+ "lang": "lua"
58
+ }
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ "inputKey": "messageId",
64
+ "outputKey": "clientDedupeId"
65
+ },
66
+ {
67
+ "inputKey": "input",
68
+ "outputKey": "timestamp",
69
+ "transforms": [
70
+ {
71
+ "expression": {
72
+ "body": "return input.timestamp or input.originalTimestamp or input.sentAt",
73
+ "lang": "lua"
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ },
80
+ "eventSpecific": {
81
+ "page": {
82
+ "enrichments": [
83
+ {
84
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
85
+ "outputKey": "conversionDefinitionId"
86
+ }
87
+ ]
88
+ },
89
+ "products_searched": {
90
+ "enrichments": [
91
+ {
92
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
93
+ "outputKey": "conversionDefinitionId"
94
+ }
95
+ ]
96
+ },
97
+ "product_list_viewed": {
98
+ "enrichments": [
99
+ {
100
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
101
+ "outputKey": "conversionDefinitionId"
102
+ }
103
+ ]
104
+ },
105
+ "product_clicked": {
106
+ "enrichments": [
107
+ {
108
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
109
+ "outputKey": "conversionDefinitionId"
110
+ }
111
+ ],
112
+ "mappings": [
113
+ {
114
+ "inputKey": "properties.price",
115
+ "outputKey": "value"
116
+ },
117
+ {
118
+ "inputKey": "properties.currency",
119
+ "outputKey": "currencyCode",
120
+ "transforms": [
121
+ {
122
+ "modifyString": "uppercase"
123
+ }
124
+ ],
125
+ "defaultString": "USD"
126
+ }
127
+ ]
128
+ },
129
+ "product_viewed": {
130
+ "enrichments": [
131
+ {
132
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
133
+ "outputKey": "conversionDefinitionId"
134
+ }
135
+ ],
136
+ "mappings": [
137
+ {
138
+ "inputKey": "properties.price",
139
+ "outputKey": "value"
140
+ },
141
+ {
142
+ "inputKey": "properties.currency",
143
+ "outputKey": "currencyCode",
144
+ "transforms": [
145
+ {
146
+ "modifyString": "uppercase"
147
+ }
148
+ ],
149
+ "defaultString": "USD"
150
+ }
151
+ ]
152
+ },
153
+ "product_added": {
154
+ "enrichments": [
155
+ {
156
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
157
+ "outputKey": "conversionDefinitionId"
158
+ }
159
+ ],
160
+ "mappings": [
161
+ {
162
+ "inputKey": "input",
163
+ "outputKey": "value",
164
+ "transforms": [
165
+ {
166
+ "expression": {
167
+ "lang": "lua",
168
+ "body": "return tonumber(string.format(\"%.2f\", input.properties.price * (input.properties.quantity or 1)))"
169
+ }
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "inputKey": "properties.currency",
175
+ "outputKey": "currencyCode",
176
+ "transforms": [
177
+ {
178
+ "modifyString": "uppercase"
179
+ }
180
+ ],
181
+ "defaultString": "USD"
182
+ }
183
+ ]
184
+ },
185
+ "product_removed": {
186
+ "enrichments": [
187
+ {
188
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
189
+ "outputKey": "conversionDefinitionId"
190
+ }
191
+ ],
192
+ "mappings": [
193
+ {
194
+ "inputKey": "input",
195
+ "outputKey": "value",
196
+ "transforms": [
197
+ {
198
+ "expression": {
199
+ "lang": "lua",
200
+ "body": "return tonumber(string.format(\"%.2f\", input.properties.price * (input.properties.quantity or 1)))"
201
+ }
202
+ }
203
+ ]
204
+ },
205
+ {
206
+ "inputKey": "properties.currency",
207
+ "outputKey": "currencyCode",
208
+ "transforms": [
209
+ {
210
+ "modifyString": "uppercase"
211
+ }
212
+ ],
213
+ "defaultString": "USD"
214
+ }
215
+ ]
216
+ },
217
+ "cart_viewed": {
218
+ "enrichments": [
219
+ {
220
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
221
+ "outputKey": "conversionDefinitionId"
222
+ }
223
+ ],
224
+ "mappings": [
225
+ {
226
+ "inputKey": "input",
227
+ "outputKey": "value",
228
+ "transforms": [
229
+ {
230
+ "expression": {
231
+ "lang": "lua",
232
+ "body": "return tonumber(string.format(\"%.2f\", SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end))))"
233
+ }
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ "inputKey": "properties.currency",
239
+ "outputKey": "currencyCode",
240
+ "transforms": [
241
+ {
242
+ "modifyString": "uppercase"
243
+ }
244
+ ],
245
+ "defaultString": "USD"
246
+ }
247
+ ]
248
+ },
249
+ "order_completed": {
250
+ "enrichments": [
251
+ {
252
+ "staticString": "ADD_CONVERSION_DEFINITION_ID_HERE",
253
+ "outputKey": "conversionDefinitionId"
254
+ }
255
+ ],
256
+ "mappings": [
257
+ {
258
+ "inputKey": "input",
259
+ "outputKey": "value",
260
+ "transforms": [
261
+ {
262
+ "expression": {
263
+ "lang": "lua",
264
+ "body": "return tonumber(string.format(\"%.2f\", SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end))))"
265
+ }
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "inputKey": "properties.currency",
271
+ "outputKey": "currencyCode",
272
+ "transforms": [
273
+ {
274
+ "modifyString": "uppercase"
275
+ }
276
+ ],
277
+ "defaultString": "USD"
278
+ },
279
+ {
280
+ "inputKey": "input",
281
+ "outputKey": "unitsSold",
282
+ "transforms": [
283
+ {
284
+ "expression": {
285
+ "lang": "lua",
286
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.quantity or 1 end))"
287
+ }
288
+ }
289
+ ]
290
+ }
291
+ ]
292
+ }
293
+ },
294
+ "default": {
295
+ "enrichments": [
296
+ {
297
+ "staticString": "ADD_CATCH_ALL_CONVERSION_DEFINITION_ID_HERE",
298
+ "outputKey": "conversionDefinitionId"
299
+ }
300
+ ]
301
+ }
302
+ }
@@ -0,0 +1 @@
1
+ "105f65e48a756a72c4a073083ac8b64c"
@@ -0,0 +1,26 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "REGION",
5
+ "exampleValue": "my-region"
6
+ },
7
+ {
8
+ "name": "ACCESS_KEY",
9
+ "exampleValue": "my-access-key"
10
+ },
11
+ {
12
+ "name": "SECRET_KEY",
13
+ "exampleValue": "my-secret-key"
14
+ },
15
+ {
16
+ "name": "STREAM_NAME",
17
+ "exampleValue": "my-stream-name"
18
+ }
19
+ ],
20
+ "amazon-kinesis": {
21
+ "region": "$$REGION$$",
22
+ "accessKey": "$$ACCESS_KEY$$",
23
+ "secretKey": "$$SECRET_KEY$$",
24
+ "streamName": "$$STREAM_NAME$$"
25
+ }
26
+ }
@@ -0,0 +1 @@
1
+ "d91edb5331081bd362fe3434d3283344"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Amazon Kinesis",
6
+ "description": "Amazon Kinesis enables you to process and analyze data as it arrives and respond instantly\ninstead of having to wait until all your data is collected before the processing can begin.",
7
+ "logo": "https://cdn.metarouter.io/logo.svg",
8
+ "color": "#f58532",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-05-21T00:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nAmazon Kinesis initial release."
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "b369e2c36983957aec3cfe2f3c3bee4b"
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "global": {
4
+ "expressions": [
5
+ {
6
+ "body": "return input",
7
+ "lang": "lua"
8
+ }
9
+ ]
10
+ }
11
+ }
@@ -25,6 +25,30 @@
25
25
  ],
26
26
  "additionalProperties": false
27
27
  },
28
+ "amazonKinesis": {
29
+ "type": "object",
30
+ "properties": {
31
+ "accessKey": {
32
+ "type": "string"
33
+ },
34
+ "region": {
35
+ "type": "string"
36
+ },
37
+ "secretKey": {
38
+ "type": "string"
39
+ },
40
+ "streamName": {
41
+ "type": "string"
42
+ }
43
+ },
44
+ "required": [
45
+ "region",
46
+ "accessKey",
47
+ "secretKey",
48
+ "streamName"
49
+ ],
50
+ "additionalProperties": false
51
+ },
28
52
  "blob": {
29
53
  "type": "object",
30
54
  "properties": {
@@ -0,0 +1 @@
1
+ "c752be088c743ff1fb49d99ff5376984"
@@ -0,0 +1,28 @@
1
+ {
2
+ "default": {
3
+ "endpoint": "https://evt.undertone.com/tp",
4
+ "method": "POST",
5
+ "headers": [
6
+ {
7
+ "key": "Accept-Encoding",
8
+ "value": "application/json"
9
+ },
10
+ {
11
+ "key": "Content-Type",
12
+ "value": "application/json"
13
+ },
14
+ {
15
+ "key": "User-Agent",
16
+ "fromEventKey": "context.userAgent"
17
+ },
18
+ {
19
+ "key": "Referer",
20
+ "fromEventKey": "context.page.referrer"
21
+ },
22
+ {
23
+ "key": "X-Forwarded-For",
24
+ "fromEventKey": "context.ip"
25
+ }
26
+ ]
27
+ }
28
+ }
@@ -0,0 +1 @@
1
+ "1761f606655ae5484360bd92902ed7ca"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Perion",
6
+ "description": "Perion’s technology emphasizes AI-driven optimization, cross-channel integration, and measurable performance to help brands and publishers achieve scalable results.",
7
+ "logo": "https://cdn.metarouter.io/perion.png",
8
+ "color": "#00101A",
9
+ "eventSource": {
10
+ "isAndroidApp": false,
11
+ "isIosApp": false,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-05-21T21:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nPerion initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "ec1aa1f8a06cda6ccdcc5953ddc3bfbd"
@@ -0,0 +1,197 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "ADVERTISER_ID",
6
+ "exampleValue": "my_advertiser_id"
7
+ }
8
+ ],
9
+ "global": {
10
+ "enrichments": [
11
+ {
12
+ "staticInt": 65,
13
+ "outputKey": "partner_id"
14
+ },
15
+ {
16
+ "staticString": "$$ADVERTISER_ID$$",
17
+ "outputKey": "advertiser_id"
18
+ }
19
+ ],
20
+ "mappings": [
21
+ {
22
+ "inputKey": "context.providers.perion.utid",
23
+ "outputKey": "user.id"
24
+ },
25
+ {
26
+ "inputKey": "context.providers.perion.sessionID",
27
+ "outputKey": "session_id"
28
+ },
29
+ {
30
+ "inputKey": "context.page.title",
31
+ "outputKey": "category"
32
+ },
33
+ {
34
+ "inputKey": "context.page.path",
35
+ "outputKey": "sub_category"
36
+ },
37
+ {
38
+ "inputKey": "context.ip",
39
+ "outputKey": "user.client_ip"
40
+ },
41
+ {
42
+ "inputKey": "context.userAgent",
43
+ "outputKey": "user.ua"
44
+ },
45
+ {
46
+ "inputKey": "context.page.referrer",
47
+ "outputKey": "referral_url"
48
+ },
49
+ {
50
+ "inputKey": "input",
51
+ "outputKey": "referral_source",
52
+ "transforms": [
53
+ {
54
+ "expression": {
55
+ "lang": "lua",
56
+ "body": "function get_referral_source(url)\n if url == nil or url == \"\" then\n return \"direct\"\n end\n\n local platforms = {\n \"twitter\",\n \"facebook\",\n \"instagram\",\n \"linkedin\",\n \"tiktok\"\n }\n\n for _, name in ipairs(platforms) do\n if string.find(url:lower(), name, 1, true) then\n return name\n end\n end\n\n return\nend\nlocal referral_source = get_referral_source(input.context.page.referrer)\nif referral_source then\n return referral_source\nelse\nend"
57
+ }
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ "default": {
64
+ "filters": [
65
+ {
66
+ "byEventNames": {
67
+ "action": "allow",
68
+ "events": [
69
+ ""
70
+ ]
71
+ }
72
+ }
73
+ ]
74
+ },
75
+ "eventSpecific": {
76
+ "order_completed": {
77
+ "mappings": [
78
+ {
79
+ "inputKey": "properties.currency",
80
+ "outputKey": "currency",
81
+ "transforms": [
82
+ {
83
+ "modifyString": "uppercase"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "inputKey": "properties.order_id",
89
+ "outputKey": "transaction_id"
90
+ },
91
+ {
92
+ "inputKey": "properties.total",
93
+ "outputKey": "transaction_total"
94
+ },
95
+ {
96
+ "inputKey": "properties.coupon",
97
+ "outputKey": "coupon_code_used"
98
+ },
99
+ {
100
+ "inputKey": "properties.shipping",
101
+ "outputKey": "shipping_cost"
102
+ },
103
+ {
104
+ "inputKey": "input",
105
+ "outputKey": "products",
106
+ "transforms": [
107
+ {
108
+ "expression": {
109
+ "lang": "lua",
110
+ "body": "return MAP(input.properties.products, function(p)\n return {\n upc_id = p.product_id,\n sku_id = p.sku,\n product_name = p.name,\n product_category = p.category,\n quantity = p.quantity or 1,\n price = p.price,\n }\nend)"
111
+ }
112
+ }
113
+ ]
114
+ }
115
+ ],
116
+ "expressions": [
117
+ {
118
+ "lang": "lua",
119
+ "body": "return { tracker_ids = { ADD_SALE_TRACKER_IDS_HERE } }"
120
+ }
121
+ ]
122
+ },
123
+ "cart_viewed": {
124
+ "mappings": [
125
+ {
126
+ "inputKey": "properties.currency",
127
+ "outputKey": "currency",
128
+ "transforms": [
129
+ {
130
+ "modifyString": "uppercase"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "inputKey": "properties.cart_id",
136
+ "outputKey": "transaction_id"
137
+ },
138
+ {
139
+ "inputKey": "input",
140
+ "outputKey": "transaction_total",
141
+ "transforms": [
142
+ {
143
+ "expression": {
144
+ "lang": "lua",
145
+ "body": "return TO_TRUNCATED_FLOAT(SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end)), 2)"
146
+ }
147
+ }
148
+ ]
149
+ },
150
+ {
151
+ "inputKey": "properties.shipping",
152
+ "outputKey": "shipping_cost"
153
+ },
154
+ {
155
+ "inputKey": "input",
156
+ "outputKey": "products",
157
+ "transforms": [
158
+ {
159
+ "expression": {
160
+ "lang": "lua",
161
+ "body": "return MAP(input.properties.products, function(p)\n return {\n upc_id = p.product_id,\n sku_id = p.sku,\n product_name = p.name,\n product_category = p.category,\n quantity = p.quantity or 1,\n price = p.price,\n }\nend)"
162
+ }
163
+ }
164
+ ]
165
+ }
166
+ ],
167
+ "expressions": [
168
+ {
169
+ "lang": "lua",
170
+ "body": "return { tracker_ids = { ADD_CART_TRACKER_IDS_HERE } }"
171
+ }
172
+ ]
173
+ },
174
+ "product_viewed": {
175
+ "mappings": [
176
+ {
177
+ "inputKey": "input",
178
+ "outputKey": "products",
179
+ "transforms": [
180
+ {
181
+ "expression": {
182
+ "lang": "lua",
183
+ "body": "local p = input.properties\nreturn {\n upc_id = p.product_id,\n sku_id = p.sku,\n product_name = p.name,\n product_category = p.category,\n quantity = p.quantity or 1,\n price = p.price,\n}"
184
+ }
185
+ }
186
+ ]
187
+ }
188
+ ],
189
+ "expressions": [
190
+ {
191
+ "lang": "lua",
192
+ "body": "return { tracker_ids = { ADD_SITE_VISIT_TRACKER_IDS_HERE } }"
193
+ }
194
+ ]
195
+ }
196
+ }
197
+ }
@@ -1 +1 @@
1
- "5600a96e7ef5797b2dcb2cb16899832b"
1
+ "ba8ae9e0cc81810ec436169fef4575b9"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "isDraft": false,
3
- "isDeprecated": false,
3
+ "isDeprecated": true,
4
4
  "isBeta": false,
5
5
  "friendlyName": "TheTradeDesk Conversion Events",
6
6
  "description": "Real time conversion events API\nhttps://api.thetradedesk.com/v3/portal/data/doc/DataConversionEventsApi#parameters-items",
@@ -24,6 +24,10 @@
24
24
  {
25
25
  "date": "2024-10-23T00:00:00.000Z",
26
26
  "note": "Version: 1.1.0\nAdded header `Accept-Encoding: application/json`"
27
+ },
28
+ {
29
+ "date": "2025-05-07T00:00:00.000Z",
30
+ "note": "Version: 1.2.0\nDeprecated"
27
31
  }
28
32
  ]
29
33
  }
@@ -1 +1 @@
1
- "01373e169a10ba1ffe0759fc4b32127c"
1
+ "05f9937398ee12d1575651fb5a9aa185"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0",
2
+ "version": "1.2.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "MERCHANT_ID",
package/README.md CHANGED
@@ -5,6 +5,12 @@ event methods, you will create a rich, actionable data set from your website, mo
5
5
  server, and other sources. It is particularly useful for tracking the pages or screens your
6
6
  users visit, the actions they take on your property, and whether the user has been identified
7
7
  previously.
8
+ ## 2025-05
9
+ - Amazon DSP CAPI (BETA)
10
+ - Amazon Kinesis (BETA)
11
+ - Perion (BETA)
12
+ - TheTradeDesk Conversion Events
13
+
8
14
  ## 2025-04
9
15
  - Amazon Data Firehose
10
16
  - Meta CAPI
@@ -77,7 +83,6 @@ previously.
77
83
  - Roomvo (BETA)
78
84
  - Salesforce CDP
79
85
  - Snapchat Ads
80
- - TheTradeDesk Conversion Events
81
86
  - TheTradeDesk Firstparty Advertiser Data
82
87
  - VideoAmp (BETA)
83
88
  - Xandr
@@ -114,6 +119,10 @@ previously.
114
119
 
115
120
  | Kit Name | Date | Latest Note |
116
121
  |----------|------|-------------|
122
+ | Amazon DSP CAPI (BETA) | 2025-05 | Version: 0.1.0 Beta Version Amazon DSP CAPI initial release. |
123
+ | Amazon Kinesis (BETA) | 2025-05 | Version: 0.1.0 Beta Version Amazon Kinesis initial release. |
124
+ | Perion (BETA) | 2025-05 | Version: 0.1.0 Beta Version Perion initial release |
125
+ | TheTradeDesk Conversion Events | 2025-05 | Version: 1.2.0 Deprecated |
117
126
  | Amazon Data Firehose | 2025-04 | Version: 1.0.0 Stable release |
118
127
  | Meta CAPI | 2025-04 | Version: 1.5.0 Friendly name updated |
119
128
  | Microsoft Ads | 2025-04 | Version: 1.0.0 Microsoft Ads stable release |
@@ -173,7 +182,6 @@ previously.
173
182
  | Roomvo (BETA) | 2024-10 | Version: 0.2.0 Added header `Accept-Encoding: application/json` |
174
183
  | Salesforce CDP | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
175
184
  | Snapchat Ads | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
176
- | TheTradeDesk Conversion Events | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
177
185
  | TheTradeDesk Firstparty Advertiser Data | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
178
186
  | VideoAmp (BETA) | 2024-10 | Version: 0.3.0 Added header `Accept-Encoding: application/json` |
179
187
  | Xandr | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
package/index.js CHANGED
@@ -8,6 +8,12 @@ exports['amazon-data-firehose'] = {
8
8
  metadata: require('./.dist/amazon-data-firehose/metadata.json')
9
9
  }
10
10
 
11
+ exports['amazon-kinesis'] = {
12
+ connectionTemplate: connectionSchemas.properties.amazonKinesis,
13
+ playbook: require('./.dist/amazon-kinesis/playbook.json'),
14
+ metadata: require('./.dist/amazon-kinesis/metadata.json')
15
+ }
16
+
11
17
  exports.blob = {
12
18
  connectionTemplate: connectionSchemas.properties.blob,
13
19
  playbook: require('./.dist/blob/playbook.json'),
@@ -94,6 +100,18 @@ exports['adobe-id'] = {
94
100
  metadata: require('./.dist/adobe-id/metadata.json')
95
101
  }
96
102
 
103
+ exports.adroll = {
104
+ endpointSchema: require('./.dist/adroll/connection.json'),
105
+ playbook: require('./.dist/adroll/playbook.json'),
106
+ metadata: require('./.dist/adroll/metadata.json')
107
+ }
108
+
109
+ exports['amazon-dsp-capi'] = {
110
+ endpointSchema: require('./.dist/amazon-dsp-capi/connection.json'),
111
+ playbook: require('./.dist/amazon-dsp-capi/playbook.json'),
112
+ metadata: require('./.dist/amazon-dsp-capi/metadata.json')
113
+ }
114
+
97
115
  exports.amnet = {
98
116
  endpointSchema: require('./.dist/amnet/connection.json'),
99
117
  playbook: require('./.dist/amnet/playbook.json'),
@@ -345,6 +363,12 @@ exports['nextdoor-capi'] = {
345
363
  metadata: require('./.dist/nextdoor-capi/metadata.json')
346
364
  }
347
365
 
366
+ exports['perion'] = {
367
+ endpointSchema: require('./.dist/perion/connection.json'),
368
+ playbook: require('./.dist/perion/playbook.json'),
369
+ metadata: require('./.dist/perion/metadata.json')
370
+ }
371
+
348
372
  exports.pinterest = {
349
373
  endpointSchema: require('./.dist/pinterest/connection.json'),
350
374
  playbook: require('./.dist/pinterest/playbook.json'),
@@ -501,6 +525,10 @@ exports.etags = {
501
525
  playbook: require('./.dist/amazon-data-firehose/playbook.etag.json'),
502
526
  kit: require('./.dist/amazon-data-firehose/kit.etag.json')
503
527
  },
528
+ 'amazon-kinesis': {
529
+ playbook: require('./.dist/amazon-kinesis/playbook.etag.json'),
530
+ kit: require('./.dist/amazon-kinesis/kit.etag.json')
531
+ },
504
532
  blob: {
505
533
  playbook: require('./.dist/blob/playbook.etag.json'),
506
534
  kit: require('./.dist/blob/kit.etag.json')
@@ -563,6 +591,16 @@ exports.etags = {
563
591
  playbook: require('./.dist/adobe-id/playbook.etag.json'),
564
592
  kit: require('./.dist/adobe-id/kit.etag.json')
565
593
  },
594
+ adroll: {
595
+ endpointSchema: require('./.dist/adroll/connection.etag.json'),
596
+ playbook: require('./.dist/adroll/playbook.etag.json'),
597
+ kit: require('./.dist/adroll/kit.etag.json')
598
+ },
599
+ 'amazon-dsp-capi': {
600
+ endpointSchema: require('./.dist/amazon-dsp-capi/connection.etag.json'),
601
+ playbook: require('./.dist/amazon-dsp-capi/playbook.etag.json'),
602
+ kit: require('./.dist/amazon-dsp-capi/kit.etag.json')
603
+ },
566
604
  amnet: {
567
605
  endpointSchema: require('./.dist/amnet/connection.etag.json'),
568
606
  playbook: require('./.dist/amnet/playbook.etag.json'),
@@ -772,6 +810,11 @@ exports.etags = {
772
810
  playbook: require('./.dist/nextdoor-capi/playbook.etag.json'),
773
811
  kit: require('./.dist/nextdoor-capi/kit.etag.json')
774
812
  },
813
+ 'perion': {
814
+ endpointSchema: require('./.dist/perion/connection.etag.json'),
815
+ playbook: require('./.dist/perion/playbook.etag.json'),
816
+ kit: require('./.dist/perion/kit.etag.json')
817
+ },
775
818
  pinterest: {
776
819
  endpointSchema: require('./.dist/pinterest/connection.etag.json'),
777
820
  playbook: require('./.dist/pinterest/playbook.etag.json'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metarouter/ajs-starter-kit",
3
- "version": "1.0.128",
3
+ "version": "1.0.130",
4
4
  "description": "MetaRouter analytics.js starter kit",
5
5
  "main": "index.js",
6
6
  "scripts": {