@metarouter/ajs-starter-kit 1.0.135 → 1.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/actioniq/kit.etag.json +1 -1
- package/.dist/actioniq/metadata.json +4 -0
- package/.dist/actioniq/playbook.etag.json +1 -1
- package/.dist/actioniq/playbook.json +2 -2
- package/.dist/adobe-experience-platform-interact/kit.etag.json +1 -1
- package/.dist/adobe-experience-platform-interact/metadata.json +4 -0
- package/.dist/adobe-experience-platform-interact/playbook.etag.json +1 -1
- package/.dist/adobe-experience-platform-interact/playbook.json +2 -2
- package/.dist/amazon-dsp-capi/kit.etag.json +1 -1
- package/.dist/amazon-dsp-capi/metadata.json +4 -0
- package/.dist/amazon-dsp-capi/playbook.etag.json +1 -1
- package/.dist/amazon-dsp-capi/playbook.json +6 -118
- package/.dist/blueshift/kit.etag.json +1 -1
- package/.dist/blueshift/metadata.json +4 -0
- package/.dist/blueshift/playbook.etag.json +1 -1
- package/.dist/blueshift/playbook.json +2 -2
- package/.dist/button/kit.etag.json +1 -1
- package/.dist/button/metadata.json +4 -0
- package/.dist/button/playbook.etag.json +1 -1
- package/.dist/button/playbook.json +2 -2
- package/.dist/clinch/kit.etag.json +1 -1
- package/.dist/clinch/metadata.json +4 -0
- package/.dist/clinch/playbook.etag.json +1 -1
- package/.dist/clinch/playbook.json +2 -2
- package/.dist/commission-junction/kit.etag.json +1 -1
- package/.dist/commission-junction/metadata.json +4 -0
- package/.dist/commission-junction/playbook.etag.json +1 -1
- package/.dist/commission-junction/playbook.json +3 -3
- package/.dist/criteo/connection.etag.json +1 -1
- package/.dist/criteo/connection.json +1 -1
- package/.dist/criteo/kit.etag.json +1 -1
- package/.dist/criteo/metadata.json +4 -0
- package/.dist/criteo/playbook.etag.json +1 -1
- package/.dist/criteo/playbook.json +7 -7
- package/.dist/facebook-pixel/kit.etag.json +1 -1
- package/.dist/facebook-pixel/metadata.json +4 -0
- package/.dist/facebook-pixel/playbook.etag.json +1 -1
- package/.dist/facebook-pixel/playbook.json +2 -2
- package/.dist/hubspot-event/kit.etag.json +1 -1
- package/.dist/hubspot-event/metadata.json +4 -0
- package/.dist/hubspot-event/playbook.etag.json +1 -1
- package/.dist/hubspot-event/playbook.json +2 -2
- package/.dist/linkedin-conversions/kit.etag.json +1 -1
- package/.dist/linkedin-conversions/metadata.json +4 -0
- package/.dist/linkedin-conversions/playbook.etag.json +1 -1
- package/.dist/linkedin-conversions/playbook.json +2 -2
- package/.dist/magellan-ai/kit.etag.json +1 -1
- package/.dist/magellan-ai/metadata.json +4 -0
- package/.dist/magellan-ai/playbook.etag.json +1 -1
- package/.dist/magellan-ai/playbook.json +2 -2
- package/.dist/merkle/kit.etag.json +1 -1
- package/.dist/merkle/metadata.json +4 -0
- package/.dist/merkle/playbook.etag.json +1 -1
- package/.dist/merkle/playbook.json +3 -11
- package/.dist/microsoft-ads/kit.etag.json +1 -1
- package/.dist/microsoft-ads/metadata.json +4 -0
- package/.dist/microsoft-ads/playbook.etag.json +1 -1
- package/.dist/microsoft-ads/playbook.json +2 -2
- package/.dist/nextdoor-capi/kit.etag.json +1 -1
- package/.dist/nextdoor-capi/metadata.json +4 -0
- package/.dist/nextdoor-capi/playbook.etag.json +1 -1
- package/.dist/nextdoor-capi/playbook.json +11 -11
- package/.dist/podscribe/kit.etag.json +1 -1
- package/.dist/podscribe/metadata.json +8 -0
- package/.dist/podscribe/playbook.etag.json +1 -1
- package/.dist/podscribe/playbook.json +3 -3
- package/.dist/rakuten-conversions/connection.etag.json +1 -0
- package/.dist/rakuten-conversions/connection.json +24 -0
- package/.dist/rakuten-conversions/kit.etag.json +1 -0
- package/.dist/rakuten-conversions/metadata.json +21 -0
- package/.dist/rakuten-conversions/playbook.etag.json +1 -0
- package/.dist/rakuten-conversions/playbook.json +279 -0
- package/.dist/rasp/kit.etag.json +1 -1
- package/.dist/rasp/metadata.json +4 -0
- package/.dist/rasp/playbook.etag.json +1 -1
- package/.dist/rasp/playbook.json +2 -2
- package/.dist/reddit-ads/kit.etag.json +1 -1
- package/.dist/reddit-ads/metadata.json +4 -0
- package/.dist/reddit-ads/playbook.etag.json +1 -1
- package/.dist/reddit-ads/playbook.json +3 -3
- package/.dist/ringier-axel-springer-poland/kit.etag.json +1 -1
- package/.dist/ringier-axel-springer-poland/metadata.json +4 -0
- package/.dist/ringier-axel-springer-poland/playbook.etag.json +1 -1
- package/.dist/ringier-axel-springer-poland/playbook.json +2 -2
- package/.dist/roku/kit.etag.json +1 -1
- package/.dist/roku/metadata.json +4 -0
- package/.dist/roku/playbook.etag.json +1 -1
- package/.dist/roku/playbook.json +2 -2
- package/.dist/rtb-house/kit.etag.json +1 -1
- package/.dist/rtb-house/metadata.json +4 -0
- package/.dist/rtb-house/playbook.etag.json +1 -1
- package/.dist/rtb-house/playbook.json +2 -2
- package/.dist/salesforce-cdp/kit.etag.json +1 -1
- package/.dist/salesforce-cdp/metadata.json +4 -0
- package/.dist/salesforce-cdp/playbook.etag.json +1 -1
- package/.dist/salesforce-cdp/playbook.json +2 -2
- package/.dist/snapchat-capi/kit.etag.json +1 -1
- package/.dist/snapchat-capi/metadata.json +4 -0
- package/.dist/snapchat-capi/playbook.etag.json +1 -1
- package/.dist/snapchat-capi/playbook.json +10 -10
- package/.dist/thetradedesk-conversion-events/kit.etag.json +1 -1
- package/.dist/thetradedesk-conversion-events/metadata.json +4 -0
- package/.dist/thetradedesk-conversion-events/playbook.etag.json +1 -1
- package/.dist/thetradedesk-conversion-events/playbook.json +2 -2
- package/.dist/thetradedesk-data-advertiser-firstparty/kit.etag.json +1 -1
- package/.dist/thetradedesk-data-advertiser-firstparty/metadata.json +4 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/playbook.etag.json +1 -1
- package/.dist/thetradedesk-data-advertiser-firstparty/playbook.json +2 -2
- package/.dist/tiktok/kit.etag.json +1 -1
- package/.dist/tiktok/metadata.json +4 -0
- package/.dist/tiktok/playbook.etag.json +1 -1
- package/.dist/tiktok/playbook.json +3 -3
- package/.dist/ttd-conversions/kit.etag.json +1 -1
- package/.dist/ttd-conversions/metadata.json +9 -1
- package/.dist/ttd-conversions/playbook.etag.json +1 -1
- package/.dist/ttd-conversions/playbook.json +9 -41
- package/.dist/twitter-conversions/kit.etag.json +1 -1
- package/.dist/twitter-conversions/metadata.json +4 -0
- package/.dist/twitter-conversions/playbook.etag.json +1 -1
- package/.dist/twitter-conversions/playbook.json +3 -3
- package/.dist/x-ads/kit.etag.json +1 -1
- package/.dist/x-ads/metadata.json +4 -0
- package/.dist/x-ads/playbook.etag.json +1 -1
- package/.dist/x-ads/playbook.json +2 -2
- package/README.md +56 -54
- package/index.js +18 -8
- package/package.json +1 -1
package/.dist/rasp/playbook.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.2.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "PIXEL_ID",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"transforms": [
|
|
41
41
|
{
|
|
42
42
|
"expression": {
|
|
43
|
-
"body": "local email = input.traits.email
|
|
43
|
+
"body": "local email = input.traits.email\nif email then return TO_MD5_HASH(LOWER(TRIM(email))) end\nreturn",
|
|
44
44
|
"lang": "lua"
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"4f40dd659be410892e66d37ac73b94dc"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"0437dbbbdabcde1a7f2930cee3fb87e7"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.5.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"filters": [
|
|
5
5
|
{
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"outputKey": "user.user_agent"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"inputKey": "
|
|
50
|
+
"inputKey": "traits.email",
|
|
51
51
|
"outputKey": "user.email",
|
|
52
52
|
"transforms": [
|
|
53
53
|
{
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
{
|
|
63
63
|
"expression": {
|
|
64
64
|
"lang": "lua",
|
|
65
|
-
"body": "-- Phone number must start with + sign and country code, E164 format to be exact e.g.: +16505551212\nreturn input.traits.phone
|
|
65
|
+
"body": "-- Phone number must start with + sign and country code, E164 format to be exact e.g.: +16505551212\nreturn input.traits.phone"
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"37898eee457b01e0674932e5583b0e94"
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
{
|
|
21
21
|
"date": "2025-04-09T22:00:00.000Z",
|
|
22
22
|
"note": "Version: 1.0.0\nNew header: `X-Forwarded-For`\nParam update: `adp_session` retrieved from new sync field `context.providers.ringierAxelSpringerPoland.adp_session`\nStable release"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"date": "2025-07-30T00:00:00.000Z",
|
|
26
|
+
"note": "Version: 1.1.0\nReplaced context.traits with traits."
|
|
23
27
|
}
|
|
24
28
|
]
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"8bf5d831080b858bc585d653c34e5abd"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "PIXEL_ID",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"transforms": [
|
|
45
45
|
{
|
|
46
46
|
"expression": {
|
|
47
|
-
"body": "local email = input.traits.email
|
|
47
|
+
"body": "local email = input.traits.email\nif email then return TO_MD5_HASH(LOWER(TRIM(email))) end\nreturn",
|
|
48
48
|
"lang": "lua"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/.dist/roku/kit.etag.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"4a9fdc0b273c9b1f2a7b61844970c425"
|
package/.dist/roku/metadata.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"09c6486cd5dcbd22453745d300789d30"
|
package/.dist/roku/playbook.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.2.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "PAGE_PIXEL_ID",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"outputKey": "w55c"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"inputKey": "
|
|
40
|
+
"inputKey": "traits.email",
|
|
41
41
|
"outputKey": "aEM",
|
|
42
42
|
"transforms": [
|
|
43
43
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"6b67984c37618faafc718ea3e955fccf"
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
{
|
|
25
25
|
"date": "2024-12-11T22:00:00.000Z",
|
|
26
26
|
"note": "Version: 0.2.1\nUpdated Endpoint URL\nAdded new fields for all events: page URL (`su`) and page referrer (`sr`)\nAdded new events: identify, page, products_searched, product_list_viewed, product_viewed, product_added, product_added_to_wishlist, cart_viewed, checkout_started"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"date": "2025-07-30T00:00:00.000Z",
|
|
30
|
+
"note": "Version: 0.3.1\nReplaced context.traits with traits."
|
|
27
31
|
}
|
|
28
32
|
]
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"369a8e8fcf83b3185f8cd0f6a269d070"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.3.1",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "PARTNER_KEY",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"transforms": [
|
|
82
82
|
{
|
|
83
83
|
"expression": {
|
|
84
|
-
"body": "local pii = input.traits.email or input.
|
|
84
|
+
"body": "local pii = input.traits.email or input.traits.phone\nlocal identifyDetails = \"\"\nif (pii) then identifyDetails = TO_SHA256_HASH(LOWER(TRIM(pii))) end\nreturn JOIN({\n 'pr_$$TAGGING_HASH$$',\n 'uid',\n identifyDetails\n}, '_')",
|
|
85
85
|
"lang": "lua"
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"862511e37a0afe3511f64201ee3f933a"
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
{
|
|
29
29
|
"date": "2024-10-23T00:00:00.000Z",
|
|
30
30
|
"note": "Version: 1.1.0\nAdded header `Accept-Encoding: application/json`"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"date": "2025-07-30T00:00:00.000Z",
|
|
34
|
+
"note": "Version: 1.2.0\nReplaced originalTimestamp with timestamp"
|
|
31
35
|
}
|
|
32
36
|
]
|
|
33
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"323d1a2840102c2929a02b75332b9863"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"17f6cf1babda3230b9a722d2b522b4d4"
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
{
|
|
33
33
|
"date": "2024-11-20T00:00:00.000Z",
|
|
34
34
|
"note": "Version: 1.3.0\nAdded the `_scid` cookie value as `user_data.sc_cookie1`"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"date": "2025-07-30T00:00:00.000Z",
|
|
38
|
+
"note": "Version: 1.4.0\nReplaced context.traits with traits."
|
|
35
39
|
}
|
|
36
40
|
]
|
|
37
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"699904894c56195e6565075601c0583e"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.4.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"filters": [
|
|
5
5
|
{
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"transforms": [
|
|
78
78
|
{
|
|
79
79
|
"expression": {
|
|
80
|
-
"body": "local email = input.traits.email
|
|
80
|
+
"body": "local email = input.traits.email\nif (email) then return TO_SHA256_HASH(LOWER(TRIM(email))) end",
|
|
81
81
|
"lang": "lua"
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"transforms": [
|
|
90
90
|
{
|
|
91
91
|
"expression": {
|
|
92
|
-
"body": "local phone = input.traits.phone
|
|
92
|
+
"body": "local phone = input.traits.phone\nif (phone) then return TO_SHA256_HASH(TRIM(phone)) end",
|
|
93
93
|
"lang": "lua"
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"transforms": [
|
|
102
102
|
{
|
|
103
103
|
"expression": {
|
|
104
|
-
"body": "local firstName = input.traits.firstName
|
|
104
|
+
"body": "local firstName = input.traits.firstName\nif (firstName) then return TO_SHA256_HASH(LOWER(TRIM(firstName))) end",
|
|
105
105
|
"lang": "lua"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
"transforms": [
|
|
114
114
|
{
|
|
115
115
|
"expression": {
|
|
116
|
-
"body": "local lastName = input.traits.lastName
|
|
116
|
+
"body": "local lastName = input.traits.lastName\nif (lastName) then return TO_SHA256_HASH(LOWER(TRIM(lastName))) end",
|
|
117
117
|
"lang": "lua"
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"transforms": [
|
|
126
126
|
{
|
|
127
127
|
"expression": {
|
|
128
|
-
"body": "local gender = input.traits.gender
|
|
128
|
+
"body": "local gender = input.traits.gender\nif (gender) then return TO_SHA256_HASH(LOWER(TRIM(gender))) end",
|
|
129
129
|
"lang": "lua"
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"transforms": [
|
|
138
138
|
{
|
|
139
139
|
"expression": {
|
|
140
|
-
"body": "local city = input.traits.address.city
|
|
140
|
+
"body": "local city = input.traits.address.city\nif (city) then return TO_SHA256_HASH(LOWER(city:gsub('%s+',''))) end",
|
|
141
141
|
"lang": "lua"
|
|
142
142
|
}
|
|
143
143
|
}
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"transforms": [
|
|
150
150
|
{
|
|
151
151
|
"expression": {
|
|
152
|
-
"body": "local state = input.traits.address.state
|
|
152
|
+
"body": "local state = input.traits.address.state\nif (state) then return TO_SHA256_HASH(LOWER(TRIM(state))) end",
|
|
153
153
|
"lang": "lua"
|
|
154
154
|
}
|
|
155
155
|
}
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"transforms": [
|
|
162
162
|
{
|
|
163
163
|
"expression": {
|
|
164
|
-
"body": "local postalCode = input.traits.address.postalCode
|
|
164
|
+
"body": "local postalCode = input.traits.address.postalCode\nif (postalCode) then return TO_SHA256_HASH(TRIM(postalCode)) end",
|
|
165
165
|
"lang": "lua"
|
|
166
166
|
}
|
|
167
167
|
}
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"transforms": [
|
|
174
174
|
{
|
|
175
175
|
"expression": {
|
|
176
|
-
"body": "local country = input.traits.address.country
|
|
176
|
+
"body": "local country = input.traits.address.country\nif (country) then return TO_SHA256_HASH(TRIM(country)) end",
|
|
177
177
|
"lang": "lua"
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"87a9a5cf605e7dbe75f61cdcd48ecb2c"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"1ffdca23f2cd3abedd0272422b129dfd"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"d067f7025620b8b47754a833976d4330"
|
|
@@ -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-07-30T00:00:00.000Z",
|
|
30
|
+
"note": "Version: 1.2.0\nUpdated Lua timestamp fallback logic to use input.timestamp"
|
|
27
31
|
}
|
|
28
32
|
]
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"6534b17daaf5892a2e1d9fbd140b7ef0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.2.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "TTL_IN_MINUTES",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
{
|
|
33
33
|
"expression": {
|
|
34
34
|
"lang": "lua",
|
|
35
|
-
"body": "\n-- variables needed from input schema --\nevent = LOWER(input.event)\nevent_type = LOWER(input.type)\npage_title = LOWER(input.context.page.title)\ntimestamp = input.originalTimestamp\nproducts = input.properties.products\ntotal = input.properties.total\nsingle_product_name = LOWER(input.properties.name)\nsingle_product_sku = LOWER(input.properties.sku)\n-- END --\n\nif event == null\nthen\n segment_name = \"page view | \" .. event_type .. \" | \" .. page_title\n return {{\n Name = segment_name,\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }}\nelse\n segment_name = event\n if products == null\n then\n\n if event == \"product_added\" or segment_name == \"product_viewed\"\n then\n segment_name = event .. \" | \" .. single_product_name .. \" | \" .. single_product_sku\n end\n return {{\n Name = segment_name,\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }}\n\n else\n p = {}\n p = MAP(products, function(p)\n return {\n Name = LOWER(event .. \" | \" .. p.name .. \" | \" .. p.sku),\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }\n end\n )\n if total ~= null\n then\n\n -- function --\n function totalRounded(total, divisible)\n total = math.floor(total)\n if total <= 0\n then\n return \"= 0\"\n end\n total = math.floor((total + divisible) / divisible) * divisible\n return \"< \" .. total\n end\n -- END --\n\n table.insert(p, {\n Name = \"order total \" .. totalRounded(tonumber(total), 100),\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp,\n })\n end\n return p\n end\nend"
|
|
35
|
+
"body": "\n-- variables needed from input schema --\nevent = LOWER(input.event)\nevent_type = LOWER(input.type)\npage_title = LOWER(input.context.page.title)\ntimestamp = input.timestamp or input.originalTimestamp or input.sentAt\nproducts = input.properties.products\ntotal = input.properties.total\nsingle_product_name = LOWER(input.properties.name)\nsingle_product_sku = LOWER(input.properties.sku)\n-- END --\n\nif event == null\nthen\n segment_name = \"page view | \" .. event_type .. \" | \" .. page_title\n return {{\n Name = segment_name,\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }}\nelse\n segment_name = event\n if products == null\n then\n\n if event == \"product_added\" or segment_name == \"product_viewed\"\n then\n segment_name = event .. \" | \" .. single_product_name .. \" | \" .. single_product_sku\n end\n return {{\n Name = segment_name,\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }}\n\n else\n p = {}\n p = MAP(products, function(p)\n return {\n Name = LOWER(event .. \" | \" .. p.name .. \" | \" .. p.sku),\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp\n }\n end\n )\n if total ~= null\n then\n\n -- function --\n function totalRounded(total, divisible)\n total = math.floor(total)\n if total <= 0\n then\n return \"= 0\"\n end\n total = math.floor((total + divisible) / divisible) * divisible\n return \"< \" .. total\n end\n -- END --\n\n table.insert(p, {\n Name = \"order total \" .. totalRounded(tonumber(total), 100),\n TTLInMinutes = TO_ROUNDED_INT($$TTL_IN_MINUTES$$),\n TimestampUtc = timestamp,\n })\n end\n return p\n end\nend"
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"de8c49f9916fb9ec1a0fba3a58d88919"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"1b9e32f38353ed5eaa2735f04e6f9da8"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.
|
|
2
|
+
"version": "2.4.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"filters": [
|
|
5
5
|
{
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"transforms": [
|
|
84
84
|
{
|
|
85
85
|
"expression": {
|
|
86
|
-
"body": "local email = input.traits.email
|
|
86
|
+
"body": "local email = input.traits.email\nif (email) then return TO_SHA256_HASH(LOWER(TRIM(email))) end",
|
|
87
87
|
"lang": "lua"
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"transforms": [
|
|
96
96
|
{
|
|
97
97
|
"expression": {
|
|
98
|
-
"body": "local phone = input.traits.phone
|
|
98
|
+
"body": "local phone = input.traits.phone\nif (phone) then return TO_SHA256_HASH(LOWER(TRIM(phone))) end",
|
|
99
99
|
"lang": "lua"
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"5c4069cedc20ab1af6dc46875a3845bd"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"isDraft": false,
|
|
3
3
|
"isDeprecated": false,
|
|
4
|
-
"isBeta":
|
|
4
|
+
"isBeta": false,
|
|
5
5
|
"friendlyName": "The Trade Desk - Conversions",
|
|
6
6
|
"description": "The Trade Desk is a demand-side platform (DSP) that enables advertisers to purchase and manage digital advertising campaigns across various channels, including display, video, audio, native, and connected TV.",
|
|
7
7
|
"logo": "https://cdn.metarouter.io/ttd-conversions.png",
|
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
{
|
|
21
21
|
"date": "2025-07-02T21:00:00.000Z",
|
|
22
22
|
"note": "Version: 0.2.0\nRemoving mappings related to Unified ID 2.0"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"date": "2025-07-30T21:00:00.000Z",
|
|
26
|
+
"note": "Version: 1.0.0\nStable Release"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"date": "2025-07-30T21:00:00.000Z",
|
|
30
|
+
"note": "Version: 1.1.0\nReplaced context.traits with traits."
|
|
23
31
|
}
|
|
24
32
|
]
|
|
25
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"d9b4d5a474ccd8534589d2683ea4a1fe"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "PIXEL_ID",
|
|
@@ -61,52 +61,20 @@
|
|
|
61
61
|
"outputKey": "referrer_url"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
"inputKey": "
|
|
65
|
-
"outputKey": "city"
|
|
66
|
-
"transforms": [
|
|
67
|
-
{
|
|
68
|
-
"expression": {
|
|
69
|
-
"lang": "lua",
|
|
70
|
-
"body": "local city = input.traits.address.city or input.context.traits.address.city\nif (city) then return city end"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
]
|
|
64
|
+
"inputKey": "traits.address.city",
|
|
65
|
+
"outputKey": "city"
|
|
74
66
|
},
|
|
75
67
|
{
|
|
76
|
-
"inputKey": "
|
|
77
|
-
"outputKey": "region"
|
|
78
|
-
"transforms": [
|
|
79
|
-
{
|
|
80
|
-
"expression": {
|
|
81
|
-
"lang": "lua",
|
|
82
|
-
"body": "local state = input.traits.address.state or input.context.traits.address.state\nif (state) then return state end"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
]
|
|
68
|
+
"inputKey": "traits.address.state",
|
|
69
|
+
"outputKey": "region"
|
|
86
70
|
},
|
|
87
71
|
{
|
|
88
|
-
"inputKey": "
|
|
89
|
-
"outputKey": "zip"
|
|
90
|
-
"transforms": [
|
|
91
|
-
{
|
|
92
|
-
"expression": {
|
|
93
|
-
"lang": "lua",
|
|
94
|
-
"body": "local postalCode = input.traits.address.postalCode or input.context.traits.address.postalCode\nif (postalCode) then return postalCode end"
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
]
|
|
72
|
+
"inputKey": "traits.address.postalCode",
|
|
73
|
+
"outputKey": "zip"
|
|
98
74
|
},
|
|
99
75
|
{
|
|
100
|
-
"inputKey": "
|
|
101
|
-
"outputKey": "country"
|
|
102
|
-
"transforms": [
|
|
103
|
-
{
|
|
104
|
-
"expression": {
|
|
105
|
-
"lang": "lua",
|
|
106
|
-
"body": "local country = input.traits.address.country or input.context.traits.address.country\nif (country) then return country end"
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
]
|
|
76
|
+
"inputKey": "traits.address.country",
|
|
77
|
+
"outputKey": "country"
|
|
110
78
|
}
|
|
111
79
|
],
|
|
112
80
|
"expressions": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"e2df7bedb7400b081ab39d8363796ac9"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"90c8fec8a8fec1c45b0483cdd628bdfb"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.3.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "ACCOUNT_ID",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"inputPathExists": {
|
|
56
|
-
"inputPath": "
|
|
56
|
+
"inputPath": "traits.email"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
]
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"outputKey": "twclid"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"inputKey": "
|
|
85
|
+
"inputKey": "traits.email",
|
|
86
86
|
"outputKey": "hashed_email",
|
|
87
87
|
"transforms": [
|
|
88
88
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"8b29b8579c12bdbdaaa21cb5cea3ea3c"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"772f7cad8e426b4e369517ec89b925a9"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"enrichments": [
|
|
5
5
|
{
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
{
|
|
26
26
|
"expression": {
|
|
27
27
|
"lang": "lua",
|
|
28
|
-
"body": "local identifiers = {}\n\nlocal email = input.traits.email
|
|
28
|
+
"body": "local identifiers = {}\n\nlocal email = input.traits.email\nif (email) then\n table.insert(identifiers, { hashed_email = TO_SHA256_HASH(LOWER(TRIM(email))) })\nend\n\nlocal phone = input.traits.phone\nif (phone) then\n table.insert(identifiers, { hashed_phone_number = TO_SHA256_HASH(LOWER(TRIM(phone))) })\nend\n\nif (input.context.providers.xAds.twclid) then\n table.insert(identifiers, { twclid = input.context.providers.xAds.twclid })\nend\nif (input.context.ip or input.context.userAgent) then\n table.insert(identifiers, {\n ip_address = input.context.ip,\n user_agent = input.context.userAgent\n })\nend\n\nif #identifiers > 0 then\n return identifiers\nend"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
]
|