@metarouter/ajs-starter-kit 1.0.151 → 1.0.152

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.
@@ -242,7 +242,6 @@
242
242
  }
243
243
  },
244
244
  "required": [
245
- "credentials",
246
245
  "dataset",
247
246
  "projectId",
248
247
  "region"
@@ -1 +1 @@
1
- "d0ac10b67a42773937813707ebe18c93 -"
1
+ "6756f2a83051f41750c07f490fcdeae8 -"
@@ -20,6 +20,10 @@
20
20
  {
21
21
  "date": "2025-11-19T00:00:00.000Z",
22
22
  "note": "Version: 0.2.0\nUpdate playbook with twn_id and attr_cookie."
23
+ },
24
+ {
25
+ "date": "2025-12-10T00:00:00.000Z",
26
+ "note": "Version: 0.3.0\nUpdate campaign/advertiser ID output key"
23
27
  }
24
28
  ]
25
29
  }
@@ -1 +1 @@
1
- "c9b879f5efb6123561407bb59d6a5d59 -"
1
+ "85a4847f98722d5523d76d34cbf674f1 -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.0",
2
+ "version": "0.3.0",
3
3
  "global": {
4
4
  "filters": [
5
5
  {
@@ -31,7 +31,7 @@
31
31
  "enrichments": [
32
32
  {
33
33
  "staticString": "ADD_YOUR_VALUE_HERE",
34
- "outputKey": "ef_[ADD_CAMPAIGN_OR_ADVERTISER]_id"
34
+ "outputKey": "ef_[CHANGE_TO_campaign_OR_advertiser]_id"
35
35
  }
36
36
  ],
37
37
  "mappings": [
@@ -0,0 +1 @@
1
+ "12159a75e6c6da097f1943cfbf37268f -"
@@ -0,0 +1,30 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "ENDPOINT",
5
+ "exampleValue": "my-endpoint"
6
+ }
7
+ ],
8
+ "default": {
9
+ "endpoint": "$$ENDPOINT$$",
10
+ "headers": [
11
+ {
12
+ "key": "Content-Type",
13
+ "value": "application/json"
14
+ },
15
+ {
16
+ "key": "Accept-Encoding",
17
+ "value": "application/json"
18
+ },
19
+ {
20
+ "key": "User-Agent",
21
+ "fromEventKey": "context.userAgent"
22
+ },
23
+ {
24
+ "key": "X-Forwarded-For",
25
+ "fromEventKey": "context.ip"
26
+ }
27
+ ],
28
+ "method": "POST"
29
+ }
30
+ }
@@ -0,0 +1 @@
1
+ "bd423354af5e0f8700130e1813ffddee -"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Eulerian",
6
+ "description": "Eulerian is a French marketing analytics platform focused on attribution, analytics, and activation across web and apps. It unifies customer journeys in real time to help advertisers evaluate channel performance and optimize media decisions, with a strong emphasis on first-party data quality and control.",
7
+ "logo": "https://drive.google.com/file/d/1hyd2C1I1nM9TNkvY_1O5vUD_nr7Uju2P/view",
8
+ "color": "#2b3066",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2025-12-10T21:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nEulerian initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "03405c2eef992ae1c5d8b5fb215eceac -"
@@ -0,0 +1,156 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "global": {
4
+ "enrichments": [
5
+ {
6
+ "staticString": "metarouter",
7
+ "outputKey": "ereplay-platform"
8
+ }
9
+ ],
10
+ "mappings": [
11
+ {
12
+ "inputKey": "input",
13
+ "outputKey": "eemail",
14
+ "transforms": [
15
+ {
16
+ "expression": {
17
+ "body": "local email = input.traits.email\nif email then return TO_SHA256_HASH(LOWER(TRIM(email))) end",
18
+ "lang": "lua"
19
+ }
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "inputKey": "anonymousId",
25
+ "outputKey": "euidl"
26
+ },
27
+ {
28
+ "inputKey": "userId",
29
+ "outputKey": "uid"
30
+ },
31
+ {
32
+ "inputKey": "context.ip",
33
+ "outputKey": "ereplay-ip"
34
+ },
35
+ {
36
+ "inputKey": "context.userAgent",
37
+ "outputKey": "ereplay-ua"
38
+ },
39
+ {
40
+ "inputKey": "context.page.url",
41
+ "outputKey": "url"
42
+ },
43
+ {
44
+ "inputKey": "context.page.referrer",
45
+ "outputKey": "rf"
46
+ },
47
+ {
48
+ "inputKey": "input",
49
+ "outputKey": "ereplay-time",
50
+ "transforms": [
51
+ {
52
+ "expression": {
53
+ "lang": "lua",
54
+ "body": "return SECONDS_SINCE_EPOCH_FROM_RFC3999(input.timestamp or input.originalTimestamp or input.sentAt)"
55
+ }
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ "eventSpecific": {
62
+ "order_completed": {
63
+ "enrichments": [
64
+ {
65
+ "staticInt": "1",
66
+ "outputKey": "order"
67
+ }
68
+ ],
69
+ "mappings": [
70
+ {
71
+ "inputKey": "input",
72
+ "outputKey": "amount",
73
+ "transforms": [
74
+ {
75
+ "expression": {
76
+ "lang": "lua",
77
+ "body": "return TOTAL_VALUE(input.properties.products)"
78
+ }
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "inputKey": "properties.currency",
84
+ "outputKey": "currency",
85
+ "transforms": [
86
+ {
87
+ "modifyString": "uppercase"
88
+ }
89
+ ],
90
+ "defaultString": "USD"
91
+ },
92
+ {
93
+ "inputKey": "properties.order_id",
94
+ "outputKey": "ref"
95
+ },
96
+ {
97
+ "inputKey": "input",
98
+ "outputKey": "products",
99
+ "transforms": [
100
+ {
101
+ "expression": {
102
+ "lang": "lua",
103
+ "body": "local properties = input.properties or {}\nlocal products = properties.products or {}\n\nreturn MAP(\n products,\n function(p)\n local qty = tonumber(p.quantity) or 1\n return {\n ref = p.product_id,\n name = p.name,\n quantity = qty,\n amount = TOTAL_VALUE(p)\n }\n end\n)"
104
+ }
105
+ }
106
+ ]
107
+ }
108
+ ]
109
+ },
110
+ "product_added": {
111
+ "enrichments": [
112
+ {
113
+ "staticInt": "1",
114
+ "outputKey": "scart"
115
+ }
116
+ ],
117
+ "mappings": [
118
+ {
119
+ "inputKey": "properties.currency",
120
+ "outputKey": "currency",
121
+ "transforms": [
122
+ {
123
+ "modifyString": "uppercase"
124
+ }
125
+ ],
126
+ "defaultString": "USD"
127
+ },
128
+ {
129
+ "inputKey": "input",
130
+ "outputKey": "products",
131
+ "transforms": [
132
+ {
133
+ "expression": {
134
+ "lang": "lua",
135
+ "body": "local properties = input.properties or {}\nlocal q = tonumber(properties.quantity) or 1\n\nreturn {\n {\n ref = properties.product_id,\n name = properties.name,\n quantity = q,\n amount = TOTAL_VALUE(properties)\n }\n}"
136
+ }
137
+ }
138
+ ]
139
+ }
140
+ ]
141
+ }
142
+ },
143
+ "default": {
144
+ "filters": [
145
+ {
146
+ "byEventNames": {
147
+ "action": "allow",
148
+ "events": [
149
+ "page",
150
+ ""
151
+ ]
152
+ }
153
+ }
154
+ ]
155
+ }
156
+ }
@@ -1 +1 @@
1
- "c625bbb5aaa6e15791c55a7ef4affa95 -"
1
+ "245bc68e722adf756625f4d772168004 -"
@@ -48,6 +48,10 @@
48
48
  {
49
49
  "date": "2025-10-15T00:00:00.000Z",
50
50
  "note": "Version: 1.3.1\nAdded friendly names to expressions"
51
+ },
52
+ {
53
+ "date": "2025-12-10T00:00:00.000Z",
54
+ "note": "Version: 1.4.0\nAdded consent field"
51
55
  }
52
56
  ]
53
57
  }
@@ -1 +1 @@
1
- "b002eb5bfd4ab0a8e0807c1c840f6538 -"
1
+ "e76f934adb1c3eb51442b004aef8a089 -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.1",
2
+ "version": "1.4.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "CUSTOMER_ID",
@@ -38,6 +38,16 @@
38
38
  }
39
39
  }
40
40
  ],
41
+ "enrichments": [
42
+ {
43
+ "staticString": "GRANTED",
44
+ "outputKey": "consent.ad_user_data"
45
+ },
46
+ {
47
+ "staticString": "GRANTED",
48
+ "outputKey": "consent.ad_personalization"
49
+ }
50
+ ],
41
51
  "mappings": [
42
52
  {
43
53
  "inputKey": "input",
@@ -1 +1 @@
1
- "5f09e068fa7823d56080f243b7ed4ba2 -"
1
+ "086d3153c5abe8bfc01be66b906f6d32 -"
@@ -32,6 +32,10 @@
32
32
  {
33
33
  "date": "2025-10-15T00:00:00.000Z",
34
34
  "note": "Version: 1.1.1\nAdded friendly names to expressions"
35
+ },
36
+ {
37
+ "date": "2025-12-10T00:00:00.000Z",
38
+ "note": "Version: 1.2.0\nUpdating identifier mappings"
35
39
  }
36
40
  ]
37
41
  }
@@ -1 +1 @@
1
- "134029dfef4c7968698631b1a5699e05 -"
1
+ "59ce5d40960d396392226ea7ad5b631c -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.1",
2
+ "version": "1.2.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "PIXEL_ID",
@@ -48,10 +48,6 @@
48
48
  "inputKey": "context.providers.theTradeDesk.ttd_id",
49
49
  "outputKey": "tdid"
50
50
  },
51
- {
52
- "inputKey": "context.device.advertisingId",
53
- "outputKey": "daid"
54
- },
55
51
  {
56
52
  "inputKey": "context.ip",
57
53
  "outputKey": "client_ip"
@@ -80,8 +76,8 @@
80
76
  "expressions": [
81
77
  {
82
78
  "lang": "lua",
83
- "name": "Mobile Device and TradeDesk ID(s)",
84
- "body": "local result = {}\n\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\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"
79
+ "name": "Mobile Advertising ID",
80
+ "body": "local type = LOWER(input.context.device.type)\nlocal advertisingId = input.context.device.advertisingId\n\nif type == 'android' then\n return { idfa = advertisingId }\nelseif type == 'ios' then\n return { aaid = advertisingId }\nelseif advertisingId then\n return { daid = advertisingId }\nend"
85
81
  }
86
82
  ]
87
83
  },
@@ -1 +1 @@
1
- "83afcd4f872dcd31f5e79f5cd241d668 -"
1
+ "a4050035f6e3b4132bb58d57d221362c -"
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2025-12-03T00:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nWallaroo initial release"
19
+ },
20
+ {
21
+ "date": "2025-12-10T00:00:00.000Z",
22
+ "note": "Version: 0.1.1\nAdded expression name"
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "83fcf4a317cca3283735b9a1ca8d6d0b -"
1
+ "ff1d631bd1762109bbc0f973e2abdc76 -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.1.1",
3
3
  "global": {
4
4
  "filters": [
5
5
  {
@@ -32,6 +32,7 @@
32
32
  "expressions": [
33
33
  {
34
34
  "lang": "lua",
35
+ "name": "Site and Click Data",
35
36
  "body": "local array = {}\nif input.inputs and input.inputs.inputs and #input.inputs.inputs > 0 then\n for _, row in ipairs(input.inputs.inputs) do\n table.insert(array, { click_data = row.click_data, site_id = row.site_id })\n end\nelse\n table.insert(array, {\n click_data = \"\",\n site_id = \"\"\n })\n end\n\nlocal result = { inputs = TO_STRING({ inputs = array }) }\nreturn result"
36
37
  }
37
38
  ]
package/README.md CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  ### 2025-12
4
4
  - Amazon DSP - Events (New)
5
+ - EngageFront
6
+ - Eulerian (New)
7
+ - Google Ads - Conversions
5
8
  - RTB House
9
+ - The Trade Desk - Conversions
6
10
  - Wallaroo (New)
7
11
 
8
12
  | Kit Name | Initial Release Date | Stable Release Date | Latest Release Date | Current Version | Latest Note |
@@ -36,10 +40,11 @@
36
40
  | Convert | 2023-09-08 | N/A | 2024-11-20 | Version: 0.3.0 | Added new deduplication parameter for all events, `tid` |
37
41
  | Criteo | 2021-06-24 | 2024-05-15 | 2025-09-03 | Version: 2.1.0 | Removed id node and added alternate_ids array in playbook.yaml |
38
42
  | Customer.io | 2022-11-07 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
39
- | EngageFront | 2025-11-12 | N/A | 2025-11-19 | Version: 0.2.0 | Update playbook with twn_id and attr_cookie. |
43
+ | EngageFront | 2025-11-12 | N/A | 2025-12-10 | Version: 0.3.0 | Update campaign/advertiser ID output key |
44
+ | Eulerian (New) | 2025-12-10 | N/A | 2025-12-10 | Version: 0.1.0 | Beta Version Eulerian initial release |
40
45
  | Firebase | 2024-01-15 | N/A | 2024-10-23 | Version: 0.2.0 | Updated header `Accept-Encoding: application/json` |
41
46
  | Google AJSID Segments | 2024-05-29 | N/A | 2025-10-15 | Version: 0.1.1 | Added friendly names to expressions |
42
- | Google Ads - Conversions | 2023-07-04 | 2024-04-17 | 2025-10-15 | Version: 1.3.1 | Added friendly names to expressions |
47
+ | Google Ads - Conversions | 2023-07-04 | 2024-04-17 | 2025-12-10 | Version: 1.4.0 | Added consent field |
43
48
  | Google Analytics | 2021-06-24 | N/A | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
44
49
  | Google Analytics 4 | 2022-08-11 | N/A | 2025-10-29 | Version: 1.2.0 | Added geolocation data with ip_override and user_location fields |
45
50
  | Google Analytics 4 (Collect) | 2024-04-24 | 2025-08-20 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
@@ -78,8 +83,8 @@
78
83
  | RTB House | 2024-11-20 | N/A | 2025-12-03 | Version: 0.4.0 | Updated endpoint to be a parameter |
79
84
  | Rakuten Conversions | 2025-07-30 | 2025-09-24 | 2025-09-24 | Version: 1.0.0 | Stable Release |
80
85
  | Reddit Ads | 2023-09-12 | N/A | 2025-10-15 | Version: 0.0.2 | Beta migration to Reddit CAPI V3. Removed item_count from product_viewed |
81
- | Ringier Axel Springer Poland | 2025-06-25 | N/A | 2025-09-24 | Version: 0.3.0 | Stringified products fields in multiple events |
82
86
  | Ringier Axel Springer Poland | 2025-03-05 | 2025-04-09 | 2025-09-24 | Version: 1.3.0 | Reverted changes: Stringified products fields in multiple events |
87
+ | Ringier Axel Springer Poland | 2025-06-25 | N/A | 2025-09-24 | Version: 0.3.0 | Stringified products fields in multiple events |
83
88
  | Roku | 2023-04-27 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced context.traits with traits. |
84
89
  | Roomvo | 2021-08-10 | N/A | 2025-10-15 | Version: 0.2.1 | Added friendly names to expressions |
85
90
  | Salesforce CDP | 2022-05-31 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced originalTimestamp with timestamp |
@@ -87,13 +92,13 @@
87
92
  | Snapchat Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
88
93
  | Snowflake | 2021-06-24 | N/A | 2025-10-15 | Version: 0.1.2 | Added friendly names to expressions |
89
94
  | Teads | 2025-11-12 | N/A | 2025-11-12 | Version: 0.1.0 | Beta Version Teads initial release |
90
- | The Trade Desk - Conversions | 2025-06-04 | 2025-07-30 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
95
+ | The Trade Desk - Conversions | 2025-06-04 | 2025-07-30 | 2025-12-10 | Version: 1.2.0 | Updating identifier mappings |
91
96
  | TheTradeDesk Conversion Events | 2022-11-29 | N/A | 2025-07-30 | Version: 1.3.0 | Replaced originalTimestamp with timestamp |
92
97
  | TheTradeDesk Firstparty Advertiser Data | 2022-11-29 | N/A | 2025-07-30 | Version: 1.2.0 | Updated Lua timestamp fallback logic to use input.timestamp |
93
98
  | TikTok | 2023-03-07 | 2023-12-13 | 2025-07-30 | Version: 2.4.0 | Replaced context.traits with traits. |
94
99
  | Treasure Data | 2024-02-21 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
95
100
  | VideoAmp | 2022-11-17 | N/A | 2024-10-23 | Version: 0.3.0 | Added header `Accept-Encoding: application/json` |
96
- | Wallaroo (New) | 2025-12-03 | N/A | 2025-12-03 | Version: 0.1.0 | Beta Version Wallaroo initial release |
101
+ | Wallaroo (New) | 2025-12-03 | N/A | 2025-12-10 | Version: 0.1.1 | Added expression name |
97
102
  | Webhooks | 2024-05-29 | 2024-08-07 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
98
103
  | X Ads - Web Conversions | 2024-09-04 | 2024-09-25 | 2025-07-30 | Version: 1.1.0 | Replaced context.traits with traits. |
99
104
  | Xandr | 2021-07-13 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
package/index.js CHANGED
@@ -249,6 +249,12 @@ exports['engage-front'] = {
249
249
  metadata: require('./.dist/engage-front/metadata.json')
250
250
  }
251
251
 
252
+ exports['eulerian'] = {
253
+ endpointSchema: require('./.dist/eulerian/connection.json'),
254
+ playbook: require('./.dist/eulerian/playbook.json'),
255
+ metadata: require('./.dist/eulerian/metadata.json')
256
+ }
257
+
252
258
  exports['facebook-pixel'] = {
253
259
  endpointSchema: require('./.dist/facebook-pixel/connection.json'),
254
260
  playbook: require('./.dist/facebook-pixel/playbook.json'),
@@ -787,6 +793,11 @@ exports.etags = {
787
793
  playbook: require('./.dist/engage-front/playbook.etag.json'),
788
794
  metadata: require('./.dist/engage-front/kit.etag.json')
789
795
  },
796
+ 'eulerian': {
797
+ endpointSchema: require('./.dist/eulerian/connection.etag.json'),
798
+ playbook: require('./.dist/eulerian/playbook.etag.json'),
799
+ metadata: require('./.dist/eulerian/kit.etag.json')
800
+ },
790
801
  'facebook-pixel': {
791
802
  endpointSchema: require('./.dist/facebook-pixel/connection.etag.json'),
792
803
  playbook: require('./.dist/facebook-pixel/playbook.etag.json'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metarouter/ajs-starter-kit",
3
- "version": "1.0.151",
3
+ "version": "1.0.152",
4
4
  "description": "MetaRouter analytics.js starter kit",
5
5
  "main": "index.js",
6
6
  "scripts": {