@metarouter/ajs-starter-kit 1.0.173 → 1.0.175
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/braze/connection.etag.json +1 -1
- package/.dist/braze/connection.json +1 -1
- package/.dist/braze/kit.etag.json +1 -1
- package/.dist/braze/metadata.json +4 -0
- package/.dist/braze/playbook.etag.json +1 -1
- package/.dist/braze/playbook.json +1 -1
- 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 +7 -1
- package/.dist/google-ads/kit.etag.json +1 -1
- package/.dist/google-ads/metadata.json +4 -0
- package/.dist/google-ads/playbook.etag.json +1 -1
- package/.dist/google-ads/playbook.json +8 -3
- package/.dist/google-analytics-4/kit.etag.json +1 -1
- package/.dist/google-analytics-4/metadata.json +4 -0
- package/.dist/google-analytics-4/playbook.etag.json +1 -1
- package/.dist/google-analytics-4/playbook.json +22 -6
- package/.dist/google-analytics-4-collect/kit.etag.json +1 -1
- package/.dist/google-analytics-4-collect/metadata.json +4 -0
- package/.dist/google-analytics-4-collect/playbook.etag.json +1 -1
- package/.dist/google-analytics-4-collect/playbook.json +24 -8
- package/.dist/google-cm360/kit.etag.json +1 -1
- package/.dist/google-cm360/metadata.json +4 -0
- package/.dist/google-cm360/playbook.etag.json +1 -1
- package/.dist/google-cm360/playbook.json +2 -2
- package/.dist/heap/connection.etag.json +1 -1
- package/.dist/heap/connection.json +9 -2
- package/.dist/heap/kit.etag.json +1 -1
- package/.dist/heap/metadata.json +4 -0
- package/.dist/heap/playbook.etag.json +1 -1
- package/.dist/heap/playbook.json +4 -14
- package/.dist/microsoft-ads/kit.etag.json +1 -1
- package/.dist/nextdoor/kit.etag.json +1 -1
- package/.dist/openai-capi/connection.etag.json +1 -0
- package/.dist/openai-capi/connection.json +35 -0
- package/.dist/openai-capi/kit.etag.json +1 -0
- package/.dist/openai-capi/metadata.json +21 -0
- package/.dist/openai-capi/playbook.etag.json +1 -0
- package/.dist/openai-capi/playbook.json +276 -0
- package/.dist/pinterest-capi/kit.etag.json +1 -1
- package/.dist/podscribe/kit.etag.json +1 -1
- package/.dist/podscribe/metadata.json +4 -0
- package/.dist/podscribe/playbook.etag.json +1 -1
- package/.dist/podscribe/playbook.json +15 -3
- package/.dist/ringier-axel-springer-poland/kit.etag.json +1 -1
- package/.dist/teads/kit.etag.json +1 -1
- package/.dist/teads/metadata.json +5 -1
- package/.dist/teads/playbook.etag.json +1 -1
- package/.dist/teads/playbook.json +1 -1
- package/.dist/teads-capi/kit.etag.json +1 -1
- package/.dist/teads-capi/metadata.json +5 -1
- package/.dist/teads-capi/playbook.etag.json +1 -1
- package/.dist/teads-capi/playbook.json +1 -1
- package/.dist/yahoo-conversions-api/kit.etag.json +1 -1
- package/.dist/yahoo-conversions-api/metadata.json +4 -0
- package/.dist/yahoo-conversions-api/playbook.etag.json +1 -1
- package/.dist/yahoo-conversions-api/playbook.json +2 -2
- package/.dist/yahoo-enhanced-attribution/kit.etag.json +1 -1
- package/README.md +23 -12
- package/index.js +11 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"9585a62aab96a518ed5f993d90e9a687 -"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
],
|
|
32
32
|
"method": "POST",
|
|
33
|
-
"batchSize":
|
|
33
|
+
"batchSize": 37,
|
|
34
34
|
"transform": {
|
|
35
35
|
"lang": "lua",
|
|
36
36
|
"body": "local attributes = MAP(batch, function(event) return event.attributes end)\nlocal events = MAP(batch, function(event) return event.events end)\n\nrequest.body = { attributes = attributes, events = events }\nreturn request"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"62397e9e54fe7eb2aa00fa8754fb45a7 -"
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
{
|
|
37
37
|
"date": "2025-10-15T00:00:00.000Z",
|
|
38
38
|
"note": "Version: 1.0.1\nAdded friendly names to expressions"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"date": "2026-06-24T00:00:00.000Z",
|
|
42
|
+
"note": "Version: 1.1.0\nUpdated batchSize to accomodate non-legacy customers"
|
|
39
43
|
}
|
|
40
44
|
]
|
|
41
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"dcc42e78315b60fc018ad70592e1c9ff -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"76603dc87f5f6dcc47b990042e5ccfe4 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"a85eb3528dd2b38a755d53153625ac14 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"35877c59c5290e98932e87f6baed0e66 -"
|
|
@@ -64,6 +64,10 @@
|
|
|
64
64
|
{
|
|
65
65
|
"date": "2026-05-27T00:00:00.000Z",
|
|
66
66
|
"note": "Version: 1.6.0\nUpgraded to Google Ads API v24\nRemoved userIpAddress field"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"date": "2026-06-10T00:00:00.000Z",
|
|
70
|
+
"note": "Version: 1.7.0\nAdded support for reading gclid and wbraid from the googleAds child sync provider with fallback to the googleGtag provider"
|
|
67
71
|
}
|
|
68
72
|
]
|
|
69
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"b5eaccd1dcea3be7c28f19ed501953c9 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.7.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "CUSTOMER_ID",
|
|
@@ -31,6 +31,11 @@
|
|
|
31
31
|
"inputPath": "context.providers.googleGtag.data.gclid"
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
|
+
{
|
|
35
|
+
"inputPathExists": {
|
|
36
|
+
"inputPath": "context.providers.googleAds.gclid"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
34
39
|
{
|
|
35
40
|
"inputPathExists": {
|
|
36
41
|
"inputPath": "traits.email"
|
|
@@ -65,7 +70,7 @@
|
|
|
65
70
|
{
|
|
66
71
|
"expression": {
|
|
67
72
|
"lang": "lua",
|
|
68
|
-
"body": "if input.context.providers.googleGtag.data.wbraid then\n return SPLIT(input.context.providers.googleGtag.data.wbraid,\".\",3)[3]\nend"
|
|
73
|
+
"body": "if input.context.providers.googleAds.wbraid then\n return input.context.providers.googleAds.wbraid\nend\nif input.context.providers.googleGtag.data.wbraid then\n return SPLIT(input.context.providers.googleGtag.data.wbraid,\".\",3)[3]\nend"
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
]
|
|
@@ -89,7 +94,7 @@
|
|
|
89
94
|
{
|
|
90
95
|
"expression": {
|
|
91
96
|
"lang": "lua",
|
|
92
|
-
"body": "return SPLIT(input.context.providers.googleGtag.data.gclid
|
|
97
|
+
"body": "if input.context.providers.googleAds.gclid then\n return input.context.providers.googleAds.gclid\nend\nif input.context.providers.googleGtag.data.gclid then\n return SPLIT(input.context.providers.googleGtag.data.gclid,\".\",3)[3]\nend"
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
100
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"4e1c2011a7cb8f369bba9890f5f81144 -"
|
|
@@ -40,6 +40,10 @@
|
|
|
40
40
|
{
|
|
41
41
|
"date": "2025-12-17T00:00:00.000Z",
|
|
42
42
|
"note": "Version: 1.3.0\nAdded consent, device and user_agent mappings\nRemoved gclid and dclid fields\nAdded additional standard events and updated endpoint to a parameter"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"date": "2026-06-10T00:00:00.000Z",
|
|
46
|
+
"note": "Version: 1.4.0\nAdded support for reading clientID, sessionID and sessionCount from the googleAnalytics4 child sync provider with fallback to the googleGtag provider"
|
|
43
47
|
}
|
|
44
48
|
]
|
|
45
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"4a326697060ce60735b669132a57587c -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.4.0",
|
|
3
3
|
"global": {
|
|
4
4
|
"enrichments": [
|
|
5
5
|
{
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"transforms": [
|
|
47
47
|
{
|
|
48
48
|
"expression": {
|
|
49
|
-
"body": "
|
|
49
|
+
"body": "if input.context.providers.googleAnalytics4.clientID then\n return input.context.providers.googleAnalytics4.clientID\nend\nlocal value = input.context.providers.googleGtag.data.ga\nif value == nil then\n return input.anonymousId\nelse\n local arr = {}\n local ga = SPLIT(value, \".\", 4)\n arr[1] = ga[3]\n arr[2] = ga[4]\n return JOIN(arr, \".\")\nend",
|
|
50
50
|
"lang": "lua"
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -65,12 +65,28 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
"inputKey": "
|
|
69
|
-
"outputKey": "event.params.session_id"
|
|
68
|
+
"inputKey": "input",
|
|
69
|
+
"outputKey": "event.params.session_id",
|
|
70
|
+
"transforms": [
|
|
71
|
+
{
|
|
72
|
+
"expression": {
|
|
73
|
+
"body": "local sessionID = input.context.providers.googleAnalytics4.sessionID or input.context.providers.googleGtag.data.sessionID\nif sessionID then\n return sessionID\nend",
|
|
74
|
+
"lang": "lua"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
]
|
|
70
78
|
},
|
|
71
79
|
{
|
|
72
|
-
"inputKey": "
|
|
73
|
-
"outputKey": "event.params.session_number"
|
|
80
|
+
"inputKey": "input",
|
|
81
|
+
"outputKey": "event.params.session_number",
|
|
82
|
+
"transforms": [
|
|
83
|
+
{
|
|
84
|
+
"expression": {
|
|
85
|
+
"body": "local sessionCount = input.context.providers.googleAnalytics4.sessionCount or input.context.providers.googleGtag.data.sessionCount\nif sessionCount then\n return sessionCount\nend",
|
|
86
|
+
"lang": "lua"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
]
|
|
74
90
|
},
|
|
75
91
|
{
|
|
76
92
|
"inputKey": "context.ip",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"c987fe1938cafb2f321086eea02488e1 -"
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
{
|
|
37
37
|
"date": "2025-10-15T00:00:00.000Z",
|
|
38
38
|
"note": "Version: 1.0.1\nAdded friendly names to expressions"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"date": "2026-06-10T00:00:00.000Z",
|
|
42
|
+
"note": "Version: 1.1.0\nAdded support for reading gclid, dclid, clientID, sessionID and sessionCount from the googleAnalytics4 child sync provider with fallback to the googleGtag provider"
|
|
39
43
|
}
|
|
40
44
|
]
|
|
41
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"970a1c934b45b73103c04af665e221a5 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"global": {
|
|
4
4
|
"mappings": [
|
|
5
5
|
{
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
{
|
|
10
10
|
"expression": {
|
|
11
11
|
"lang": "lua",
|
|
12
|
-
"body": "if input.context.providers.googleGtag.data.gclid then
|
|
12
|
+
"body": "if input.context.providers.googleAnalytics4.gclid then\n return input.context.providers.googleAnalytics4.gclid\nend\nif input.context.providers.googleGtag.data.gclid then\n return SPLIT(input.context.providers.googleGtag.data.gclid, \".\", 3)[3]\nend"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
]
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
{
|
|
22
22
|
"expression": {
|
|
23
23
|
"lang": "lua",
|
|
24
|
-
"body": "if input.context.providers.googleGtag.data.dclid then
|
|
24
|
+
"body": "if input.context.providers.googleAnalytics4.dclid then\n return input.context.providers.googleAnalytics4.dclid\nend\nif input.context.providers.googleGtag.data.dclid then\n return SPLIT(input.context.providers.googleGtag.data.dclid, \".\", 3)[3]\nend"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
]
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"transforms": [
|
|
33
33
|
{
|
|
34
34
|
"expression": {
|
|
35
|
-
"body": "local ga = SPLIT(input.context.providers.googleGtag.data.ga, \".\", 4) if ga and ga[4] then return ga[3] .. \".\" .. ga[4] end return input.anonymousId",
|
|
35
|
+
"body": "if input.context.providers.googleAnalytics4.clientID then return input.context.providers.googleAnalytics4.clientID\nend local ga = SPLIT(input.context.providers.googleGtag.data.ga, \".\", 4) if ga and ga[4] then return ga[3] .. \".\" .. ga[4] end return input.anonymousId",
|
|
36
36
|
"lang": "lua"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -83,12 +83,28 @@
|
|
|
83
83
|
"outputKey": "ck"
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
|
-
"inputKey": "
|
|
87
|
-
"outputKey": "sid"
|
|
86
|
+
"inputKey": "input",
|
|
87
|
+
"outputKey": "sid",
|
|
88
|
+
"transforms": [
|
|
89
|
+
{
|
|
90
|
+
"expression": {
|
|
91
|
+
"body": "local sessionID = input.context.providers.googleAnalytics4.sessionID or input.context.providers.googleGtag.data.sessionID\nif sessionID then\n return sessionID\nend",
|
|
92
|
+
"lang": "lua"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
]
|
|
88
96
|
},
|
|
89
97
|
{
|
|
90
|
-
"inputKey": "
|
|
91
|
-
"outputKey": "sct"
|
|
98
|
+
"inputKey": "input",
|
|
99
|
+
"outputKey": "sct",
|
|
100
|
+
"transforms": [
|
|
101
|
+
{
|
|
102
|
+
"expression": {
|
|
103
|
+
"body": "local sessionCount = input.context.providers.googleAnalytics4.sessionCount or input.context.providers.googleGtag.data.sessionCount\nif sessionCount then\n return sessionCount\nend",
|
|
104
|
+
"lang": "lua"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
92
108
|
},
|
|
93
109
|
{
|
|
94
110
|
"inputKey": "properties.engagement_time_milliseconds",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"1ddcaa3c869bd0df1611bf9b0fc49f42 -"
|
|
@@ -64,6 +64,10 @@
|
|
|
64
64
|
{
|
|
65
65
|
"date": "2026-04-01T00:00:00.000Z",
|
|
66
66
|
"note": "Version: 1.4.0\nAdded identifier fan-out logic"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"date": "2026-06-10T00:00:00.000Z",
|
|
70
|
+
"note": "Version: 1.5.0\nAdded support for reading gclid and dclid from the CM360 child sync provider with fallback to the googleGtag provider"
|
|
67
71
|
}
|
|
68
72
|
]
|
|
69
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"be2c0c6b9d749c05abd57edf40c954b8 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.5.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "CONFIG_ID",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
{
|
|
81
81
|
"lang": "lua",
|
|
82
82
|
"name": "Click, Mobile Device and Match ID(s)",
|
|
83
|
-
"body": "
|
|
83
|
+
"body": "local gclid, dclid\n\nif input.context.providers.CM360.gclid then\n gclid = input.context.providers.CM360.gclid\nend\nif input.context.providers.googleGtag.data.gclid then\n gclid = SPLIT(input.context.providers.googleGtag.data.gclid, \".\", 3)[3]\nend\n\nif input.context.providers.CM360.dclid then\n dclid = input.context.providers.CM360.dclid\nend\nif input.context.providers.googleGtag.data.dclid then\n dclid = SPLIT(input.context.providers.googleGtag.data.dclid, \".\", 3)[3]\nend\n\nif not TO_BOOL(\"$$IDENTIFIER_FAN_OUT$$\") then\n local mobileDeviceId = input.context.device.advertisingId;\n local matchId = input.anonymousId;\n return (gclid and { gclid = gclid }) or (dclid and { dclid = dclid}) or (mobileDeviceId and { mobileDeviceId = mobileDeviceId}) or (matchId and { matchId = matchId })\n end\nreturn {\n gclid = gclid,\n dclid = dclid,\n mobileDeviceId = input.context.device.advertisingId,\n matchId = input.anonymousId\n}"
|
|
84
84
|
}
|
|
85
85
|
]
|
|
86
86
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"3188a02d783080880bfca36c99fcf153 -"
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "DATACENTER_ENDPOINT",
|
|
5
|
+
"exampleValue": "my-datacenter-endpoint",
|
|
6
|
+
"defaultValue": "https://heapanalytics.com"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
2
9
|
"default": {
|
|
3
|
-
"endpoint": "
|
|
10
|
+
"endpoint": "$$DATACENTER_ENDPOINT$$/api/track",
|
|
4
11
|
"method": "POST",
|
|
5
12
|
"headers": [
|
|
6
13
|
{
|
|
@@ -19,7 +26,7 @@
|
|
|
19
26
|
},
|
|
20
27
|
"eventSpecific": {
|
|
21
28
|
"identify": {
|
|
22
|
-
"endpoint": "
|
|
29
|
+
"endpoint": "$$DATACENTER_ENDPOINT$$/api/v1/identify",
|
|
23
30
|
"method": "POST",
|
|
24
31
|
"headers": [
|
|
25
32
|
{
|
package/.dist/heap/kit.etag.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"ba28e61419cbc4c0fd02439e738fd260 -"
|
package/.dist/heap/metadata.json
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
{
|
|
21
21
|
"date": "2024-10-23T00:00:00.000Z",
|
|
22
22
|
"note": "Version: 0.2.0\nUpdated header `Accept-Encoding: application/json`"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"date": "2026-06-10T00:00:00.000Z",
|
|
26
|
+
"note": "Version: 0.3.0\nEU endpoint support\nRemoved unused parameter"
|
|
23
27
|
}
|
|
24
28
|
]
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"474c9713772a55d3616e96a11639170d -"
|
package/.dist/heap/playbook.json
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.3.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
|
-
"name": "
|
|
6
|
-
"
|
|
7
|
-
"exampleValue": "123456789",
|
|
8
|
-
"description": "The environment ID corresponding to one of your environments.",
|
|
9
|
-
"isOptional": false
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"name": "MY_USER_ID",
|
|
13
|
-
"defaultValue": "my-user-id",
|
|
14
|
-
"description": "The user_id from the Heap SDK. The user_id must be the string representation of a number between zero and 2^53 - 1.",
|
|
15
|
-
"isOptional": true,
|
|
16
|
-
"exampleValue": "1111111111111111"
|
|
5
|
+
"name": "APP_ID",
|
|
6
|
+
"exampleValue": "my-app-id"
|
|
17
7
|
}
|
|
18
8
|
],
|
|
19
9
|
"global": {
|
|
20
10
|
"enrichments": [
|
|
21
11
|
{
|
|
22
|
-
"staticString": "$$
|
|
12
|
+
"staticString": "$$APP_ID$$",
|
|
23
13
|
"outputKey": "app_id"
|
|
24
14
|
}
|
|
25
15
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"d4068fe406f2b4ce822b1d0b429ee6cb -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"d9e3d1d9af6570f149970c30274f1d6b -"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"87a21401b752660c6a93d18e1283037a -"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "API_KEY",
|
|
5
|
+
"exampleValue": "my-api-key"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "PIXEL_ID",
|
|
9
|
+
"exampleValue": "my-pixel-id"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"default": {
|
|
13
|
+
"endpoint": "https://bzr.openai.com/v1/events?pid=$$PIXEL_ID$$",
|
|
14
|
+
"method": "POST",
|
|
15
|
+
"headers": [
|
|
16
|
+
{
|
|
17
|
+
"key": "Accept-Encoding",
|
|
18
|
+
"value": "application/json"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"key": "Content-Type",
|
|
22
|
+
"value": "application/json"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"key": "Authorization",
|
|
26
|
+
"value": "Bearer $$API_KEY$$"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"batchSize": 10,
|
|
30
|
+
"transform": {
|
|
31
|
+
"lang": "lua",
|
|
32
|
+
"body": "request.body = { events = batch }\nreturn request\n"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"61bd5f7ae133b5826a5b346a18d84056 -"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "OpenAI CAPI",
|
|
6
|
+
"description": "The OpenAI Ads Conversions API is a server-to-server event ingestion API used to send conversion and behavioral events directly to OpenAI Ads for attribution and campaign measurement.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/openai-capi.png",
|
|
8
|
+
"color": "#10A37F",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": false,
|
|
11
|
+
"isIosApp": false,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-06-10T21:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nOpenAI CAPI initial release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"5cefda20c4e9151d3624dd90d35ae970 -"
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"global": {
|
|
4
|
+
"enrichments": [
|
|
5
|
+
{
|
|
6
|
+
"staticString": "web",
|
|
7
|
+
"outputKey": "action_source"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"mappings": [
|
|
11
|
+
{
|
|
12
|
+
"inputKey": "context.providers.openAI.oppref",
|
|
13
|
+
"outputKey": "oppref"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"inputKey": "messageId",
|
|
17
|
+
"outputKey": "id"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"inputKey": "timestamp",
|
|
21
|
+
"outputKey": "timestamp_ms",
|
|
22
|
+
"transforms": [
|
|
23
|
+
{
|
|
24
|
+
"toTimestamp": "inMillis"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"inputKey": "context.page.url",
|
|
30
|
+
"outputKey": "source_url"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"inputKey": "input",
|
|
34
|
+
"outputKey": "user.email_sha256",
|
|
35
|
+
"transforms": [
|
|
36
|
+
{
|
|
37
|
+
"expression": {
|
|
38
|
+
"lang": "lua",
|
|
39
|
+
"body": "local email = input.traits.email\nif (email) then return TO_SHA256_HASH(LOWER(TRIM(email))) end"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"inputKey": "anonymousId",
|
|
46
|
+
"outputKey": "user.external_id_sha256",
|
|
47
|
+
"transforms": [
|
|
48
|
+
{
|
|
49
|
+
"toHash": "sha256"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"inputKey": "input",
|
|
55
|
+
"outputKey": "user.country",
|
|
56
|
+
"transforms": [
|
|
57
|
+
{
|
|
58
|
+
"expression": {
|
|
59
|
+
"lang": "lua",
|
|
60
|
+
"body": "local country = input.traits.address.country\nif (country) then return TO_ISO_COUNTRY(country) end"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"inputKey": "traits.address.city",
|
|
67
|
+
"outputKey": "user.city"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"inputKey": "traits.address.postalCode",
|
|
71
|
+
"outputKey": "user.zip_code"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"inputKey": "context.ip",
|
|
75
|
+
"outputKey": "user.ip_address"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"inputKey": "context.userAgent",
|
|
79
|
+
"outputKey": "user.user_agent"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"default": {
|
|
84
|
+
"filters": [
|
|
85
|
+
{
|
|
86
|
+
"byEventNames": {
|
|
87
|
+
"action": "allow",
|
|
88
|
+
"events": [
|
|
89
|
+
""
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"eventSpecific": {
|
|
96
|
+
"page": {
|
|
97
|
+
"enrichments": [
|
|
98
|
+
{
|
|
99
|
+
"staticString": "page_viewed",
|
|
100
|
+
"outputKey": "type"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"staticString": "contents",
|
|
104
|
+
"outputKey": "data.type"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"mappings": [
|
|
108
|
+
{
|
|
109
|
+
"inputKey": "input",
|
|
110
|
+
"outputKey": "data.contents",
|
|
111
|
+
"transforms": [
|
|
112
|
+
{
|
|
113
|
+
"expression": {
|
|
114
|
+
"lang": "lua",
|
|
115
|
+
"body": "return {{\n content_type = \"page\",\n name = input.properties.title\n}}"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"product_viewed": {
|
|
123
|
+
"enrichments": [
|
|
124
|
+
{
|
|
125
|
+
"staticString": "contents_viewed",
|
|
126
|
+
"outputKey": "type"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"staticString": "contents",
|
|
130
|
+
"outputKey": "data.type"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"mappings": [
|
|
134
|
+
{
|
|
135
|
+
"inputKey": "properties.currency",
|
|
136
|
+
"outputKey": "data.currency",
|
|
137
|
+
"transforms": [
|
|
138
|
+
{
|
|
139
|
+
"modifyString": "uppercase"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"inputKey": "input",
|
|
145
|
+
"outputKey": "data.contents",
|
|
146
|
+
"transforms": [
|
|
147
|
+
{
|
|
148
|
+
"expression": {
|
|
149
|
+
"lang": "lua",
|
|
150
|
+
"body": "return {{\n content_type = \"product\",\n id = input.properties.product_id,\n name = input.properties.name,\n amount = TO_ROUNDED_INT(input.properties.price * 100),\n quantity = input.properties.quantity or 1\n}}"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"product_added": {
|
|
158
|
+
"enrichments": [
|
|
159
|
+
{
|
|
160
|
+
"staticString": "items_added",
|
|
161
|
+
"outputKey": "type"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"staticString": "contents",
|
|
165
|
+
"outputKey": "data.type"
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"mappings": [
|
|
169
|
+
{
|
|
170
|
+
"inputKey": "properties.currency",
|
|
171
|
+
"outputKey": "data.currency",
|
|
172
|
+
"defaultString": "USD",
|
|
173
|
+
"transforms": [
|
|
174
|
+
{
|
|
175
|
+
"modifyString": "uppercase"
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"inputKey": "input",
|
|
181
|
+
"outputKey": "data.contents",
|
|
182
|
+
"transforms": [
|
|
183
|
+
{
|
|
184
|
+
"expression": {
|
|
185
|
+
"lang": "lua",
|
|
186
|
+
"body": "return {{\n content_type = \"product\",\n id = input.properties.product_id,\n name = input.properties.name,\n amount = TO_ROUNDED_INT(input.properties.price * 100),\n quantity = input.properties.quantity or 1\n}}"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"checkout_started": {
|
|
194
|
+
"enrichments": [
|
|
195
|
+
{
|
|
196
|
+
"staticString": "checkout_started",
|
|
197
|
+
"outputKey": "type"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"staticString": "contents",
|
|
201
|
+
"outputKey": "data.type"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"mappings": [
|
|
205
|
+
{
|
|
206
|
+
"inputKey": "properties.currency",
|
|
207
|
+
"outputKey": "data.currency",
|
|
208
|
+
"transforms": [
|
|
209
|
+
{
|
|
210
|
+
"modifyString": "uppercase"
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"inputKey": "input",
|
|
216
|
+
"outputKey": "data.contents",
|
|
217
|
+
"transforms": [
|
|
218
|
+
{
|
|
219
|
+
"expression": {
|
|
220
|
+
"lang": "lua",
|
|
221
|
+
"body": "return MAP(input.properties.products, function(p)\n return {\n content_type = \"product\",\n id = p.product_id,\n name = p.name,\n amount = TO_ROUNDED_INT(p.price * 100),\n quantity = p.quantity or 1\n }\nend)"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"order_completed": {
|
|
229
|
+
"enrichments": [
|
|
230
|
+
{
|
|
231
|
+
"staticString": "order_created",
|
|
232
|
+
"outputKey": "type"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"staticString": "contents",
|
|
236
|
+
"outputKey": "data.type"
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"mappings": [
|
|
240
|
+
{
|
|
241
|
+
"inputKey": "properties.currency",
|
|
242
|
+
"outputKey": "data.currency",
|
|
243
|
+
"transforms": [
|
|
244
|
+
{
|
|
245
|
+
"modifyString": "uppercase"
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"inputKey": "input",
|
|
251
|
+
"outputKey": "data.amount",
|
|
252
|
+
"transforms": [
|
|
253
|
+
{
|
|
254
|
+
"expression": {
|
|
255
|
+
"lang": "lua",
|
|
256
|
+
"body": "return TO_ROUNDED_INT(TOTAL_VALUE(input.properties.products) * 100)"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"inputKey": "input",
|
|
263
|
+
"outputKey": "data.contents",
|
|
264
|
+
"transforms": [
|
|
265
|
+
{
|
|
266
|
+
"expression": {
|
|
267
|
+
"lang": "lua",
|
|
268
|
+
"body": "return MAP(input.properties.products, function(p)\n return {\n content_type = \"product\",\n id = p.product_id,\n name = p.name,\n amount = TO_ROUNDED_INT(p.price * 100),\n quantity = p.quantity or 1\n }\nend)"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
}
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"a6cfb24756ac9ddfca5e7b6a795a7c05 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"6c84ecd30512b6cabc83323d617258da -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"ce0a09cf73457206f87bdb2f6f6bdcf5 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.3.0",
|
|
3
3
|
"params": [
|
|
4
4
|
{
|
|
5
5
|
"name": "ADVERTISER_ID",
|
|
@@ -39,8 +39,20 @@
|
|
|
39
39
|
"outputKey": "user_agent"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
"inputKey": "context.
|
|
43
|
-
"outputKey": "
|
|
42
|
+
"inputKey": "context.ipv4",
|
|
43
|
+
"outputKey": "ipv4"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"inputKey": "input",
|
|
47
|
+
"outputKey": "ip",
|
|
48
|
+
"transforms": [
|
|
49
|
+
{
|
|
50
|
+
"expression": {
|
|
51
|
+
"lang": "lua",
|
|
52
|
+
"body": "return input.context.ipv6 or input.context.ip or input.context.ipv4"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
]
|
|
44
56
|
},
|
|
45
57
|
{
|
|
46
58
|
"inputKey": "input",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"fcea7e22a7651731706520ce3768bf00 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"c7ab253a206e67614a0fd0add5b4464a -"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"isDraft": false,
|
|
3
3
|
"isDeprecated": false,
|
|
4
4
|
"isBeta": false,
|
|
5
|
-
"friendlyName": "Teads",
|
|
5
|
+
"friendlyName": "Teads Postback",
|
|
6
6
|
"description": "Teads is a global advertising platform specializing in outstream video and display ads that appear within premium publisher content.",
|
|
7
7
|
"logo": "https://cdn.metarouter.io/teads.png",
|
|
8
8
|
"color": "#3300BF",
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
{
|
|
21
21
|
"date": "2026-01-07T21:00:00.000Z",
|
|
22
22
|
"note": "Version: 1.0.0\nStable Release"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"date": "2026-06-24T21:00:00.000Z",
|
|
26
|
+
"note": "Version: 1.0.1\nUpdated friendly name"
|
|
23
27
|
}
|
|
24
28
|
]
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"ad42ce02919f6c2c298c57be6f2ed485 -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"2632b2d7327c0b8d235485baa3c53ed0 -"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"isDraft": false,
|
|
3
3
|
"isDeprecated": false,
|
|
4
|
-
"isBeta":
|
|
4
|
+
"isBeta": false,
|
|
5
5
|
"friendlyName": "Teads CAPI",
|
|
6
6
|
"description": "Teads is a global advertising platform specializing in outstream video and display ads that appear within premium publisher content.",
|
|
7
7
|
"logo": "https://cdn.metarouter.io/teads.png",
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
{
|
|
17
17
|
"date": "2026-06-03T00:00:00.000Z",
|
|
18
18
|
"note": "Version: 0.1.0\nBeta Version\nTeads CAPI initial release"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"date": "2026-06-24T00:00:00.000Z",
|
|
22
|
+
"note": "Version: 1.0.0\nStable Release"
|
|
19
23
|
}
|
|
20
24
|
]
|
|
21
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"e99f61c8740658b351d3859363922f4a -"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"34c07475d7243f14704d39b62fd6af05 -"
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
{
|
|
17
17
|
"date": "2026-05-27T21:00:00.000Z",
|
|
18
18
|
"note": "Version: 0.1.0\nBeta Version\nYahoo Conversions API initial release"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"date": "2026-06-24T21:00:00.000Z",
|
|
22
|
+
"note": "Version: 0.2.0\nUpdate userData.ip_address field in lua."
|
|
19
23
|
}
|
|
20
24
|
]
|
|
21
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"8a329130be582bffbb310fc3d4844530 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.2.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"filters": [
|
|
5
5
|
{
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"transforms": [
|
|
101
101
|
{
|
|
102
102
|
"expression": {
|
|
103
|
-
"body": "local userData = {}\nif input.traits.email then userData.email = {TO_SHA256_HASH(LOWER(TRIM(input.traits.email)))} end\nif input.traits.phone then userData.phone = {TO_SHA256_HASH(LOWER(TRIM(input.traits.phone)))} end\nlocal deviceType = input.context.device.type\nif deviceType == 'ios' then\n userData.idfa = {input.context.device.advertisingId}\nelseif deviceType == 'android' then\n userData.gpsaid = {input.context.device.advertisingId}\nend\nif input.context.ip then userData.ip_address =
|
|
103
|
+
"body": "local userData = {}\nif input.traits.email then userData.email = {TO_SHA256_HASH(LOWER(TRIM(input.traits.email)))} end\nif input.traits.phone then userData.phone = {TO_SHA256_HASH(LOWER(TRIM(input.traits.phone)))} end\nlocal deviceType = input.context.device.type\nif deviceType == 'ios' then\n userData.idfa = {input.context.device.advertisingId}\nelseif deviceType == 'android' then\n userData.gpsaid = {input.context.device.advertisingId}\nend\nif input.context.ip then userData.ip_address = input.context.ip end\nif input.context.userAgent then userData.userAgent = LOWER(input.context.userAgent) end\nreturn userData",
|
|
104
104
|
"lang": "lua"
|
|
105
105
|
}
|
|
106
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"1949df74588abd86e5f1344f35217e34 -"
|
package/README.md
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
# MetaRouter Starter Kits
|
|
2
2
|
|
|
3
3
|
### 2026-06
|
|
4
|
+
- Braze
|
|
5
|
+
- CM360 - Floodlights
|
|
6
|
+
- Google Ads - Conversions
|
|
7
|
+
- Google Analytics 4
|
|
8
|
+
- Google Analytics 4 (Collect)
|
|
9
|
+
- Heap
|
|
10
|
+
- Meta CAPI
|
|
11
|
+
- OpenAI CAPI (New)
|
|
4
12
|
- Podscribe
|
|
5
13
|
- Teads CAPI (New)
|
|
14
|
+
- Teads Postback
|
|
6
15
|
- Wirtualna Polska
|
|
16
|
+
- Yahoo Conversions API
|
|
7
17
|
|
|
8
18
|
| Kit Name | Initial Release Date | Stable Release Date | Latest Release Date | Current Version | Latest Note |
|
|
9
19
|
|----------|----------------------|---------------------|---------------------|-----------------|-------------|
|
|
@@ -29,9 +39,9 @@
|
|
|
29
39
|
| Azure Blob | 2021-08-03 | 2023-12-13 | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
|
|
30
40
|
| Bloomreach CDP | 2022-10-06 | N/A | 2023-12-13 | N/A | Marked as stable version: 1.0.0 |
|
|
31
41
|
| Blueshift | 2021-06-24 | 2025-01-22 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
32
|
-
| Braze | 2021-06-24 | N/A |
|
|
42
|
+
| Braze | 2021-06-24 | N/A | 2026-06-24 | Version: 1.1.0 | Updated batchSize to accomodate non-legacy customers |
|
|
33
43
|
| Button | 2025-02-19 | 2025-03-12 | 2025-07-30 | Version: 1.1.0 | Replaced context.traits with traits. |
|
|
34
|
-
| CM360 - Floodlights | 2021-06-24 | 2025-08-20 | 2026-
|
|
44
|
+
| CM360 - Floodlights | 2021-06-24 | 2025-08-20 | 2026-06-10 | Version: 1.5.0 | Added support for reading gclid and dclid from the CM360 child sync provider with fallback to the googleGtag provider |
|
|
35
45
|
| Clinch | 2024-04-24 | 2024-06-12 | 2025-10-15 | Version: 1.3.1 | Added friendly names to expressions |
|
|
36
46
|
| Commission Junction | 2024-01-17 | 2024-04-24 | 2025-11-19 | Version: 1.5.1 | Added friendly name to trackingSource expression |
|
|
37
47
|
| Convert | 2023-09-08 | N/A | 2024-11-20 | Version: 0.3.0 | Added new deduplication parameter for all events, `tid` |
|
|
@@ -41,14 +51,14 @@
|
|
|
41
51
|
| Eulerian | 2025-12-10 | 2026-03-04 | 2026-03-04 | Version: 1.0.0 | Stable Release |
|
|
42
52
|
| Firebase | 2024-01-15 | N/A | 2024-10-23 | Version: 0.2.0 | Updated header `Accept-Encoding: application/json` |
|
|
43
53
|
| Google AJSID Segments | 2024-05-29 | N/A | 2025-10-15 | Version: 0.1.1 | Added friendly names to expressions |
|
|
44
|
-
| Google Ads - Conversions | 2023-07-04 | 2024-04-17 | 2026-
|
|
54
|
+
| Google Ads - Conversions | 2023-07-04 | 2024-04-17 | 2026-06-10 | Version: 1.7.0 | Added support for reading gclid and wbraid from the googleAds child sync provider with fallback to the googleGtag provider |
|
|
45
55
|
| Google Analytics | 2021-06-24 | N/A | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
46
|
-
| Google Analytics 4 | 2022-08-11 | N/A |
|
|
47
|
-
| Google Analytics 4 (Collect) | 2024-04-24 | 2025-08-20 |
|
|
56
|
+
| Google Analytics 4 | 2022-08-11 | N/A | 2026-06-10 | Version: 1.4.0 | Added support for reading clientID, sessionID and sessionCount from the googleAnalytics4 child sync provider with fallback to the googleGtag provider |
|
|
57
|
+
| Google Analytics 4 (Collect) | 2024-04-24 | 2025-08-20 | 2026-06-10 | Version: 1.1.0 | Added support for reading gclid, dclid, clientID, sessionID and sessionCount from the googleAnalytics4 child sync provider with fallback to the googleGtag provider |
|
|
48
58
|
| Google BigQuery | 2021-06-24 | 2023-12-13 | 2025-01-16 | Version: 1.1.0 | Adding support for table overrides |
|
|
49
59
|
| Google Cloud Storage | 2021-06-24 | 2026-03-18 | 2026-03-18 | Version: 1.0.0 | Stable Release |
|
|
50
60
|
| Google Pub/Sub | 2021-06-24 | 2023-12-13 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
51
|
-
| Heap | 2024-03-26 | N/A |
|
|
61
|
+
| Heap | 2024-03-26 | N/A | 2026-06-10 | Version: 0.3.0 | EU endpoint support Removed unused parameter |
|
|
52
62
|
| Hightouch | 2026-01-14 | 2026-04-08 | 2026-04-08 | Version: 1.0.0 | Stable Release |
|
|
53
63
|
| HubSpot | 2023-02-20 | N/A | 2025-07-30 | Version: 0.4.0 | Replaced context.traits with traits. |
|
|
54
64
|
| Impact Radius | 2021-06-24 | N/A | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
|
|
@@ -64,7 +74,7 @@
|
|
|
64
74
|
| MIQ (Xandr) | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
65
75
|
| Magellan AI | 2024-07-24 | 2024-08-07 | 2025-07-30 | Version: 1.2.0 | Replaced context.traits with traits. |
|
|
66
76
|
| Merkle | 2021-06-24 | N/A | 2025-07-30 | Version: 1.3.0 | Replaced context.traits with traits. |
|
|
67
|
-
| Meta CAPI | 2021-06-24 | N/A | 2026-
|
|
77
|
+
| Meta CAPI | 2021-06-24 | N/A | 2026-06-24 | Version: 1.11.0 | Added partner_agent as metarouter |
|
|
68
78
|
| Microsoft Ads | 2025-01-22 | 2025-04-02 | 2025-12-17 | Version: 1.2.0 | Deprecating this in favor of the released Microsoft Ads CAPI kit |
|
|
69
79
|
| Microsoft Ads CAPI | 2025-09-17 | 2025-11-05 | 2026-04-15 | Version: 1.1.0 | Added dataProvider field. |
|
|
70
80
|
| Microsoft Advertising | 2021-06-24 | N/A | 2025-12-17 | Version: 0.4.0 | Deprecating this in favor of the released Microsoft Ads CAPI kit |
|
|
@@ -74,18 +84,19 @@
|
|
|
74
84
|
| Movable Ink - Customer Data | 2024-02-07 | 2024-04-24 | 2025-07-16 | Version: 1.3.0 | TABLE_SLICE custom function usage. |
|
|
75
85
|
| Nextdoor | 2023-03-07 | 2024-08-07 | 2026-04-15 | Version: 1.1.0 | Deprecating in favor of the released Nextdoor CAPI Kit |
|
|
76
86
|
| Nextdoor - CAPI | 2024-06-05 | 2024-07-17 | 2025-10-08 | Version: 1.4.0 | Extended Nextdoor CAPI events. |
|
|
87
|
+
| OpenAI CAPI (New) | 2026-06-10 | N/A | 2026-06-10 | Version: 0.1.0 | Beta Version OpenAI CAPI initial release |
|
|
77
88
|
| Optimizely | 2026-01-28 | 2026-02-18 | 2026-02-18 | Version: 1.0.0 | Stable Release |
|
|
78
89
|
| Perion | 2025-05-21 | 2025-07-16 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
79
90
|
| Pinterest Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
80
91
|
| Pinterest CAPI | 2023-03-07 | N/A | 2026-04-08 | Version: 1.3.0 | Removed LDP (Limited Data Processing) default |
|
|
81
92
|
| Pipeline Router | 2026-01-14 | N/A | 2026-01-14 | Version: 0.1.0 | Beta Version Pipeline Router initial release |
|
|
82
|
-
| Podscribe | 2025-03-12 | 2025-04-09 | 2026-06-
|
|
93
|
+
| Podscribe | 2025-03-12 | 2025-04-09 | 2026-06-10 | Version: 1.3.0 | Add ipv4 and ipv6 field mappings with context.ip fallback |
|
|
83
94
|
| Podsights | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
84
95
|
| RTB House | 2024-11-20 | N/A | 2025-12-03 | Version: 0.4.0 | Updated endpoint to be a parameter |
|
|
85
96
|
| Rakuten Conversions | 2025-07-30 | 2025-09-24 | 2025-09-24 | Version: 1.0.0 | Stable Release |
|
|
86
97
|
| Reddit Ads | 2023-09-12 | 2026-01-07 | 2026-01-07 | Version: 2.0.0 | Stable Release of Reddit CAPI V3 |
|
|
87
|
-
| Ringier Axel Springer Poland | 2025-03-05 | 2025-04-09 | 2026-01-21 | Version: 1.4.0 | Deprecating in favor of the released RASP SDK Kit |
|
|
88
98
|
| Ringier Axel Springer Poland | 2025-06-25 | 2026-01-21 | 2026-05-20 | Version: 1.1.0 | Added ord to the playbook |
|
|
99
|
+
| Ringier Axel Springer Poland | 2025-03-05 | 2025-04-09 | 2026-01-21 | Version: 1.4.0 | Deprecating in favor of the released RASP SDK Kit |
|
|
89
100
|
| Roku | 2023-04-27 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced context.traits with traits. |
|
|
90
101
|
| Roomvo | 2021-08-10 | N/A | 2026-03-25 | Version: 0.2.2 | Converted some fields to camelCase for schema validation |
|
|
91
102
|
| Salesforce CDP | 2022-05-31 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced originalTimestamp with timestamp |
|
|
@@ -93,8 +104,8 @@
|
|
|
93
104
|
| Snapchat Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
94
105
|
| Snowflake | 2021-06-24 | N/A | 2025-10-15 | Version: 0.1.2 | Added friendly names to expressions |
|
|
95
106
|
| Stdout | 2026-03-18 | N/A | 2026-03-18 | Version: 0.1.0 | Beta Version Stdout initial release |
|
|
96
|
-
| Teads |
|
|
97
|
-
| Teads
|
|
107
|
+
| Teads CAPI (New) | 2026-06-03 | 2026-06-24 | 2026-06-24 | Version: 1.0.0 | Stable Release |
|
|
108
|
+
| Teads Postback | 2025-11-12 | 2026-01-07 | 2026-06-24 | Version: 1.0.1 | Updated friendly name |
|
|
98
109
|
| The Trade Desk - Conversions | 2025-06-04 | 2025-07-30 | 2025-12-10 | Version: 1.2.0 | Updating identifier mappings |
|
|
99
110
|
| The Trade Desk - Offline Conversions | 2026-02-25 | 2026-04-08 | 2026-04-08 | Version: 1.0.0 | Stable Release |
|
|
100
111
|
| TheTradeDesk Conversion Events | 2022-11-29 | N/A | 2025-07-30 | Version: 1.3.0 | Replaced originalTimestamp with timestamp |
|
|
@@ -107,7 +118,7 @@
|
|
|
107
118
|
| Wirtualna Polska | 2026-03-11 | 2026-04-22 | 2026-06-03 | Version: 1.1.0 | Added content_name parameter for ViewContent events. New product_list_viewed, page, and screen mappings |
|
|
108
119
|
| X Ads - Web Conversions | 2024-09-04 | 2024-09-25 | 2026-03-25 | Version: 1.1.1 | Converted some fields to camelCase for schema validation |
|
|
109
120
|
| Xandr | 2021-07-13 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
|
|
110
|
-
| Yahoo Conversions API | 2026-05-27 | N/A | 2026-
|
|
121
|
+
| Yahoo Conversions API | 2026-05-27 | N/A | 2026-06-24 | Version: 0.2.0 | Update userData.ip_address field in lua. |
|
|
111
122
|
| Yahoo Enhanced Attribution | 2023-03-07 | N/A | 2025-04-09 | Version: 0.4.0 | Deprecated |
|
|
112
123
|
| Yahoo Pixel API | 2023-03-07 | 2023-12-13 | 2025-04-09 | Version: 1.3.0 | Friendly name updated |
|
|
113
124
|
| Zeotap | 2024-02-21 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
|
package/index.js
CHANGED
|
@@ -447,6 +447,12 @@ exports['nextdoor-capi'] = {
|
|
|
447
447
|
metadata: require('./.dist/nextdoor-capi/metadata.json')
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
+
exports['openai-capi'] = {
|
|
451
|
+
endpointSchema: require('./.dist/openai-capi/connection.json'),
|
|
452
|
+
playbook: require('./.dist/openai-capi/playbook.json'),
|
|
453
|
+
metadata: require('./.dist/openai-capi/metadata.json')
|
|
454
|
+
}
|
|
455
|
+
|
|
450
456
|
exports.optimizely = {
|
|
451
457
|
endpointSchema: require('./.dist/optimizely/connection.json'),
|
|
452
458
|
playbook: require('./.dist/optimizely/playbook.json'),
|
|
@@ -1009,6 +1015,11 @@ exports.etags = {
|
|
|
1009
1015
|
playbook: require('./.dist/nextdoor-capi/playbook.etag.json'),
|
|
1010
1016
|
kit: require('./.dist/nextdoor-capi/kit.etag.json')
|
|
1011
1017
|
},
|
|
1018
|
+
'openai-capi': {
|
|
1019
|
+
endpointSchema: require('./.dist/openai-capi/connection.etag.json'),
|
|
1020
|
+
playbook: require('./.dist/openai-capi/playbook.etag.json'),
|
|
1021
|
+
kit: require('./.dist/openai-capi/kit.etag.json')
|
|
1022
|
+
},
|
|
1012
1023
|
optimizely: {
|
|
1013
1024
|
endpointSchema: require('./.dist/optimizely/connection.etag.json'),
|
|
1014
1025
|
playbook: require('./.dist/optimizely/playbook.etag.json'),
|