@metarouter/ajs-starter-kit 1.0.132 → 1.0.134

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.
@@ -1 +1 @@
1
- "33bb05a09a1e790fae0bdcf96e64e402"
1
+ "edca5d92997456424c5c7b16fe88afd8"
@@ -13,9 +13,17 @@
13
13
  "name": "CLIENT_ID",
14
14
  "exampleValue": "my-client-id"
15
15
  },
16
+ {
17
+ "name": "CLIENT_SECRET",
18
+ "exampleValue": "my-client-secret"
19
+ },
16
20
  {
17
21
  "name": "PROFILE_ID",
18
22
  "exampleValue": "my-profile-id"
23
+ },
24
+ {
25
+ "name": "REFRESH_TOKEN",
26
+ "exampleValue": "my-refresh-token"
19
27
  }
20
28
  ],
21
29
  "default": {
@@ -23,7 +31,11 @@
23
31
  "method": "POST",
24
32
  "headers": [
25
33
  {
26
- "key": "Amazon-Advertising-API-ClientId",
34
+ "key": "Content-Type",
35
+ "value": "application/vnd.dspconversioneventimport.v1+json"
36
+ },
37
+ {
38
+ "key": "Amazon-Advertising-API-ClientID",
27
39
  "value": "$$CLIENT_ID$$"
28
40
  },
29
41
  {
@@ -36,6 +48,32 @@
36
48
  }
37
49
  ],
38
50
  "batchSize": 50,
51
+ "oauth2Auth": {
52
+ "request": {
53
+ "body": [
54
+ {
55
+ "key": "grant_type",
56
+ "value": "refresh_token"
57
+ },
58
+ {
59
+ "key": "client_id",
60
+ "value": "$$CLIENT_ID$$"
61
+ },
62
+ {
63
+ "key": "client_secret",
64
+ "value": "$$CLIENT_SECRET$$"
65
+ },
66
+ {
67
+ "key": "refresh_token",
68
+ "value": "$$REFRESH_TOKEN$$"
69
+ }
70
+ ],
71
+ "contentType": "application/x-www-form-urlencoded",
72
+ "method": "POST",
73
+ "url": "https://api.amazon.com/auth/o2/token"
74
+ },
75
+ "responseAccessTokenKey": "access_token"
76
+ },
39
77
  "transform": {
40
78
  "lang": "lua",
41
79
  "body": "request.body = { eventData = batch, source = \"SERVER_TO_SERVER\" }\nreturn request"
@@ -1 +1 @@
1
- "6dffe77de4d0cc00bf44d2ce99491d5f"
1
+ "be166975e5f6eae9309edef0974ad3e3"
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2025-05-21T00:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nAmazon DSP CAPI initial release."
19
+ },
20
+ {
21
+ "date": "2025-07-02T00:00:00.000Z",
22
+ "note": "Version: 0.2.0\nAdding oauth2Auth and updating headers."
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "cf2b6b7cd79e9c32d53532032e35fb28"
1
+ "2cd3cfb66504e8568b62cc19b43d191a"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.2.0",
3
3
  "global": {
4
4
  "filters": [
5
5
  {
@@ -28,10 +28,6 @@
28
28
  {
29
29
  "staticString": "US",
30
30
  "outputKey": "countryCode"
31
- },
32
- {
33
- "staticString": "",
34
- "outputKey": "dataProcessingOptions"
35
31
  }
36
32
  ],
37
33
  "mappings": [
@@ -316,6 +316,18 @@
316
316
  ],
317
317
  "additionalProperties": false
318
318
  },
319
+ "rasp": {
320
+ "type": "object",
321
+ "properties": {
322
+ "network": {
323
+ "type": "string"
324
+ }
325
+ },
326
+ "required": [
327
+ "network"
328
+ ],
329
+ "additionalProperties": false
330
+ },
319
331
  "s3": {
320
332
  "type": "object",
321
333
  "properties": {
@@ -0,0 +1 @@
1
+ "ced5faf9fabaa687b23b24294ad86f25"
@@ -0,0 +1,12 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "NETWORK",
5
+ "exampleValue": "my-network",
6
+ "description": "The network identifier for RASP integration"
7
+ }
8
+ ],
9
+ "rasp": {
10
+ "network": "$$NETWORK$$"
11
+ }
12
+ }
@@ -0,0 +1 @@
1
+ "ab96d29014c646434544b0626ea8a642"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Ringier Axel Springer Poland",
6
+ "description": "Ringier Axel Springer Poland (RASP) is a leading digital media and technology company that provides advertising services such as programmatic ads, branded content, display advertising, and audience targeting, leveraging its large digital reach.",
7
+ "logo": "https://cdn.metarouter.io/ringier-axel-springer-poland.png",
8
+ "color": "#000000",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-06-25T22:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nRingier Axel Springer Poland initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "1d3d84717c60282fd1734ab78109af18"
@@ -0,0 +1,385 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "PIXEL_ID",
6
+ "exampleValue": "my-pixel-id"
7
+ }
8
+ ],
9
+ "global": {
10
+ "enrichments": [
11
+ {
12
+ "staticString": "$$PIXEL_ID$$",
13
+ "outputKey": "actgid"
14
+ },
15
+ {
16
+ "staticInt": "1",
17
+ "outputKey": "npa"
18
+ }
19
+ ],
20
+ "mappings": [
21
+ {
22
+ "inputKey": "anonymousId",
23
+ "outputKey": "anonymousId"
24
+ },
25
+ {
26
+ "inputKey": "messageId",
27
+ "outputKey": "message_id"
28
+ },
29
+ {
30
+ "inputKey": "context.providers.ringierAxelSpringerPoland.dlapi_lu",
31
+ "outputKey": "lu"
32
+ },
33
+ {
34
+ "inputKey": "context.providers.ringierAxelSpringerPoland.dlapi_aid",
35
+ "outputKey": "aid"
36
+ },
37
+ {
38
+ "inputKey": "input",
39
+ "outputKey": "eid",
40
+ "transforms": [
41
+ {
42
+ "expression": {
43
+ "body": "local email = input.traits.email or input.context.traits.email\nif email then return TO_MD5_HASH(LOWER(TRIM(email))) end\nreturn",
44
+ "lang": "lua"
45
+ }
46
+ }
47
+ ]
48
+ },
49
+ {
50
+ "inputKey": "input",
51
+ "outputKey": "src",
52
+ "transforms": [
53
+ {
54
+ "expression": {
55
+ "body": "if input.context.app.name or input.context.device.type or input.context.os.name then return 'app' end\nreturn 's2s'",
56
+ "lang": "lua"
57
+ }
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "inputKey": "context.ip",
63
+ "outputKey": "contextFields.ip"
64
+ },
65
+ {
66
+ "inputKey": "context.userAgent",
67
+ "outputKey": "contextFields.userAgent"
68
+ },
69
+ {
70
+ "inputKey": "context.page.url",
71
+ "outputKey": "contextFields.pageUrl"
72
+ },
73
+ {
74
+ "inputKey": "context.providers.ringierAxelSpringerPoland.adp_session",
75
+ "outputKey": "contextFields.adpSession"
76
+ },
77
+ {
78
+ "inputKey": "context.providers.ringierAxelSpringerPoland.dlapi_event_track_id",
79
+ "outputKey": "contextFields.eventTrackId"
80
+ }
81
+ ]
82
+ },
83
+ "default": {
84
+ "enrichments": [
85
+ {
86
+ "staticString": "custom",
87
+ "outputKey": "event"
88
+ }
89
+ ],
90
+ "mappings": [
91
+ {
92
+ "inputKey": "input",
93
+ "outputKey": "custom_event",
94
+ "transforms": [
95
+ {
96
+ "expression": {
97
+ "body": "if input.type == 'track' then return LOWER(REPLACE(input.event, ' ', '_')) end\nreturn input.type",
98
+ "lang": "lua"
99
+ }
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ },
105
+ "eventSpecific": {
106
+ "page": {
107
+ "enrichments": [
108
+ {
109
+ "staticString": "page_view",
110
+ "outputKey": "event"
111
+ }
112
+ ]
113
+ },
114
+ "products_searched": {
115
+ "enrichments": [
116
+ {
117
+ "staticString": "search_query",
118
+ "outputKey": "event"
119
+ }
120
+ ],
121
+ "mappings": [
122
+ {
123
+ "inputKey": "properties.query",
124
+ "outputKey": "query"
125
+ }
126
+ ]
127
+ },
128
+ "product_list_viewed": {
129
+ "enrichments": [
130
+ {
131
+ "staticString": "custom",
132
+ "outputKey": "event"
133
+ },
134
+ {
135
+ "staticString": "product_list_viewed",
136
+ "outputKey": "custom_event"
137
+ }
138
+ ],
139
+ "mappings": [
140
+ {
141
+ "inputKey": "input",
142
+ "outputKey": "products",
143
+ "transforms": [
144
+ {
145
+ "expression": {
146
+ "body": "return MAP(\n input.properties.products,\n function (p)\n return {\n id = p.product_id or p.sku or '',\n name = p.name,\n price = p.price,\n qty = p.quantity,\n category = p.category,\n brand = p.brand,\n variant = p.variant\n }\n end\n)",
147
+ "lang": "lua"
148
+ }
149
+ }
150
+ ]
151
+ }
152
+ ]
153
+ },
154
+ "product_clicked": {
155
+ "enrichments": [
156
+ {
157
+ "staticString": "custom",
158
+ "outputKey": "event"
159
+ },
160
+ {
161
+ "staticString": "product_clicked",
162
+ "outputKey": "custom_event"
163
+ }
164
+ ],
165
+ "mappings": [
166
+ {
167
+ "inputKey": "input",
168
+ "outputKey": "products",
169
+ "transforms": [
170
+ {
171
+ "expression": {
172
+ "body": "return {{\n id = input.properties.product_id or input.properties.sku or '',\n name = input.properties.name,\n price = input.properties.price,\n qty = input.properties.quantity,\n category = input.properties.category,\n brand = input.properties.brand,\n variant = input.properties.variant\n}}",
173
+ "lang": "lua"
174
+ }
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ },
180
+ "product_viewed": {
181
+ "enrichments": [
182
+ {
183
+ "staticString": "product_detail",
184
+ "outputKey": "event"
185
+ },
186
+ {
187
+ "staticString": "product",
188
+ "outputKey": "sitetype"
189
+ }
190
+ ],
191
+ "mappings": [
192
+ {
193
+ "inputKey": "input",
194
+ "outputKey": "products",
195
+ "transforms": [
196
+ {
197
+ "expression": {
198
+ "body": "return {{\n id = input.properties.product_id or input.properties.sku or '',\n name = input.properties.name,\n price = input.properties.price,\n qty = input.properties.quantity,\n category = input.properties.category,\n brand = input.properties.brand,\n variant = input.properties.variant\n}}",
199
+ "lang": "lua"
200
+ }
201
+ }
202
+ ]
203
+ }
204
+ ]
205
+ },
206
+ "product_added": {
207
+ "enrichments": [
208
+ {
209
+ "staticString": "add_to_cart",
210
+ "outputKey": "event"
211
+ }
212
+ ],
213
+ "mappings": [
214
+ {
215
+ "inputKey": "input",
216
+ "outputKey": "products",
217
+ "transforms": [
218
+ {
219
+ "expression": {
220
+ "body": "return {{\n id = input.properties.product_id or input.properties.sku or '',\n name = input.properties.name,\n price = input.properties.price,\n qty = input.properties.quantity,\n category = input.properties.category,\n brand = input.properties.brand,\n variant = input.properties.variant\n}}",
221
+ "lang": "lua"
222
+ }
223
+ }
224
+ ]
225
+ }
226
+ ]
227
+ },
228
+ "product_removed": {
229
+ "enrichments": [
230
+ {
231
+ "staticString": "remove_from_cart",
232
+ "outputKey": "event"
233
+ }
234
+ ],
235
+ "mappings": [
236
+ {
237
+ "inputKey": "input",
238
+ "outputKey": "products",
239
+ "transforms": [
240
+ {
241
+ "expression": {
242
+ "body": "return {{\n id = input.properties.product_id or input.properties.sku or '',\n name = input.properties.name,\n price = input.properties.price,\n qty = input.properties.quantity,\n category = input.properties.category,\n brand = input.properties.brand,\n variant = input.properties.variant\n}}",
243
+ "lang": "lua"
244
+ }
245
+ }
246
+ ]
247
+ }
248
+ ]
249
+ },
250
+ "cart_viewed": {
251
+ "enrichments": [
252
+ {
253
+ "staticString": "view_cart",
254
+ "outputKey": "event"
255
+ },
256
+ {
257
+ "staticString": "cart",
258
+ "outputKey": "sitetype"
259
+ }
260
+ ],
261
+ "mappings": [
262
+ {
263
+ "inputKey": "input",
264
+ "outputKey": "cost",
265
+ "transforms": [
266
+ {
267
+ "expression": {
268
+ "lang": "lua",
269
+ "body": "return TOTAL_VALUE(input.properties.products)"
270
+ }
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "inputKey": "input",
276
+ "outputKey": "qty",
277
+ "transforms": [
278
+ {
279
+ "expression": {
280
+ "lang": "lua",
281
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.quantity or 1 end))"
282
+ }
283
+ }
284
+ ]
285
+ },
286
+ {
287
+ "inputKey": "input",
288
+ "outputKey": "products",
289
+ "transforms": [
290
+ {
291
+ "expression": {
292
+ "body": "return MAP(\n input.properties.products,\n function (p)\n return {\n id = p.product_id or p.sku or '',\n name = p.name,\n price = p.price,\n qty = p.quantity,\n category = p.category,\n brand = p.brand,\n variant = p.variant\n }\n end\n)",
293
+ "lang": "lua"
294
+ }
295
+ }
296
+ ]
297
+ }
298
+ ]
299
+ },
300
+ "checkout_started": {
301
+ "enrichments": [
302
+ {
303
+ "staticString": "checkout",
304
+ "outputKey": "event"
305
+ },
306
+ {
307
+ "staticString": "cart",
308
+ "outputKey": "sitetype"
309
+ }
310
+ ],
311
+ "mappings": [
312
+ {
313
+ "inputKey": "input",
314
+ "outputKey": "products",
315
+ "transforms": [
316
+ {
317
+ "expression": {
318
+ "body": "return MAP(\n input.properties.products,\n function (p)\n return {\n id = p.product_id or p.sku or '',\n name = p.name,\n price = p.price,\n qty = p.quantity,\n category = p.category,\n brand = p.brand,\n variant = p.variant\n }\n end\n)",
319
+ "lang": "lua"
320
+ }
321
+ }
322
+ ]
323
+ }
324
+ ]
325
+ },
326
+ "order_completed": {
327
+ "enrichments": [
328
+ {
329
+ "staticString": "purchased",
330
+ "outputKey": "event"
331
+ },
332
+ {
333
+ "staticString": "cart",
334
+ "outputKey": "sitetype"
335
+ }
336
+ ],
337
+ "mappings": [
338
+ {
339
+ "inputKey": "properties.order_id",
340
+ "outputKey": "ord"
341
+ },
342
+ {
343
+ "inputKey": "input",
344
+ "outputKey": "cost",
345
+ "transforms": [
346
+ {
347
+ "expression": {
348
+ "lang": "lua",
349
+ "body": "return TOTAL_VALUE(input.properties.products)"
350
+ }
351
+ }
352
+ ]
353
+ },
354
+ {
355
+ "inputKey": "input",
356
+ "outputKey": "qty",
357
+ "transforms": [
358
+ {
359
+ "expression": {
360
+ "lang": "lua",
361
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.quantity or 1 end))"
362
+ }
363
+ }
364
+ ]
365
+ },
366
+ {
367
+ "inputKey": "properties.tax",
368
+ "outputKey": "tax"
369
+ },
370
+ {
371
+ "inputKey": "input",
372
+ "outputKey": "products",
373
+ "transforms": [
374
+ {
375
+ "expression": {
376
+ "body": "return MAP(\n input.properties.products,\n function (p)\n return {\n id = p.product_id or p.sku or '',\n name = p.name,\n price = p.price,\n qty = p.quantity,\n category = p.category,\n brand = p.brand,\n variant = p.variant\n }\n end\n)",
377
+ "lang": "lua"
378
+ }
379
+ }
380
+ ]
381
+ }
382
+ ]
383
+ }
384
+ }
385
+ }
@@ -1 +1 @@
1
- "3bc9b55f90e53425fd9ea6877858768d"
1
+ "50e3e5e9aab732c28c4ceff533169fe6"
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2025-06-04T21:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nThe Trade Desk - Conversions initial release"
19
+ },
20
+ {
21
+ "date": "2025-07-02T21:00:00.000Z",
22
+ "note": "Version: 0.2.0\nRemoving mappings related to Unified ID 2.0"
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "37dfc341f9dd88b38ea2a20235f77132"
1
+ "3d0765d563eabce993d7de1e053f43bc"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.2.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "PIXEL_ID",
@@ -44,10 +44,6 @@
44
44
  }
45
45
  ]
46
46
  },
47
- {
48
- "inputKey": "context.providers.unifiedId2.uid2_id",
49
- "outputKey": "uid2"
50
- },
51
47
  {
52
48
  "inputKey": "context.providers.theTradeDesk.ttd_id",
53
49
  "outputKey": "tdid"
@@ -116,7 +112,7 @@
116
112
  "expressions": [
117
113
  {
118
114
  "lang": "lua",
119
- "body": "local result = {}\n\n-- advertisindId\nif input.context.device.type == 'android' then\n result.idfa = input.context.device.advertisingId\nelseif input.context.device.type == 'ios' then\n result.aaid = input.context.device.advertisingId\nend\n\n-- adid\nif input.context.providers.unifiedId2.uid2_id then\n result.adid = input.context.providers.unifiedId2.uid2_id\n result.adid_type = \"UID2\"\nelseif input.context.providers.theTradeDesk.ttd_id then\n result.adid = input.context.providers.theTradeDesk.ttd_id\n result.adid_type = \"TDID\"\nend\n\nreturn result"
115
+ "body": "local result = {}\n\n-- advertisindId\nif input.context.device.type == 'android' then\n result.idfa = input.context.device.advertisingId\nelseif input.context.device.type == 'ios' then\n result.aaid = input.context.device.advertisingId\nend\n\n-- adid\nif input.context.providers.theTradeDesk.ttd_id then\n result.adid = input.context.providers.theTradeDesk.ttd_id\n result.adid_type = \"TDID\"\nend\n\nreturn result"
120
116
  }
121
117
  ]
122
118
  },
package/README.md CHANGED
@@ -5,14 +5,17 @@ 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-07
9
+ - Amazon DSP CAPI (BETA)
10
+ - The Trade Desk - Conversions (BETA)
11
+
8
12
  ## 2025-06
9
13
  - Kochava (BETA)
10
14
  - Kochava IdentityLink (BETA)
11
15
  - Perion (BETA)
12
- - The Trade Desk - Conversions (BETA)
16
+ - Ringier Axel Springer Poland (BETA)
13
17
 
14
18
  ## 2025-05
15
- - Amazon DSP CAPI (BETA)
16
19
  - Amazon Kinesis (BETA)
17
20
  - TheTradeDesk Conversion Events
18
21
 
@@ -123,11 +126,12 @@ previously.
123
126
 
124
127
  | Kit Name | Date | Latest Note |
125
128
  |----------|------|-------------|
129
+ | Amazon DSP CAPI (BETA) | 2025-07 | Version: 0.2.0 Adding oauth2Auth and updating headers. |
130
+ | The Trade Desk - Conversions (BETA) | 2025-07 | Version: 0.2.0 Removing mappings related to Unified ID 2.0 |
126
131
  | Kochava (BETA) | 2025-06 | Version: 0.1.0 Beta Version Kochava non-identify initial release Moved the identify event to its dedicated starter-kit: kochava-identitylink |
127
132
  | Kochava IdentityLink (BETA) | 2025-06 | Version: 0.1.0 Beta Version Kochava IdentityLink initial release |
128
133
  | Perion (BETA) | 2025-06 | Version: 0.2.0 Fixing product_viewed's products field |
129
- | The Trade Desk - Conversions (BETA) | 2025-06 | Version: 0.1.0 Beta Version The Trade Desk - Conversions initial release |
130
- | Amazon DSP CAPI (BETA) | 2025-05 | Version: 0.1.0 Beta Version Amazon DSP CAPI initial release. |
134
+ | Ringier Axel Springer Poland (BETA) | 2025-06 | Version: 0.1.0 Beta Version Ringier Axel Springer Poland initial release |
131
135
  | Amazon Kinesis (BETA) | 2025-05 | Version: 0.1.0 Beta Version Amazon Kinesis initial release. |
132
136
  | TheTradeDesk Conversion Events | 2025-05 | Version: 1.2.0 Deprecated |
133
137
  | Amazon Data Firehose | 2025-04 | Version: 1.0.0 Stable release |
package/index.js CHANGED
@@ -399,6 +399,12 @@ exports.podsights = {
399
399
  metadata: require('./.dist/podsights/metadata.json')
400
400
  }
401
401
 
402
+ exports.rasp = {
403
+ endpointSchema: require('./.dist/rasp/connection.json'),
404
+ playbook: require('./.dist/rasp/playbook.json'),
405
+ metadata: require('./.dist/rasp/metadata.json')
406
+ }
407
+
402
408
  exports['reddit-ads'] = {
403
409
  endpointSchema: require('./.dist/reddit-ads/connection.json'),
404
410
  playbook: require('./.dist/reddit-ads/playbook.json'),
@@ -853,6 +859,11 @@ exports.etags = {
853
859
  playbook: require('./.dist/podsights/playbook.etag.json'),
854
860
  kit: require('./.dist/podsights/kit.etag.json')
855
861
  },
862
+ 'rasp': {
863
+ endpointSchema: require('./.dist/rasp/connection.etag.json'),
864
+ playbook: require('./.dist/rasp/playbook.etag.json'),
865
+ kit: require('./.dist/rasp/kit.etag.json')
866
+ },
856
867
  'reddit-ads': {
857
868
  endpointSchema: require('./.dist/reddit-ads/connection.etag.json'),
858
869
  playbook: require('./.dist/reddit-ads/playbook.etag.json'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metarouter/ajs-starter-kit",
3
- "version": "1.0.132",
3
+ "version": "1.0.134",
4
4
  "description": "MetaRouter analytics.js starter kit",
5
5
  "main": "index.js",
6
6
  "scripts": {