@metarouter/ajs-starter-kit 1.0.122 → 1.0.124

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 (35) hide show
  1. package/.dist/amplitude/connection.etag.json +1 -1
  2. package/.dist/amplitude/connection.json +7 -2
  3. package/.dist/amplitude/kit.etag.json +1 -1
  4. package/.dist/amplitude/metadata.json +4 -0
  5. package/.dist/amplitude/playbook.etag.json +1 -1
  6. package/.dist/amplitude/playbook.json +1 -1
  7. package/.dist/button/kit.etag.json +1 -1
  8. package/.dist/button/metadata.json +9 -1
  9. package/.dist/button/playbook.etag.json +1 -1
  10. package/.dist/button/playbook.json +2 -2
  11. package/.dist/linkedin-ads/connection.etag.json +1 -0
  12. package/.dist/linkedin-ads/connection.json +53 -0
  13. package/.dist/linkedin-ads/kit.etag.json +1 -0
  14. package/.dist/linkedin-ads/metadata.json +20 -0
  15. package/.dist/linkedin-ads/playbook.etag.json +1 -0
  16. package/.dist/linkedin-ads/playbook.json +267 -0
  17. package/.dist/podscribe/connection.etag.json +1 -0
  18. package/.dist/podscribe/connection.json +6 -0
  19. package/.dist/podscribe/kit.etag.json +1 -0
  20. package/.dist/podscribe/metadata.json +21 -0
  21. package/.dist/podscribe/playbook.etag.json +1 -0
  22. package/.dist/podscribe/playbook.json +155 -0
  23. package/.dist/ringier-axel-springer-poland/connection.etag.json +1 -0
  24. package/.dist/ringier-axel-springer-poland/connection.json +31 -0
  25. package/.dist/ringier-axel-springer-poland/kit.etag.json +1 -0
  26. package/.dist/ringier-axel-springer-poland/metadata.json +21 -0
  27. package/.dist/ringier-axel-springer-poland/playbook.etag.json +1 -0
  28. package/.dist/ringier-axel-springer-poland/playbook.json +369 -0
  29. package/.dist/tiktok/kit.etag.json +1 -1
  30. package/.dist/tiktok/metadata.json +4 -0
  31. package/.dist/tiktok/playbook.etag.json +1 -1
  32. package/.dist/tiktok/playbook.json +2 -2
  33. package/README.md +12 -6
  34. package/index.js +22 -0
  35. package/package.json +1 -1
@@ -1 +1 @@
1
- "7760e17c3d8f9bd3de9c72ab399283e0"
1
+ "bacfc071fc8b0340f1ea002106f7aeba"
@@ -3,10 +3,15 @@
3
3
  {
4
4
  "name": "API_KEY",
5
5
  "exampleValue": "my-api-key"
6
+ },
7
+ {
8
+ "name": "API_URL",
9
+ "exampleValue": "my-api-url",
10
+ "defaultValue": "https://api2.amplitude.com"
6
11
  }
7
12
  ],
8
13
  "default": {
9
- "endpoint": "https://api2.amplitude.com/batch",
14
+ "endpoint": "$$API_URL$$/batch",
10
15
  "batchSize": 10,
11
16
  "transform": {
12
17
  "lang": "lua",
@@ -30,7 +35,7 @@
30
35
  },
31
36
  "eventSpecific": {
32
37
  "identify": {
33
- "endpoint": "https://api.amplitude.com/identify",
38
+ "endpoint": "$$API_URL$$/identify",
34
39
  "method": "GET"
35
40
  }
36
41
  }
@@ -1 +1 @@
1
- "cb30602a497694715e97fcc66bfab5d1"
1
+ "9c4ef4fef98bd2c5767e6a257f1e42ca"
@@ -52,6 +52,10 @@
52
52
  {
53
53
  "date": "2024-10-23T00:00:00.000Z",
54
54
  "note": "Version: 1.1.0\nAdded header `Accept-Encoding: application/json`"
55
+ },
56
+ {
57
+ "date": "2025-03-12T00:00:00.000Z",
58
+ "note": "Version: 1.2.0\nAdded API_URL param to accommodate Amplitude's EU residency server"
55
59
  }
56
60
  ]
57
61
  }
@@ -1 +1 @@
1
- "834bfe68a6a49475ad5b437efe6a3dc5"
1
+ "c124144473be88c006d8529790bebac6"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0",
2
+ "version": "1.2.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "API_KEY",
@@ -1 +1 @@
1
- "d877f39358279e01f0127d56eb00907a"
1
+ "5363d91988101708e8208a5ee65ea94e"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "isDraft": false,
3
3
  "isDeprecated": false,
4
- "isBeta": true,
4
+ "isBeta": false,
5
5
  "friendlyName": "Button",
6
6
  "description": "Button is a commerce optimization platform that enhances affiliate, creator, and social traffic through AI-driven solutions.",
7
7
  "logo": "https://cdn.metarouter.io/button.png",
@@ -16,6 +16,14 @@
16
16
  {
17
17
  "date": "2025-02-19T22:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nButton initial release"
19
+ },
20
+ {
21
+ "date": "2025-03-12T22:00:00.000Z",
22
+ "note": "Version: 0.1.1\nFix stanza spelling"
23
+ },
24
+ {
25
+ "date": "2025-03-12T22:00:00.000Z",
26
+ "note": "Version: 1.0.0\nStable release"
19
27
  }
20
28
  ]
21
29
  }
@@ -1 +1 @@
1
- "64e7cfb0aedd617a5abb97559137ff29"
1
+ "a26132d23cc3868990f71e20aaeadd82"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "1.0.0",
3
3
  "default": {
4
4
  "filters": [
5
5
  {
@@ -72,7 +72,7 @@
72
72
  }
73
73
  ]
74
74
  },
75
- "event_specific": {
75
+ "eventSpecific": {
76
76
  "order_completed": {
77
77
  "enrichments": [
78
78
  {
@@ -0,0 +1 @@
1
+ "1d8e804adaf69151538805df03c57a5a"
@@ -0,0 +1,53 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "ACCESS_TOKEN",
5
+ "exampleValue": "my-access-token"
6
+ },
7
+ {
8
+ "name": "PROTOCOL_VERSION",
9
+ "exampleValue": "my-protocol-version",
10
+ "defaultValue": "2.0.0"
11
+ },
12
+ {
13
+ "name": "LINKEDIN_VERSION",
14
+ "exampleValue": "my-linkedin-version",
15
+ "defaultValue": "202408"
16
+ }
17
+ ],
18
+ "default": {
19
+ "endpoint": "https://api.linkedin.com/rest/conversionEvents",
20
+ "batchSize": 500,
21
+ "transform": {
22
+ "lang": "lua",
23
+ "body": "request.body = { elements = batch }\nreturn request"
24
+ },
25
+ "method": "POST",
26
+ "headers": [
27
+ {
28
+ "key": "Content-Type",
29
+ "value": "application/json"
30
+ },
31
+ {
32
+ "key": "Accept",
33
+ "value": "*/*"
34
+ },
35
+ {
36
+ "key": "Authorization",
37
+ "value": "Bearer $$ACCESS_TOKEN$$"
38
+ },
39
+ {
40
+ "key": "X-Restli-Protocol-Version",
41
+ "value": "$$PROTOCOL_VERSION$$"
42
+ },
43
+ {
44
+ "key": "LinkedIn-Version",
45
+ "value": "$$LINKEDIN_VERSION$$"
46
+ },
47
+ {
48
+ "key": "X-RestLi-Method",
49
+ "value": "BATCH_CREATE"
50
+ }
51
+ ]
52
+ }
53
+ }
@@ -0,0 +1 @@
1
+ "abdfaee3178df4d875e07e3540742330"
@@ -0,0 +1,20 @@
1
+ {
2
+ "isDraft": true,
3
+ "isBeta": false,
4
+ "friendlyName": "Linkedin Ads",
5
+ "description": "LinkedIn Ads is a powerful advertising platform designed for professional networking and B2B marketing.",
6
+ "logo": "https://cdn.metarouter.io/linkedin-ads.png",
7
+ "color": "#0077B5",
8
+ "eventSource": {
9
+ "isAndroidApp": true,
10
+ "isIosApp": true,
11
+ "isWebApp": true
12
+ },
13
+ "inputSchema": "analytics_js",
14
+ "releaseNotes": [
15
+ {
16
+ "date": "2025-02-26T21:00:00.000Z",
17
+ "note": "Version: 0.1.0\nDraft Mode\nLinkedIn Ads draft release"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1 @@
1
+ "feea203eea05f2b2b1576f5d440febf4"
@@ -0,0 +1,267 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "default": {
4
+ "filters": [
5
+ {
6
+ "byEventNames": {
7
+ "action": "allow",
8
+ "events": [
9
+ ""
10
+ ]
11
+ }
12
+ }
13
+ ]
14
+ },
15
+ "global": {
16
+ "mappings": [
17
+ {
18
+ "inputKey": "input",
19
+ "outputKey": "conversionHappenedAt",
20
+ "transforms": [
21
+ {
22
+ "expression": {
23
+ "body": "return MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp, { inputFormat = \"2006-01-02T15:04:05Z07:00\" }))",
24
+ "lang": "lua"
25
+ }
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "inputKey": "traits.firstName",
31
+ "outputKey": "user.userInfo.firstName"
32
+ },
33
+ {
34
+ "inputKey": "traits.lastName",
35
+ "outputKey": "user.userInfo.lastName"
36
+ },
37
+ {
38
+ "inputKey": "traits.company",
39
+ "outputKey": "user.userInfo.companyName"
40
+ },
41
+ {
42
+ "inputKey": "traits.title",
43
+ "outputKey": "user.userInfo.title"
44
+ },
45
+ {
46
+ "inputKey": "traits.countryCode",
47
+ "outputKey": "user.userInfo.countryCode"
48
+ },
49
+ {
50
+ "inputKey": "input",
51
+ "outputKey": "user.userIds",
52
+ "transforms": [
53
+ {
54
+ "expression": {
55
+ "lang": "lua",
56
+ "body": "local function is_empty(str)\n return not str or str == ''\nend\n\nlocal user_ids = {}\n\nlocal email = input.traits.email or input.context.traits.email\nif email then\n table.insert(user_ids, {\n idType = 'SHA256_EMAIL',\n idValue = TO_SHA256_HASH(LOWER(TRIM(email)))\n })\nend\n\nlocal li_fat_id = input.context.providers.linkedIn.li_fat_id\nif li_fat_id then\n table.insert(user_ids, {\n idType = 'LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID',\n idValue = li_fat_id\n })\nend\nreturn user_ids"
57
+ }
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "inputKey": "messageId",
63
+ "outputKey": "eventId"
64
+ }
65
+ ]
66
+ },
67
+ "eventSpecific": {
68
+ "identify": {
69
+ "enrichments": [
70
+ {
71
+ "staticString": "ADD_CONVERSION_URN_HERE",
72
+ "outputKey": "conversion"
73
+ }
74
+ ],
75
+ "mappings": [
76
+ {
77
+ "inputKey": "input",
78
+ "outputKey": "conversionValue",
79
+ "transforms": [
80
+ {
81
+ "expression": {
82
+ "lang": "lua",
83
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
84
+ }
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ },
90
+ "page": {
91
+ "enrichments": [
92
+ {
93
+ "staticString": "ADD_CONVERSION_URN_HERE",
94
+ "outputKey": "conversion"
95
+ }
96
+ ],
97
+ "mappings": [
98
+ {
99
+ "inputKey": "input",
100
+ "outputKey": "conversionValue",
101
+ "transforms": [
102
+ {
103
+ "expression": {
104
+ "lang": "lua",
105
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
106
+ }
107
+ }
108
+ ]
109
+ }
110
+ ]
111
+ },
112
+ "checkout_started": {
113
+ "enrichments": [
114
+ {
115
+ "staticString": "ADD_CONVERSION_URN_HERE",
116
+ "outputKey": "conversion"
117
+ }
118
+ ],
119
+ "mappings": [
120
+ {
121
+ "inputKey": "input",
122
+ "outputKey": "conversionValue",
123
+ "transforms": [
124
+ {
125
+ "expression": {
126
+ "lang": "lua",
127
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
128
+ }
129
+ }
130
+ ]
131
+ }
132
+ ]
133
+ },
134
+ "order_completed": {
135
+ "enrichments": [
136
+ {
137
+ "staticString": "ADD_CONVERSION_URN_HERE",
138
+ "outputKey": "conversion"
139
+ }
140
+ ],
141
+ "mappings": [
142
+ {
143
+ "inputKey": "input",
144
+ "outputKey": "conversionValue",
145
+ "transforms": [
146
+ {
147
+ "expression": {
148
+ "lang": "lua",
149
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
150
+ }
151
+ }
152
+ ]
153
+ }
154
+ ]
155
+ },
156
+ "payment_info_entered": {
157
+ "enrichments": [
158
+ {
159
+ "staticString": "ADD_CONVERSION_URN_HERE",
160
+ "outputKey": "conversion"
161
+ }
162
+ ],
163
+ "mappings": [
164
+ {
165
+ "inputKey": "input",
166
+ "outputKey": "conversionValue",
167
+ "transforms": [
168
+ {
169
+ "expression": {
170
+ "lang": "lua",
171
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
172
+ }
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ },
178
+ "product_added": {
179
+ "enrichments": [
180
+ {
181
+ "staticString": "ADD_CONVERSION_URN_HERE",
182
+ "outputKey": "conversion"
183
+ }
184
+ ],
185
+ "mappings": [
186
+ {
187
+ "inputKey": "input",
188
+ "outputKey": "conversionValue",
189
+ "transforms": [
190
+ {
191
+ "expression": {
192
+ "lang": "lua",
193
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
194
+ }
195
+ }
196
+ ]
197
+ }
198
+ ]
199
+ },
200
+ "product_viewed": {
201
+ "enrichments": [
202
+ {
203
+ "staticString": "ADD_CONVERSION_URN_HERE",
204
+ "outputKey": "conversion"
205
+ }
206
+ ],
207
+ "mappings": [
208
+ {
209
+ "inputKey": "input",
210
+ "outputKey": "conversionValue",
211
+ "transforms": [
212
+ {
213
+ "expression": {
214
+ "lang": "lua",
215
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
216
+ }
217
+ }
218
+ ]
219
+ }
220
+ ]
221
+ },
222
+ "products_searched": {
223
+ "enrichments": [
224
+ {
225
+ "staticString": "ADD_CONVERSION_URN_HERE",
226
+ "outputKey": "conversion"
227
+ }
228
+ ],
229
+ "mappings": [
230
+ {
231
+ "inputKey": "input",
232
+ "outputKey": "conversionValue",
233
+ "transforms": [
234
+ {
235
+ "expression": {
236
+ "lang": "lua",
237
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
238
+ }
239
+ }
240
+ ]
241
+ }
242
+ ]
243
+ },
244
+ "promotion_clicked": {
245
+ "enrichments": [
246
+ {
247
+ "staticString": "ADD_CONVERSION_URN_HERE",
248
+ "outputKey": "conversion"
249
+ }
250
+ ],
251
+ "mappings": [
252
+ {
253
+ "inputKey": "input",
254
+ "outputKey": "conversionValue",
255
+ "transforms": [
256
+ {
257
+ "expression": {
258
+ "lang": "lua",
259
+ "body": "local currency = input.properties.currency local revenue = input.properties.revenue\nif currency and revenue then return {\n currencyCode = UPPER(currency),\n amount = TO_STRING(TO_FLOAT(revenue))\n }\nend"
260
+ }
261
+ }
262
+ ]
263
+ }
264
+ ]
265
+ }
266
+ }
267
+ }
@@ -0,0 +1 @@
1
+ "844d255b7d234f50fad501d603c4ae87"
@@ -0,0 +1,6 @@
1
+ {
2
+ "default": {
3
+ "endpoint": "https://verifi.podscribe.com/tag",
4
+ "method": "GET"
5
+ }
6
+ }
@@ -0,0 +1 @@
1
+ "452a0143cf13dcf5e5b4055a84545688"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Podscribe",
6
+ "description": "Podscribe is a podcast attribution and analytics platform that helps advertisers, agencies, and publishers measure the effectiveness of podcast advertising.",
7
+ "logo": "https://cdn.metarouter.io/podscribe.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-03-12T22:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nPodscribe initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "5eba1d298e1c3c277d6fd56fc61ec87e"
@@ -0,0 +1,155 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "ADVERTISER_ID",
6
+ "exampleValue": "my-advertiser-id"
7
+ }
8
+ ],
9
+ "default": {
10
+ "mappings": [
11
+ {
12
+ "inputKey": "input",
13
+ "outputKey": "action",
14
+ "transforms": [
15
+ {
16
+ "expression": {
17
+ "lang": "lua",
18
+ "body": "if input.type == 'track' then return input.event\nelse return input.type\nend"
19
+ }
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ },
25
+ "global": {
26
+ "enrichments": [
27
+ {
28
+ "staticString": "$$ADVERTISER_ID$$",
29
+ "outputKey": "advertiser"
30
+ },
31
+ {
32
+ "staticString": "server",
33
+ "outputKey": "source"
34
+ }
35
+ ],
36
+ "mappings": [
37
+ {
38
+ "inputKey": "context.userAgent",
39
+ "outputKey": "user_agent"
40
+ },
41
+ {
42
+ "inputKey": "context.ip",
43
+ "outputKey": "ip"
44
+ },
45
+ {
46
+ "inputKey": "input",
47
+ "outputKey": "timestamp",
48
+ "transforms": [
49
+ {
50
+ "expression": {
51
+ "lang": "lua",
52
+ "body": "return input.originalTimestamp or input.sentAt"
53
+ }
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "inputKey": "anonymousId",
59
+ "outputKey": "device_id"
60
+ },
61
+ {
62
+ "inputKey": "input",
63
+ "outputKey": "event_url",
64
+ "transforms": [
65
+ {
66
+ "expression": {
67
+ "lang": "lua",
68
+ "body": "return SPLIT(input.context.page.url, \"?\", 1)[1] or \"\""
69
+ }
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "inputKey": "input",
75
+ "outputKey": "referrer_url",
76
+ "transforms": [
77
+ {
78
+ "expression": {
79
+ "lang": "lua",
80
+ "body": "return SPLIT(input.context.page.referrer, \"?\", 1)[1] or \"\""
81
+ }
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "inputKey": "input",
87
+ "outputKey": "hashed_email",
88
+ "transforms": [
89
+ {
90
+ "expression": {
91
+ "body": "local email = input.traits.email or input.context.traits.email\nif email then return TO_SHA256_HASH(LOWER(TRIM(email))) end\nreturn",
92
+ "lang": "lua"
93
+ }
94
+ }
95
+ ]
96
+ }
97
+ ],
98
+ "expressions": [
99
+ {
100
+ "body": "local output = {}\nif input.context.device.id then\n if input.context.device and input.context.device.type then\n if LOWER(input.context.device.type) == 'ios' then output['idfa'] = input.context.device.id\n elseif LOWER(input.context.device.type) == 'android' then output['gaid'] = input.context.device.id\n end\n end\nend\n\nreturn output",
101
+ "lang": "lua"
102
+ }
103
+ ]
104
+ },
105
+ "eventSpecific": {
106
+ "page": {
107
+ "enrichments": [
108
+ {
109
+ "staticString": "view",
110
+ "outputKey": "action"
111
+ }
112
+ ]
113
+ },
114
+ "order_completed": {
115
+ "enrichments": [
116
+ {
117
+ "staticString": "purchase",
118
+ "outputKey": "action"
119
+ }
120
+ ],
121
+ "mappings": [
122
+ {
123
+ "inputKey": "properties.order_id",
124
+ "outputKey": "order_number"
125
+ },
126
+ {
127
+ "inputKey": "properties.currency",
128
+ "outputKey": "currency",
129
+ "transforms": [
130
+ {
131
+ "modifyString": "uppercase"
132
+ }
133
+ ],
134
+ "defaultString": "USD"
135
+ },
136
+ {
137
+ "inputKey": "input",
138
+ "outputKey": "value",
139
+ "transforms": [
140
+ {
141
+ "expression": {
142
+ "lang": "lua",
143
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end))"
144
+ }
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ "inputKey": "properties.coupon",
150
+ "outputKey": "discount_code"
151
+ }
152
+ ]
153
+ }
154
+ }
155
+ }
@@ -0,0 +1 @@
1
+ "f7ba21c9d32bd7c5a9219a45191a1523"
@@ -0,0 +1,31 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "NETWORK",
5
+ "exampleValue": "my-network"
6
+ }
7
+ ],
8
+ "default": {
9
+ "endpoint": "https://csr.onet.pl/$$NETWORK$$/activity",
10
+ "headers": [
11
+ {
12
+ "key": "Accept-Encoding",
13
+ "value": "application/json"
14
+ },
15
+ {
16
+ "key": "Referer",
17
+ "fromEventKey": "context.page.url"
18
+ },
19
+ {
20
+ "key": "User-Agent",
21
+ "fromEventKey": "context.userAgent"
22
+ }
23
+ ],
24
+ "method": "GET",
25
+ "batchSize": 1,
26
+ "transform": {
27
+ "lang": "lua",
28
+ "body": "if batch[1].adp_session then\n request.headers[\"Cookie\"] = \"adp_session=\\\"\" .. batch[1].adp_session .. \"\\\"\"\n request.url = REPLACE(request.url, '&adp_session=' .. batch[1].adp_session, '')\nend\nreturn request"
29
+ }
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ "a7833745bcb2a928104b1cbd86aa646c"
@@ -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-03-05T22:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nRingier Axel Springer Poland initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "bbf45d438ba19a7bd53b2cddc6433b56"
@@ -0,0 +1,369 @@
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": "context.providers.ringierAxelSpringerPoland.sessionID",
39
+ "outputKey": "adp_session"
40
+ },
41
+ {
42
+ "inputKey": "input",
43
+ "outputKey": "eid",
44
+ "transforms": [
45
+ {
46
+ "expression": {
47
+ "body": "local email = input.traits.email or input.context.traits.email\nif email then return TO_MD5_HASH(LOWER(TRIM(email))) end\nreturn",
48
+ "lang": "lua"
49
+ }
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "inputKey": "input",
55
+ "outputKey": "src",
56
+ "transforms": [
57
+ {
58
+ "expression": {
59
+ "body": "if input.context.app.name or input.context.device.type or input.context.os.name then return 'app' end\nreturn 's2s'",
60
+ "lang": "lua"
61
+ }
62
+ }
63
+ ]
64
+ }
65
+ ]
66
+ },
67
+ "default": {
68
+ "enrichments": [
69
+ {
70
+ "staticString": "custom",
71
+ "outputKey": "event"
72
+ }
73
+ ],
74
+ "mappings": [
75
+ {
76
+ "inputKey": "input",
77
+ "outputKey": "custom_event",
78
+ "transforms": [
79
+ {
80
+ "expression": {
81
+ "body": "if input.type == 'track' then return LOWER(REPLACE(input.event, ' ', '_')) end\nreturn input.type",
82
+ "lang": "lua"
83
+ }
84
+ }
85
+ ]
86
+ }
87
+ ]
88
+ },
89
+ "eventSpecific": {
90
+ "page": {
91
+ "enrichments": [
92
+ {
93
+ "staticString": "page_view",
94
+ "outputKey": "event"
95
+ }
96
+ ]
97
+ },
98
+ "products_searched": {
99
+ "enrichments": [
100
+ {
101
+ "staticString": "search_query",
102
+ "outputKey": "event"
103
+ }
104
+ ],
105
+ "mappings": [
106
+ {
107
+ "inputKey": "properties.query",
108
+ "outputKey": "query"
109
+ }
110
+ ]
111
+ },
112
+ "product_list_viewed": {
113
+ "enrichments": [
114
+ {
115
+ "staticString": "custom",
116
+ "outputKey": "event"
117
+ },
118
+ {
119
+ "staticString": "product_list_viewed",
120
+ "outputKey": "custom_event"
121
+ }
122
+ ],
123
+ "mappings": [
124
+ {
125
+ "inputKey": "input",
126
+ "outputKey": "products",
127
+ "transforms": [
128
+ {
129
+ "expression": {
130
+ "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)",
131
+ "lang": "lua"
132
+ }
133
+ }
134
+ ]
135
+ }
136
+ ]
137
+ },
138
+ "product_clicked": {
139
+ "enrichments": [
140
+ {
141
+ "staticString": "custom",
142
+ "outputKey": "event"
143
+ },
144
+ {
145
+ "staticString": "product_clicked",
146
+ "outputKey": "custom_event"
147
+ }
148
+ ],
149
+ "mappings": [
150
+ {
151
+ "inputKey": "input",
152
+ "outputKey": "products",
153
+ "transforms": [
154
+ {
155
+ "expression": {
156
+ "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}}",
157
+ "lang": "lua"
158
+ }
159
+ }
160
+ ]
161
+ }
162
+ ]
163
+ },
164
+ "product_viewed": {
165
+ "enrichments": [
166
+ {
167
+ "staticString": "product_detail",
168
+ "outputKey": "event"
169
+ },
170
+ {
171
+ "staticString": "product",
172
+ "outputKey": "sitetype"
173
+ }
174
+ ],
175
+ "mappings": [
176
+ {
177
+ "inputKey": "input",
178
+ "outputKey": "products",
179
+ "transforms": [
180
+ {
181
+ "expression": {
182
+ "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}}",
183
+ "lang": "lua"
184
+ }
185
+ }
186
+ ]
187
+ }
188
+ ]
189
+ },
190
+ "product_added": {
191
+ "enrichments": [
192
+ {
193
+ "staticString": "add_to_cart",
194
+ "outputKey": "event"
195
+ }
196
+ ],
197
+ "mappings": [
198
+ {
199
+ "inputKey": "input",
200
+ "outputKey": "products",
201
+ "transforms": [
202
+ {
203
+ "expression": {
204
+ "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}}",
205
+ "lang": "lua"
206
+ }
207
+ }
208
+ ]
209
+ }
210
+ ]
211
+ },
212
+ "product_removed": {
213
+ "enrichments": [
214
+ {
215
+ "staticString": "remove_from_cart",
216
+ "outputKey": "event"
217
+ }
218
+ ],
219
+ "mappings": [
220
+ {
221
+ "inputKey": "input",
222
+ "outputKey": "products",
223
+ "transforms": [
224
+ {
225
+ "expression": {
226
+ "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}}",
227
+ "lang": "lua"
228
+ }
229
+ }
230
+ ]
231
+ }
232
+ ]
233
+ },
234
+ "cart_viewed": {
235
+ "enrichments": [
236
+ {
237
+ "staticString": "view_cart",
238
+ "outputKey": "event"
239
+ },
240
+ {
241
+ "staticString": "cart",
242
+ "outputKey": "sitetype"
243
+ }
244
+ ],
245
+ "mappings": [
246
+ {
247
+ "inputKey": "input",
248
+ "outputKey": "cost",
249
+ "transforms": [
250
+ {
251
+ "expression": {
252
+ "lang": "lua",
253
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end))"
254
+ }
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "inputKey": "input",
260
+ "outputKey": "qty",
261
+ "transforms": [
262
+ {
263
+ "expression": {
264
+ "lang": "lua",
265
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.quantity or 1 end))"
266
+ }
267
+ }
268
+ ]
269
+ },
270
+ {
271
+ "inputKey": "input",
272
+ "outputKey": "products",
273
+ "transforms": [
274
+ {
275
+ "expression": {
276
+ "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)",
277
+ "lang": "lua"
278
+ }
279
+ }
280
+ ]
281
+ }
282
+ ]
283
+ },
284
+ "checkout_started": {
285
+ "enrichments": [
286
+ {
287
+ "staticString": "checkout",
288
+ "outputKey": "event"
289
+ },
290
+ {
291
+ "staticString": "cart",
292
+ "outputKey": "sitetype"
293
+ }
294
+ ],
295
+ "mappings": [
296
+ {
297
+ "inputKey": "input",
298
+ "outputKey": "products",
299
+ "transforms": [
300
+ {
301
+ "expression": {
302
+ "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)",
303
+ "lang": "lua"
304
+ }
305
+ }
306
+ ]
307
+ }
308
+ ]
309
+ },
310
+ "order_completed": {
311
+ "enrichments": [
312
+ {
313
+ "staticString": "purchased",
314
+ "outputKey": "event"
315
+ },
316
+ {
317
+ "staticString": "cart",
318
+ "outputKey": "sitetype"
319
+ }
320
+ ],
321
+ "mappings": [
322
+ {
323
+ "inputKey": "properties.order_id",
324
+ "outputKey": "ord"
325
+ },
326
+ {
327
+ "inputKey": "input",
328
+ "outputKey": "cost",
329
+ "transforms": [
330
+ {
331
+ "expression": {
332
+ "lang": "lua",
333
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.price * (p.quantity or 1) end))"
334
+ }
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "inputKey": "input",
340
+ "outputKey": "qty",
341
+ "transforms": [
342
+ {
343
+ "expression": {
344
+ "lang": "lua",
345
+ "body": "return SUM(MAP(input.properties.products, function (p) return p.quantity or 1 end))"
346
+ }
347
+ }
348
+ ]
349
+ },
350
+ {
351
+ "inputKey": "properties.tax",
352
+ "outputKey": "tax"
353
+ },
354
+ {
355
+ "inputKey": "input",
356
+ "outputKey": "products",
357
+ "transforms": [
358
+ {
359
+ "expression": {
360
+ "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)",
361
+ "lang": "lua"
362
+ }
363
+ }
364
+ ]
365
+ }
366
+ ]
367
+ }
368
+ }
369
+ }
@@ -1 +1 @@
1
- "7f8658a8d50422ab86138d7e7cecb551"
1
+ "f639f517a5f095a21983b8ac982b5573"
@@ -32,6 +32,10 @@
32
32
  {
33
33
  "date": "2024-10-23T00:00:00.000Z",
34
34
  "note": "Version: 2.2.0\nAdded header `Accept-Encoding: application/json`"
35
+ },
36
+ {
37
+ "date": "2025-03-12T00:00:00.000Z",
38
+ "note": "Version: 2.3.0\nMapping updates due to TikTok API changes"
35
39
  }
36
40
  ]
37
41
  }
@@ -1 +1 @@
1
- "9ad8f2ba494bbab6321cb52bad352b5c"
1
+ "94c19646074a59b0eb043756bc6f2494"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.2.0",
2
+ "version": "2.3.0",
3
3
  "default": {
4
4
  "filters": [
5
5
  {
@@ -334,7 +334,7 @@
334
334
  "enrichments": [
335
335
  {
336
336
  "outputKey": "event",
337
- "staticString": "CompletePayment"
337
+ "staticString": "Purchase"
338
338
  },
339
339
  {
340
340
  "outputKey": "properties.content_type",
package/README.md CHANGED
@@ -5,10 +5,16 @@ 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-03
9
+ - Amplitude
10
+ - Button
11
+ - Podscribe (BETA)
12
+ - Ringier Axel Springer Poland (BETA)
13
+ - TikTok
14
+
8
15
  ## 2025-02
9
16
  - Amazon Data Firehose (BETA)
10
17
  - AWIN
11
- - Button (BETA)
12
18
  - Merkle
13
19
  - Moloco Commerce Media
14
20
 
@@ -36,7 +42,6 @@ previously.
36
42
  - Amnet (BETA)
37
43
  - Amobee
38
44
  - Amperity (BETA)
39
- - Amplitude
40
45
  - AppsFlyer Android
41
46
  - AppsFlyer iOS
42
47
  - Microsoft Advertising (BETA)
@@ -70,7 +75,6 @@ previously.
70
75
  - Snapchat Ads
71
76
  - TheTradeDesk Conversion Events
72
77
  - TheTradeDesk Firstparty Advertiser Data
73
- - TikTok
74
78
  - VideoAmp (BETA)
75
79
  - Xandr
76
80
  - Yahoo Enhanced Attribution (BETA)
@@ -108,9 +112,13 @@ previously.
108
112
 
109
113
  | Kit Name | Date | Latest Note |
110
114
  |----------|------|-------------|
115
+ | Amplitude | 2025-03 | Version: 1.2.0 Added API_URL param to accommodate Amplitude's EU residency server |
116
+ | Button | 2025-03 | Version: 0.1.1 Fix stanza spelling |
117
+ | Podscribe (BETA) | 2025-03 | Version: 0.1.0 Beta Version Podscribe initial release |
118
+ | Ringier Axel Springer Poland (BETA) | 2025-03 | Version: 0.1.0 Beta Version Ringier Axel Springer Poland initial release |
119
+ | TikTok | 2025-03 | Version: 2.3.0 Mapping updates due to TikTok API changes |
111
120
  | Amazon Data Firehose (BETA) | 2025-02 | Version: 0.1.0 Beta Version Amazon Data Firehose initial release. |
112
121
  | AWIN | 2025-02 | Version: 1.0.0 Stable release |
113
- | Button (BETA) | 2025-02 | Version: 0.1.0 Beta Version Button initial release |
114
122
  | Merkle | 2025-02 | Version: 1.2.0 Updated mappings to comply with Merkle's requirements Added required fields: ipAddress, userAgent, pageUrl Added optional fields: rawEmail Updated type field of page event to viewpage |
115
123
  | Moloco Commerce Media | 2025-02 | Version: 1.0.0 New Event: session_started -> Mapped to Moloco's LAND event (web) New Event: application_open -> Mapped to Moloco's LAND event (mobile) Updated Event: screen -> Mapped to Moloco's PAGE_VIEW or HOME event based on input.name and/or input.properties.name (mobile) Updated Event: order_completed -> Added mapping for Moloco's shipping_charge field using MetaRouter's properties.shipping (web & mobile) Stable release |
116
124
  | Blueshift | 2025-01 | Version: 1.0.0 Stable release |
@@ -130,7 +138,6 @@ previously.
130
138
  | Amnet (BETA) | 2024-10 | Version: 0.2.0 Added header `Accept-Encoding: application/json` |
131
139
  | Amobee | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
132
140
  | Amperity (BETA) | 2024-10 | Version: 0.2.0 Added header `Accept-Encoding: application/json` |
133
- | Amplitude | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
134
141
  | AppsFlyer Android | 2024-10 | Version: 1.2.0 Added header `Accept-Encoding: application/json` |
135
142
  | AppsFlyer iOS | 2024-10 | Version: 1.2.0 Added header `Accept-Encoding: application/json` |
136
143
  | Microsoft Advertising (BETA) | 2024-10 | Version: 0.2.0 Added header `Accept-Encoding: application/json` |
@@ -164,7 +171,6 @@ previously.
164
171
  | Snapchat Ads | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
165
172
  | TheTradeDesk Conversion Events | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
166
173
  | TheTradeDesk Firstparty Advertiser Data | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
167
- | TikTok | 2024-10 | Version: 2.2.0 Added header `Accept-Encoding: application/json` |
168
174
  | VideoAmp (BETA) | 2024-10 | Version: 0.3.0 Added header `Accept-Encoding: application/json` |
169
175
  | Xandr | 2024-10 | Version: 1.1.0 Added header `Accept-Encoding: application/json` |
170
176
  | Yahoo Enhanced Attribution (BETA) | 2024-10 | Version: 0.2.0 Added header `Accept-Encoding: application/json` |
package/index.js CHANGED
@@ -363,6 +363,12 @@ exports['pinterest-capi'] = {
363
363
  metadata: require('./.dist/pinterest-capi/metadata.json')
364
364
  }
365
365
 
366
+ exports.podscribe = {
367
+ endpointSchema: require('./.dist/podscribe/connection.json'),
368
+ playbook: require('./.dist/podscribe/playbook.json'),
369
+ metadata: require('./.dist/podscribe/metadata.json')
370
+ }
371
+
366
372
  exports.podsights = {
367
373
  endpointSchema: require('./.dist/podsights/connection.json'),
368
374
  playbook: require('./.dist/podsights/playbook.json'),
@@ -381,6 +387,12 @@ exports['rev-jet'] = {
381
387
  metadata: require('./.dist/rev-jet/metadata.json')
382
388
  }
383
389
 
390
+ exports['ringier-axel-springer-poland'] = {
391
+ endpointSchema: require('./.dist/ringier-axel-springer-poland/connection.json'),
392
+ playbook: require('./.dist/ringier-axel-springer-poland/playbook.json'),
393
+ metadata: require('./.dist/ringier-axel-springer-poland/metadata.json')
394
+ }
395
+
384
396
  exports.roku = {
385
397
  endpointSchema: require('./.dist/roku/connection.json'),
386
398
  playbook: require('./.dist/roku/playbook.json'),
@@ -780,6 +792,11 @@ exports.etags = {
780
792
  playbook: require('./.dist/pinterest-capi/playbook.etag.json'),
781
793
  kit: require('./.dist/pinterest-capi/kit.etag.json')
782
794
  },
795
+ 'podscribe': {
796
+ endpointSchema: require('./.dist/podscribe/connection.etag.json'),
797
+ playbook: require('./.dist/podscribe/playbook.etag.json'),
798
+ kit: require('./.dist/podscribe/kit.etag.json')
799
+ },
783
800
  'podsights': {
784
801
  endpointSchema: require('./.dist/podsights/connection.etag.json'),
785
802
  playbook: require('./.dist/podsights/playbook.etag.json'),
@@ -795,6 +812,11 @@ exports.etags = {
795
812
  playbook: require('./.dist/rev-jet/playbook.etag.json'),
796
813
  kit: require('./.dist/rev-jet/kit.etag.json')
797
814
  },
815
+ 'ringier-axel-springer-poland': {
816
+ endpointSchema: require('./.dist/ringier-axel-springer-poland/connection.etag.json'),
817
+ playbook: require('./.dist/ringier-axel-springer-poland/playbook.etag.json'),
818
+ kit: require('./.dist/ringier-axel-springer-poland/kit.etag.json')
819
+ },
798
820
  roku: {
799
821
  endpointSchema: require('./.dist/roku/connection.etag.json'),
800
822
  playbook: require('./.dist/roku/playbook.etag.json'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metarouter/ajs-starter-kit",
3
- "version": "1.0.122",
3
+ "version": "1.0.124",
4
4
  "description": "MetaRouter analytics.js starter kit",
5
5
  "main": "index.js",
6
6
  "scripts": {