@metarouter/ajs-starter-kit 1.0.176 → 1.0.178
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/google-agent-search/connection.etag.json +1 -0
- package/.dist/google-agent-search/connection.json +75 -0
- package/.dist/google-agent-search/kit.etag.json +1 -0
- package/.dist/google-agent-search/metadata.json +21 -0
- package/.dist/google-agent-search/playbook.etag.json +1 -0
- package/.dist/google-agent-search/playbook.json +143 -0
- package/.dist/google-dm-audiences/connection.etag.json +1 -0
- package/.dist/google-dm-audiences/connection.json +77 -0
- package/.dist/google-dm-audiences/kit.etag.json +1 -0
- package/.dist/google-dm-audiences/metadata.json +21 -0
- package/.dist/google-dm-audiences/playbook.etag.json +1 -0
- package/.dist/google-dm-audiences/playbook.json +127 -0
- package/.dist/matomo/connection.etag.json +1 -0
- package/.dist/matomo/connection.json +33 -0
- package/.dist/matomo/kit.etag.json +1 -0
- package/.dist/matomo/metadata.json +21 -0
- package/.dist/matomo/playbook.etag.json +1 -0
- package/.dist/matomo/playbook.json +320 -0
- package/.dist/yahoo-conversions-api/kit.etag.json +1 -1
- package/.dist/yahoo-conversions-api/metadata.json +5 -1
- package/.dist/yahoo-conversions-api/playbook.etag.json +1 -1
- package/.dist/yahoo-conversions-api/playbook.json +9 -1
- package/README.md +14 -16
- package/index.js +35 -2
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"a757d6e0a9ca764abf154aa49b60ba34 -"
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "PROJECT_NUMBER",
|
|
5
|
+
"exampleValue": "my-project-number"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "LOCATION",
|
|
9
|
+
"defaultValue": "global"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "COLLECTION_ID",
|
|
13
|
+
"defaultValue": "my-collection-id"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "DATA_STORE_ID",
|
|
17
|
+
"exampleValue": "my-data-store-id"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "SERVICE_ACCOUNT_EMAIL",
|
|
21
|
+
"exampleValue": "my-service-account-email"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "PRIVATE_KEY",
|
|
25
|
+
"exampleValue": "my-private-key"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"default": {
|
|
29
|
+
"endpoint": "https://discoveryengine.googleapis.com/v1/projects/$$PROJECT_NUMBER$$/locations/$$LOCATION$$/collections/$$COLLECTION_ID$$/dataStores/$$DATA_STORE_ID$$/userEvents:write",
|
|
30
|
+
"method": "POST",
|
|
31
|
+
"headers": [
|
|
32
|
+
{
|
|
33
|
+
"key": "Accept-Encoding",
|
|
34
|
+
"value": "application/json"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"key": "Content-Type",
|
|
38
|
+
"value": "application/json"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"oauth2Auth": {
|
|
42
|
+
"request": {
|
|
43
|
+
"url": "https://oauth2.googleapis.com/token",
|
|
44
|
+
"contentType": "application/x-www-form-urlencoded",
|
|
45
|
+
"method": "POST",
|
|
46
|
+
"body": [
|
|
47
|
+
{
|
|
48
|
+
"key": "grant_type",
|
|
49
|
+
"value": "urn:ietf:params:oauth:grant-type:jwt-bearer"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"responseAccessTokenKey": "access_token",
|
|
54
|
+
"jwt": {
|
|
55
|
+
"claims": [
|
|
56
|
+
{
|
|
57
|
+
"key": "aud",
|
|
58
|
+
"value": "https://oauth2.googleapis.com/token"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"key": "scope",
|
|
62
|
+
"value": "https://www.googleapis.com/auth/discoveryengine.readwrite"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"key": "iss",
|
|
66
|
+
"value": "$$SERVICE_ACCOUNT_EMAIL$$"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"signingMethod": "SIGNING_METHOD_RS256",
|
|
70
|
+
"rsaPemKey": "$$PRIVATE_KEY$$",
|
|
71
|
+
"requestKey": "assertion"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"245901342e78b9c79d93f208175ad35d -"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "Agent Search",
|
|
6
|
+
"description": "Server-side delivery of user events to Google Agent Search to power AI search ranking and recommendations.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/google-agent-search.png",
|
|
8
|
+
"color": "#4285F4",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": false,
|
|
11
|
+
"isIosApp": false,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-07-22T00:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nAgent Search initial release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"9101ebd2e9ebf91d135760e3752cde12 -"
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"global": {
|
|
4
|
+
"mappings": [
|
|
5
|
+
{
|
|
6
|
+
"inputKey": "anonymousId",
|
|
7
|
+
"outputKey": "userPseudoId"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"inputKey": "timestamp",
|
|
11
|
+
"outputKey": "eventTime"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"inputKey": "context.userAgent",
|
|
15
|
+
"outputKey": "userInfo.userAgent"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"inputKey": "context.page.url",
|
|
19
|
+
"outputKey": "pageInfo.uri"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"inputKey": "context.page.referrer",
|
|
23
|
+
"outputKey": "pageInfo.referrerUri"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"default": {
|
|
28
|
+
"filters": [
|
|
29
|
+
{
|
|
30
|
+
"byEventNames": {
|
|
31
|
+
"action": "allow",
|
|
32
|
+
"events": [
|
|
33
|
+
""
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"eventSpecific": {
|
|
40
|
+
"products_searched": {
|
|
41
|
+
"enrichments": [
|
|
42
|
+
{
|
|
43
|
+
"staticString": "search",
|
|
44
|
+
"outputKey": "eventType"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"mappings": [
|
|
48
|
+
{
|
|
49
|
+
"inputKey": "properties.query",
|
|
50
|
+
"outputKey": "searchInfo.searchQuery"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"product_list_viewed": {
|
|
55
|
+
"enrichments": [
|
|
56
|
+
{
|
|
57
|
+
"staticString": "view-item-list",
|
|
58
|
+
"outputKey": "eventType"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"mappings": [
|
|
62
|
+
{
|
|
63
|
+
"inputKey": "input",
|
|
64
|
+
"outputKey": "documents",
|
|
65
|
+
"transforms": [
|
|
66
|
+
{
|
|
67
|
+
"expression": {
|
|
68
|
+
"lang": "lua",
|
|
69
|
+
"body": "return MAP(input.properties.products, function(p)\n return { id = p.product_id }\nend)"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
"product_viewed": {
|
|
77
|
+
"enrichments": [
|
|
78
|
+
{
|
|
79
|
+
"staticString": "view-item",
|
|
80
|
+
"outputKey": "eventType"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"mappings": [
|
|
84
|
+
{
|
|
85
|
+
"inputKey": "input",
|
|
86
|
+
"outputKey": "documents",
|
|
87
|
+
"transforms": [
|
|
88
|
+
{
|
|
89
|
+
"expression": {
|
|
90
|
+
"lang": "lua",
|
|
91
|
+
"body": "return {{ id = input.properties.product_id }}"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"page": {
|
|
99
|
+
"filters": [
|
|
100
|
+
{
|
|
101
|
+
"byConditions": {
|
|
102
|
+
"action": "allow",
|
|
103
|
+
"when": {
|
|
104
|
+
"matchesAny": {
|
|
105
|
+
"conditions": [
|
|
106
|
+
{
|
|
107
|
+
"stringEqual": {
|
|
108
|
+
"inputPath": "context.page.path",
|
|
109
|
+
"value": "/"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"inputPathExists": {
|
|
114
|
+
"inputPath": "properties.category"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"mappings": [
|
|
124
|
+
{
|
|
125
|
+
"inputKey": "input",
|
|
126
|
+
"outputKey": "eventType",
|
|
127
|
+
"transforms": [
|
|
128
|
+
{
|
|
129
|
+
"expression": {
|
|
130
|
+
"lang": "lua",
|
|
131
|
+
"body": "local p = input.properties or {}\nif p.category and p.category ~= \"\" then\n return \"view-category-page\"\nend\nreturn \"view-home-page\""
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"inputKey": "properties.category",
|
|
138
|
+
"outputKey": "pageInfo.pageCategory"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"32f144a3ea8a6b57a4625ac956a7b162 -"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "API_VERSION",
|
|
5
|
+
"defaultValue": "v1"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "SERVICE_ACCOUNT_EMAIL",
|
|
9
|
+
"exampleValue": "my-service-account-email"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "PRIVATE_KEY",
|
|
13
|
+
"exampleValue": "my-private-key"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "OPERATION_TYPE",
|
|
17
|
+
"exampleValue": "my-operation-type",
|
|
18
|
+
"defaultValue": "ingest"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"default": {
|
|
22
|
+
"endpoint": "https://datamanager.googleapis.com/$$API_VERSION$$/audienceMembers:$$OPERATION_TYPE$$",
|
|
23
|
+
"batchSize": 500,
|
|
24
|
+
"method": "POST",
|
|
25
|
+
"headers": [
|
|
26
|
+
{
|
|
27
|
+
"key": "Content-Type",
|
|
28
|
+
"value": "application/json"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"key": "Accept",
|
|
32
|
+
"value": "application/json"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"key": "Accept-Encoding",
|
|
36
|
+
"value": "identity"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"oauth2Auth": {
|
|
40
|
+
"request": {
|
|
41
|
+
"url": "https://oauth2.googleapis.com/token",
|
|
42
|
+
"contentType": "application/x-www-form-urlencoded",
|
|
43
|
+
"method": "POST",
|
|
44
|
+
"body": [
|
|
45
|
+
{
|
|
46
|
+
"key": "grant_type",
|
|
47
|
+
"value": "urn:ietf:params:oauth:grant-type:jwt-bearer"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"responseAccessTokenKey": "access_token",
|
|
52
|
+
"jwt": {
|
|
53
|
+
"claims": [
|
|
54
|
+
{
|
|
55
|
+
"key": "aud",
|
|
56
|
+
"value": "https://oauth2.googleapis.com/token"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"key": "scope",
|
|
60
|
+
"value": "https://www.googleapis.com/auth/datamanager"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"key": "iss",
|
|
64
|
+
"value": "$$SERVICE_ACCOUNT_EMAIL$$"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"signingMethod": "SIGNING_METHOD_RS256",
|
|
68
|
+
"rsaPemKey": "$$PRIVATE_KEY$$",
|
|
69
|
+
"requestKey": "assertion"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"transform": {
|
|
73
|
+
"lang": "lua",
|
|
74
|
+
"body": "local members = {}\nlocal destinations = {}\nlocal seen = {}\nfor _, item in ipairs(batch) do\n local member = item.audienceMembers\n local references = {}\n for _, d in ipairs(item.destinations or {}) do\n local acc = d.operatingAccount or {}\n local key = d.reference or ((acc.accountType or \"\") .. \"|\" .. (acc.accountId or \"\") .. \"|\" .. (d.productDestinationId or \"\"))\n if not seen[key] then\n seen[key] = true\n table.insert(destinations, d)\n end\n if d.reference then\n table.insert(references, d.reference)\n end\n end\n if member then\n if #references > 0 then\n member.destinationReferences = references\n end\n table.insert(members, member)\n end\nend\nrequest.body = {\n destinations = destinations,\n audienceMembers = members,\n consent = batch[1].consent,\n encoding = batch[1].encoding,\n termsOfService = batch[1].termsOfService,\n validateOnly = batch[1].validateOnly,\n}\nreturn request"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"a220c8a6cd7d685860c7a73c4ae661c6 -"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "Google Data Manager – Audiences",
|
|
6
|
+
"description": "Server-side audience membership delivery to Google Ads Customer Match via the Data Manager API.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/google-dm-audiences.png",
|
|
8
|
+
"color": "#4285F4",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": true,
|
|
11
|
+
"isIosApp": true,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-07-22T21:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nGoogle Data Manager – Audiences initial release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"0bf8bbf6393c68b68bdcca79adc0504c -"
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"params": [
|
|
4
|
+
{
|
|
5
|
+
"name": "OPERATION_TYPE",
|
|
6
|
+
"exampleValue": "my-operation-type"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"global": {
|
|
10
|
+
"filters": [
|
|
11
|
+
{
|
|
12
|
+
"byConditions": {
|
|
13
|
+
"action": "allow",
|
|
14
|
+
"when": {
|
|
15
|
+
"matchesAny": {
|
|
16
|
+
"conditions": [
|
|
17
|
+
{
|
|
18
|
+
"inputPathExists": {
|
|
19
|
+
"inputPath": "traits.email"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"inputPathExists": {
|
|
24
|
+
"inputPath": "traits.phone"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"inputPathExists": {
|
|
29
|
+
"inputPath": "userId"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"inputPathExists": {
|
|
34
|
+
"inputPath": "context.device.advertisingId"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"inputPathExists": {
|
|
39
|
+
"inputPath": "context.ip"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"enrichments": [
|
|
49
|
+
{
|
|
50
|
+
"outputKey": "encoding",
|
|
51
|
+
"staticString": "HEX"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"outputKey": "validateOnly",
|
|
55
|
+
"staticBool": false
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"mappings": [
|
|
59
|
+
{
|
|
60
|
+
"inputKey": "input",
|
|
61
|
+
"outputKey": "destinations",
|
|
62
|
+
"transforms": [
|
|
63
|
+
{
|
|
64
|
+
"expression": {
|
|
65
|
+
"lang": "lua",
|
|
66
|
+
"name": "destinations",
|
|
67
|
+
"body": "local function destination(reference, accountType, accountId, productDestinationId)\n return { reference = reference, operatingAccount = { accountType = accountType, accountId = accountId }, productDestinationId = productDestinationId }\nend\nlocal t = input.traits or {}\nlocal a = t.address\n\n-- PICK ONE: keep the block for your data type, delete the other two.\n-- Then delete the matching mappings below and the matching global.filters conditions.\n\nif t.email or t.phone or (t.firstName and t.lastName and a and a.country and a.postalCode) or input.context.ip then\n return {\n destination(\"ads_contact\", \"GOOGLE_ADS\", \"ADD_GOOGLE_ADS_ACCOUNT_ID_HERE\", \"ADD_CONTACT_LIST_ID_HERE\"),\n destination(\"dv_contact\", \"DISPLAY_VIDEO_ADVERTISER\", \"ADD_DISPLAY_VIDEO_ADVERTISER_ID_HERE\", \"ADD_CONTACT_LIST_ID_HERE\"),\n }\nend\n\nif input.context.device and input.context.device.advertisingId then\n return {\n destination(\"ads_mobile\", \"GOOGLE_ADS\", \"ADD_GOOGLE_ADS_ACCOUNT_ID_HERE\", \"ADD_MOBILE_LIST_ID_HERE\"),\n destination(\"dv_mobile\", \"DISPLAY_VIDEO_ADVERTISER\", \"ADD_DISPLAY_VIDEO_ADVERTISER_ID_HERE\", \"ADD_MOBILE_LIST_ID_HERE\"),\n }\nend\n\nif input.userId then\n return {\n destination(\"ads_userid\", \"GOOGLE_ADS\", \"ADD_GOOGLE_ADS_ACCOUNT_ID_HERE\", \"ADD_USERID_LIST_ID_HERE\"),\n destination(\"dv_userid\", \"DISPLAY_VIDEO_ADVERTISER\", \"ADD_DISPLAY_VIDEO_ADVERTISER_ID_HERE\", \"ADD_USERID_LIST_ID_HERE\"),\n }\nend"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"inputKey": "input",
|
|
74
|
+
"outputKey": "audienceMembers.compositeData",
|
|
75
|
+
"transforms": [
|
|
76
|
+
{
|
|
77
|
+
"expression": {
|
|
78
|
+
"lang": "lua",
|
|
79
|
+
"name": "compositeData",
|
|
80
|
+
"body": "local userIdentifiers = {}\nlocal t = input.traits or {}\nif t.email then\n local email = LOWER(TRIM(t.email))\n local parts = SPLIT(email, \"@\")\n if parts[2] == \"gmail.com\" or parts[2] == \"googlemail.com\" then\n email = parts[1]:gsub(\"%.\", \"\"):gsub(\"%+.*\", \"\") .. \"@\" .. parts[2]\n end\n table.insert(userIdentifiers, { emailAddress = TO_SHA256_HASH(email) })\nend\nif t.phone then\n local phone = TRIM(t.phone)\n local normalized_phone = phone:gsub(\"[^%d+]\", \"\"):gsub(\"^00\", \"+\"):gsub(\"^(%d)\", \"+1%1\")\n table.insert(userIdentifiers, {\n phoneNumber = TO_SHA256_HASH(normalized_phone)\n })\nend\nif t.firstName and t.lastName and t.address and t.address.country and t.address.postalCode then\n local a = t.address\n table.insert(userIdentifiers, {\n address = {\n givenName = TO_SHA256_HASH(LOWER(TRIM(t.firstName))),\n familyName = TO_SHA256_HASH(LOWER(TRIM(t.lastName))),\n postalCode = a.postalCode,\n regionCode = TO_ISO_COUNTRY(a.country),\n }\n })\nend\n\nlocal hasIp = input.context.ip\nif #userIdentifiers == 0 and not hasIp then\n return nil\nend\n\nlocal composite = {}\nif #userIdentifiers > 0 then\n composite.userData = { userIdentifiers = userIdentifiers }\nend\nif hasIp then\n composite.ipData = { { ipAddress = input.context.ip, observeStartTime = input.timestamp } }\nend\nreturn composite"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"inputKey": "input",
|
|
87
|
+
"outputKey": "audienceMembers.mobileData.mobileIds",
|
|
88
|
+
"transforms": [
|
|
89
|
+
{
|
|
90
|
+
"expression": {
|
|
91
|
+
"lang": "lua",
|
|
92
|
+
"body": "if input.context.device and input.context.device.advertisingId then\n return { input.context.device.advertisingId }\nend"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"inputKey": "userId",
|
|
99
|
+
"outputKey": "audienceMembers.userIdData.userId"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"inputKey": "input",
|
|
103
|
+
"outputKey": "consent",
|
|
104
|
+
"transforms": [
|
|
105
|
+
{
|
|
106
|
+
"expression": {
|
|
107
|
+
"lang": "lua",
|
|
108
|
+
"body": "if \"$$OPERATION_TYPE$$\" == \"ingest\" then\n return {\n adUserData = \"CONSENT_GRANTED\",\n adPersonalization = \"CONSENT_GRANTED\",\n }\nend"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"inputKey": "input",
|
|
115
|
+
"outputKey": "termsOfService.customerMatchTermsOfServiceStatus",
|
|
116
|
+
"transforms": [
|
|
117
|
+
{
|
|
118
|
+
"expression": {
|
|
119
|
+
"lang": "lua",
|
|
120
|
+
"body": "if \"$$OPERATION_TYPE$$\" == \"ingest\" then\n return \"ACCEPTED\"\nend"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"153b4e04b26116f8c14ceccb3cb9af46 -"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "DOMAIN_URL",
|
|
5
|
+
"exampleValue": "my-domain-url"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "TOKEN_AUTH",
|
|
9
|
+
"exampleValue": "my-token-auth",
|
|
10
|
+
"isOptional": true,
|
|
11
|
+
"isSensitive": true
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"default": {
|
|
15
|
+
"endpoint": "$$DOMAIN_URL$$/matomo.php",
|
|
16
|
+
"method": "POST",
|
|
17
|
+
"batchSize": 500,
|
|
18
|
+
"headers": [
|
|
19
|
+
{
|
|
20
|
+
"key": "Content-Type",
|
|
21
|
+
"value": "application/json"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"key": "Accept-Encoding",
|
|
25
|
+
"value": "application/json"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"transform": {
|
|
29
|
+
"lang": "lua",
|
|
30
|
+
"body": "local function to_request(event)\n local parts = {}\n for key, value in pairs(event) do\n parts[#parts + 1] = key .. \"=\" .. QUERY_ESCAPE(TO_STRING(value))\n end\n return \"?\" .. JOIN(parts, \"&\")\nend\nlocal body = { requests = MAP(batch, to_request) }\n\nlocal token_auth = \"$$TOKEN_AUTH$$\"\nif token_auth ~= \"\" and token_auth ~= \"my-token-auth\" and REPLACE(token_auth, \"$$\", \"\") == token_auth then\n body.token_auth = token_auth\nend\n\nrequest.body = body\nreturn request"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"89aa710cee0fde359180e234e0a1c83e -"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isDeprecated": false,
|
|
4
|
+
"isBeta": true,
|
|
5
|
+
"friendlyName": "Matomo",
|
|
6
|
+
"description": "Matomo is an open-source web analytics platform that provides page view, event, visit, ecommerce, and campaign attribution tracking.",
|
|
7
|
+
"logo": "https://cdn.metarouter.io/matomo.png",
|
|
8
|
+
"color": "#d4291f",
|
|
9
|
+
"eventSource": {
|
|
10
|
+
"isAndroidApp": false,
|
|
11
|
+
"isIosApp": false,
|
|
12
|
+
"isWebApp": true
|
|
13
|
+
},
|
|
14
|
+
"inputSchema": "analytics_js",
|
|
15
|
+
"releaseNotes": [
|
|
16
|
+
{
|
|
17
|
+
"date": "2026-07-15T21:00:00.000Z",
|
|
18
|
+
"note": "Version: 0.1.0\nBeta Version\nMatomo initial release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"e342de08780aaeb05311cc16e674184e -"
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"params": [
|
|
4
|
+
{
|
|
5
|
+
"name": "SITE_ID",
|
|
6
|
+
"exampleValue": "my-site-id"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"global": {
|
|
10
|
+
"enrichments": [
|
|
11
|
+
{
|
|
12
|
+
"staticString": "1",
|
|
13
|
+
"outputKey": "rec"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"staticString": "1",
|
|
17
|
+
"outputKey": "apiv"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"staticString": "$$SITE_ID$$",
|
|
21
|
+
"outputKey": "idsite"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"mappings": [
|
|
25
|
+
{
|
|
26
|
+
"inputKey": "context.page.url",
|
|
27
|
+
"outputKey": "url"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"inputKey": "context.page.referrer",
|
|
31
|
+
"outputKey": "urlref"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputKey": "context.userAgent",
|
|
35
|
+
"outputKey": "ua"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"inputKey": "userId",
|
|
39
|
+
"outputKey": "uid"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"inputKey": "context.ip",
|
|
43
|
+
"outputKey": "cip"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"inputKey": "traits.address.city",
|
|
47
|
+
"outputKey": "city"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"inputKey": "context.locale",
|
|
51
|
+
"outputKey": "lang"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"inputKey": "messageId",
|
|
55
|
+
"outputKey": "rand"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"inputKey": "input",
|
|
59
|
+
"outputKey": "_id",
|
|
60
|
+
"transforms": [
|
|
61
|
+
{
|
|
62
|
+
"expression": {
|
|
63
|
+
"lang": "lua",
|
|
64
|
+
"body": "return SUBSTRING(REPLACE(input.anonymousId, \"-\", \"\"), 0, 16)"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"inputKey": "input",
|
|
71
|
+
"outputKey": "cdt",
|
|
72
|
+
"transforms": [
|
|
73
|
+
{
|
|
74
|
+
"expression": {
|
|
75
|
+
"lang": "lua",
|
|
76
|
+
"body": "return SECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.timestamp or input.originalTimestamp or input.sentAt))"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
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
|
+
"mappings": [
|
|
98
|
+
{
|
|
99
|
+
"inputKey": "context.page.title",
|
|
100
|
+
"outputKey": "action_name"
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
"products_searched": {
|
|
105
|
+
"mappings": [
|
|
106
|
+
{
|
|
107
|
+
"inputKey": "properties.query",
|
|
108
|
+
"outputKey": "search"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"product_list_viewed": {
|
|
113
|
+
"mappings": [
|
|
114
|
+
{
|
|
115
|
+
"inputKey": "properties.category",
|
|
116
|
+
"outputKey": "_pkc"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
"product_viewed": {
|
|
121
|
+
"mappings": [
|
|
122
|
+
{
|
|
123
|
+
"inputKey": "input",
|
|
124
|
+
"outputKey": "_pks",
|
|
125
|
+
"transforms": [
|
|
126
|
+
{
|
|
127
|
+
"expression": {
|
|
128
|
+
"lang": "lua",
|
|
129
|
+
"body": "return input.properties.sku or input.properties.product_id"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"inputKey": "properties.name",
|
|
136
|
+
"outputKey": "_pkn"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"inputKey": "properties.category",
|
|
140
|
+
"outputKey": "_pkc"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"inputKey": "properties.price",
|
|
144
|
+
"outputKey": "_pkp",
|
|
145
|
+
"transforms": [
|
|
146
|
+
{
|
|
147
|
+
"toScalar": "float"
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"cart_viewed": {
|
|
154
|
+
"enrichments": [
|
|
155
|
+
{
|
|
156
|
+
"staticString": "0",
|
|
157
|
+
"outputKey": "idgoal"
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"mappings": [
|
|
161
|
+
{
|
|
162
|
+
"inputKey": "input",
|
|
163
|
+
"outputKey": "ec_items",
|
|
164
|
+
"transforms": [
|
|
165
|
+
{
|
|
166
|
+
"expression": {
|
|
167
|
+
"lang": "lua",
|
|
168
|
+
"body": "local function item(p)\n return {\n p.sku or p.product_id,\n p.name or \"\",\n p.category or \"\",\n TO_FLOAT(p.price or 0),\n TO_TRUNCATED_INT(p.quantity or 1),\n }\nend\nreturn MAP(input.properties.products, item)"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"inputKey": "input",
|
|
175
|
+
"outputKey": "revenue",
|
|
176
|
+
"transforms": [
|
|
177
|
+
{
|
|
178
|
+
"expression": {
|
|
179
|
+
"lang": "lua",
|
|
180
|
+
"body": "return TOTAL_VALUE(input.properties.products)"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
"checkout_started": {
|
|
188
|
+
"enrichments": [
|
|
189
|
+
{
|
|
190
|
+
"staticString": "0",
|
|
191
|
+
"outputKey": "idgoal"
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
"mappings": [
|
|
195
|
+
{
|
|
196
|
+
"inputKey": "properties.revenue",
|
|
197
|
+
"outputKey": "revenue",
|
|
198
|
+
"transforms": [
|
|
199
|
+
{
|
|
200
|
+
"toScalar": "float"
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"inputKey": "input",
|
|
206
|
+
"outputKey": "ec_items",
|
|
207
|
+
"transforms": [
|
|
208
|
+
{
|
|
209
|
+
"expression": {
|
|
210
|
+
"lang": "lua",
|
|
211
|
+
"body": "local function item(p)\n return {\n p.sku or p.product_id,\n p.name or \"\",\n p.category or \"\",\n TO_FLOAT(p.price or 0),\n TO_TRUNCATED_INT(p.quantity or 1),\n }\nend\nreturn MAP(input.properties.products, item)"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
"order_completed": {
|
|
219
|
+
"enrichments": [
|
|
220
|
+
{
|
|
221
|
+
"staticString": "0",
|
|
222
|
+
"outputKey": "idgoal"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"mappings": [
|
|
226
|
+
{
|
|
227
|
+
"inputKey": "properties.order_id",
|
|
228
|
+
"outputKey": "ec_id"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"inputKey": "properties.total",
|
|
232
|
+
"outputKey": "revenue",
|
|
233
|
+
"transforms": [
|
|
234
|
+
{
|
|
235
|
+
"toScalar": "float"
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"inputKey": "properties.revenue",
|
|
241
|
+
"outputKey": "ec_st",
|
|
242
|
+
"transforms": [
|
|
243
|
+
{
|
|
244
|
+
"toScalar": "float"
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"inputKey": "properties.tax",
|
|
250
|
+
"outputKey": "ec_tx",
|
|
251
|
+
"transforms": [
|
|
252
|
+
{
|
|
253
|
+
"toScalar": "float"
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"inputKey": "properties.shipping",
|
|
259
|
+
"outputKey": "ec_sh",
|
|
260
|
+
"transforms": [
|
|
261
|
+
{
|
|
262
|
+
"toScalar": "float"
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"inputKey": "properties.discount",
|
|
268
|
+
"outputKey": "ec_dt",
|
|
269
|
+
"transforms": [
|
|
270
|
+
{
|
|
271
|
+
"toScalar": "float"
|
|
272
|
+
}
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"inputKey": "input",
|
|
277
|
+
"outputKey": "ec_items",
|
|
278
|
+
"transforms": [
|
|
279
|
+
{
|
|
280
|
+
"expression": {
|
|
281
|
+
"lang": "lua",
|
|
282
|
+
"body": "local function item(p)\n return {\n p.sku or p.product_id,\n p.name or \"\",\n p.category or \"\",\n TO_FLOAT(p.price or 0),\n TO_TRUNCATED_INT(p.quantity or 1),\n }\nend\nreturn MAP(input.properties.products, item)"
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"promotion_viewed": {
|
|
290
|
+
"mappings": [
|
|
291
|
+
{
|
|
292
|
+
"inputKey": "properties.name",
|
|
293
|
+
"outputKey": "c_n"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"inputKey": "properties.creative",
|
|
297
|
+
"outputKey": "c_p"
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
"promotion_clicked": {
|
|
302
|
+
"enrichments": [
|
|
303
|
+
{
|
|
304
|
+
"staticString": "click",
|
|
305
|
+
"outputKey": "c_i"
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
"mappings": [
|
|
309
|
+
{
|
|
310
|
+
"inputKey": "properties.name",
|
|
311
|
+
"outputKey": "c_n"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"inputKey": "properties.creative",
|
|
315
|
+
"outputKey": "c_p"
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"85cc29d030eb6e62931b5a7de4d9772b -"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"isDraft": false,
|
|
3
3
|
"isDeprecated": false,
|
|
4
4
|
"isBeta": true,
|
|
5
|
-
"friendlyName": "Yahoo
|
|
5
|
+
"friendlyName": "Yahoo CAPI",
|
|
6
6
|
"description": "Yahoo Conversion API allows advertisers to send conversion events server-to-server to Yahoo DSP, enabling accurate tracking of user actions like purchases or signups.",
|
|
7
7
|
"logo": "https://cdn.metarouter.io/yahoo-conversions-api.png",
|
|
8
8
|
"color": "#6001D2",
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
{
|
|
21
21
|
"date": "2026-06-24T21:00:00.000Z",
|
|
22
22
|
"note": "Version: 0.2.0\nUpdate userData.ip_address field in lua."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"date": "2026-07-22T21:00:00.000Z",
|
|
26
|
+
"note": "Version: 0.3.0\nAdd page event, update friendlyName."
|
|
23
27
|
}
|
|
24
28
|
]
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"
|
|
1
|
+
"32d2848b7e2fd995247cb0957add5de3 -"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.3.0",
|
|
3
3
|
"default": {
|
|
4
4
|
"filters": [
|
|
5
5
|
{
|
|
@@ -137,6 +137,14 @@
|
|
|
137
137
|
]
|
|
138
138
|
},
|
|
139
139
|
"eventSpecific": {
|
|
140
|
+
"page": {
|
|
141
|
+
"mappings": [
|
|
142
|
+
{
|
|
143
|
+
"inputKey": "properties.url",
|
|
144
|
+
"outputKey": "actionSourceUrl"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
140
148
|
"product_list_viewed": {
|
|
141
149
|
"mappings": [
|
|
142
150
|
{
|
package/README.md
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
# MetaRouter Starter Kits
|
|
2
2
|
|
|
3
|
-
### 2026-
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- Podscribe
|
|
11
|
-
- Teads CAPI (New)
|
|
12
|
-
- Teads Postback
|
|
13
|
-
- Wirtualna Polska
|
|
14
|
-
- Yahoo Conversions API
|
|
3
|
+
### 2026-07
|
|
4
|
+
- Agent Search (New)
|
|
5
|
+
- Google Data Manager – Audiences (New)
|
|
6
|
+
- Matomo (New)
|
|
7
|
+
- Meta CAPI
|
|
8
|
+
- OpenAI CAPI
|
|
9
|
+
- Yahoo CAPI
|
|
15
10
|
|
|
16
11
|
| Kit Name | Initial Release Date | Stable Release Date | Latest Release Date | Current Version | Latest Note |
|
|
17
12
|
|----------|----------------------|---------------------|---------------------|-----------------|-------------|
|
|
@@ -21,6 +16,7 @@
|
|
|
21
16
|
| Adobe Analytics | 2025-10-08 | 2026-01-07 | 2026-01-07 | Version: 1.0.0 | Stable Release |
|
|
22
17
|
| Adobe Experience Platform | 2023-03-21 | 2025-08-20 | 2025-11-19 | Version: 1.1.0 | Added ECID support Updated identityMap mappings |
|
|
23
18
|
| Adobe ID | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
19
|
+
| Agent Search (New) | 2026-07-22 | N/A | 2026-07-22 | Version: 0.1.0 | Beta Version Agent Search initial release |
|
|
24
20
|
| Amazon DSP - Events | 2025-12-03 | 2026-02-18 | 2026-02-18 | Version: 1.0.0 | Stable Release |
|
|
25
21
|
| Amazon DSP CAPI | 2025-05-21 | 2025-08-13 | 2026-02-04 | Version: 1.1.0 | Deprecated |
|
|
26
22
|
| Amazon Data Firehose | 2025-02-05 | 2025-04-02 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
@@ -55,6 +51,7 @@
|
|
|
55
51
|
| 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 |
|
|
56
52
|
| Google BigQuery | 2021-06-24 | 2023-12-13 | 2025-01-16 | Version: 1.1.0 | Adding support for table overrides |
|
|
57
53
|
| Google Cloud Storage | 2021-06-24 | 2026-03-18 | 2026-03-18 | Version: 1.0.0 | Stable Release |
|
|
54
|
+
| Google Data Manager – Audiences (New) | 2026-07-22 | N/A | 2026-07-22 | Version: 0.1.0 | Beta Version Google Data Manager – Audiences initial release |
|
|
58
55
|
| Google Pub/Sub | 2021-06-24 | 2023-12-13 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
59
56
|
| Heap | 2024-03-26 | N/A | 2026-06-10 | Version: 0.3.0 | EU endpoint support Removed unused parameter |
|
|
60
57
|
| Hightouch | 2026-01-14 | 2026-04-08 | 2026-04-08 | Version: 1.0.0 | Stable Release |
|
|
@@ -71,6 +68,7 @@
|
|
|
71
68
|
| Lytics | 2021-06-24 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
|
|
72
69
|
| MIQ (Xandr) | 2023-03-07 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
|
|
73
70
|
| Magellan AI | 2024-07-24 | 2024-08-07 | 2025-07-30 | Version: 1.2.0 | Replaced context.traits with traits. |
|
|
71
|
+
| Matomo (New) | 2026-07-15 | N/A | 2026-07-15 | Version: 0.1.0 | Beta Version Matomo initial release |
|
|
74
72
|
| Merkle | 2021-06-24 | N/A | 2025-07-30 | Version: 1.3.0 | Replaced context.traits with traits. |
|
|
75
73
|
| Meta CAPI | 2021-06-24 | N/A | 2026-07-01 | Version: 1.12.0 | Relocate partner_agent field. |
|
|
76
74
|
| 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 |
|
|
@@ -82,7 +80,7 @@
|
|
|
82
80
|
| Movable Ink - Customer Data | 2024-02-07 | 2024-04-24 | 2025-07-16 | Version: 1.3.0 | TABLE_SLICE custom function usage. |
|
|
83
81
|
| Nextdoor | 2023-03-07 | 2024-08-07 | 2026-04-15 | Version: 1.1.0 | Deprecating in favor of the released Nextdoor CAPI Kit |
|
|
84
82
|
| Nextdoor - CAPI | 2024-06-05 | 2024-07-17 | 2025-10-08 | Version: 1.4.0 | Extended Nextdoor CAPI events. |
|
|
85
|
-
| OpenAI CAPI
|
|
83
|
+
| OpenAI CAPI | 2026-06-10 | 2026-07-01 | 2026-07-01 | Version: 1.0.0 | Stable Release |
|
|
86
84
|
| Optimizely | 2026-01-28 | 2026-02-18 | 2026-02-18 | Version: 1.0.0 | Stable Release |
|
|
87
85
|
| Perion | 2025-05-21 | 2025-07-16 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
|
|
88
86
|
| Pinterest Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
@@ -93,8 +91,8 @@
|
|
|
93
91
|
| RTB House | 2024-11-20 | N/A | 2025-12-03 | Version: 0.4.0 | Updated endpoint to be a parameter |
|
|
94
92
|
| Rakuten Conversions | 2025-07-30 | 2025-09-24 | 2025-09-24 | Version: 1.0.0 | Stable Release |
|
|
95
93
|
| Reddit Ads | 2023-09-12 | 2026-01-07 | 2026-01-07 | Version: 2.0.0 | Stable Release of Reddit CAPI V3 |
|
|
96
|
-
| Ringier Axel Springer Poland | 2025-06-25 | 2026-01-21 | 2026-05-20 | Version: 1.1.0 | Added ord to the playbook |
|
|
97
94
|
| 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 |
|
|
95
|
+
| Ringier Axel Springer Poland | 2025-06-25 | 2026-01-21 | 2026-05-20 | Version: 1.1.0 | Added ord to the playbook |
|
|
98
96
|
| Roku | 2023-04-27 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced context.traits with traits. |
|
|
99
97
|
| Roomvo | 2021-08-10 | N/A | 2026-03-25 | Version: 0.2.2 | Converted some fields to camelCase for schema validation |
|
|
100
98
|
| Salesforce CDP | 2022-05-31 | N/A | 2025-07-30 | Version: 1.2.0 | Replaced originalTimestamp with timestamp |
|
|
@@ -102,7 +100,7 @@
|
|
|
102
100
|
| Snapchat Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
|
|
103
101
|
| Snowflake | 2021-06-24 | N/A | 2025-10-15 | Version: 0.1.2 | Added friendly names to expressions |
|
|
104
102
|
| Stdout | 2026-03-18 | N/A | 2026-03-18 | Version: 0.1.0 | Beta Version Stdout initial release |
|
|
105
|
-
| Teads CAPI
|
|
103
|
+
| Teads CAPI | 2026-06-03 | 2026-06-24 | 2026-06-24 | Version: 1.0.0 | Stable Release |
|
|
106
104
|
| Teads Postback | 2025-11-12 | 2026-01-07 | 2026-06-24 | Version: 1.0.1 | Updated friendly name |
|
|
107
105
|
| The Trade Desk - Conversions | 2025-06-04 | 2025-07-30 | 2025-12-10 | Version: 1.2.0 | Updating identifier mappings |
|
|
108
106
|
| The Trade Desk - Offline Conversions | 2026-02-25 | 2026-04-08 | 2026-04-08 | Version: 1.0.0 | Stable Release |
|
|
@@ -116,7 +114,7 @@
|
|
|
116
114
|
| 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 |
|
|
117
115
|
| 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 |
|
|
118
116
|
| Xandr | 2021-07-13 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
|
|
119
|
-
| Yahoo
|
|
117
|
+
| Yahoo CAPI | 2026-05-27 | N/A | 2026-07-22 | Version: 0.3.0 | Add page event, update friendlyName. |
|
|
120
118
|
| Yahoo Enhanced Attribution | 2023-03-07 | N/A | 2025-04-09 | Version: 0.4.0 | Deprecated |
|
|
121
119
|
| Yahoo Pixel API | 2023-03-07 | 2023-12-13 | 2025-04-09 | Version: 1.3.0 | Friendly name updated |
|
|
122
120
|
| Zeotap | 2024-02-21 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
|
package/index.js
CHANGED
|
@@ -297,6 +297,12 @@ exports['google-ads'] = {
|
|
|
297
297
|
metadata: require('./.dist/google-ads/metadata.json')
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
exports['google-agent-search'] = {
|
|
301
|
+
endpointSchema: require('./.dist/google-agent-search/connection.json'),
|
|
302
|
+
playbook: require('./.dist/google-agent-search/playbook.json'),
|
|
303
|
+
metadata: require('./.dist/google-agent-search/metadata.json')
|
|
304
|
+
}
|
|
305
|
+
|
|
300
306
|
exports['google-analytics'] = {
|
|
301
307
|
endpointSchema: require('./.dist/google-analytics/connection.json'),
|
|
302
308
|
playbook: require('./.dist/google-analytics/playbook.json'),
|
|
@@ -315,6 +321,12 @@ exports['google-analytics-4-collect'] = {
|
|
|
315
321
|
metadata: require('./.dist/google-analytics-4-collect/metadata.json')
|
|
316
322
|
}
|
|
317
323
|
|
|
324
|
+
exports['google-dm-audiences'] = {
|
|
325
|
+
endpointSchema: require('./.dist/google-dm-audiences/connection.json'),
|
|
326
|
+
playbook: require('./.dist/google-dm-audiences/playbook.json'),
|
|
327
|
+
metadata: require('./.dist/google-dm-audiences/metadata.json')
|
|
328
|
+
}
|
|
329
|
+
|
|
318
330
|
exports['google-firebase'] = {
|
|
319
331
|
endpointSchema: require('./.dist/google-firebase/connection.json'),
|
|
320
332
|
playbook: require('./.dist/google-firebase/playbook.json'),
|
|
@@ -387,6 +399,12 @@ exports['magellan-ai'] = {
|
|
|
387
399
|
metadata: require('./.dist/magellan-ai/metadata.json')
|
|
388
400
|
}
|
|
389
401
|
|
|
402
|
+
exports['matomo'] = {
|
|
403
|
+
endpointSchema: require('./.dist/matomo/connection.json'),
|
|
404
|
+
playbook: require('./.dist/matomo/playbook.json'),
|
|
405
|
+
metadata: require('./.dist/matomo/metadata.json')
|
|
406
|
+
}
|
|
407
|
+
|
|
390
408
|
exports['media-math'] = {
|
|
391
409
|
endpointSchema: require('./.dist/media-math/connection.json'),
|
|
392
410
|
playbook: require('./.dist/media-math/playbook.json'),
|
|
@@ -869,12 +887,12 @@ exports.etags = {
|
|
|
869
887
|
'engage-front': {
|
|
870
888
|
endpointSchema: require('./.dist/engage-front/connection.etag.json'),
|
|
871
889
|
playbook: require('./.dist/engage-front/playbook.etag.json'),
|
|
872
|
-
|
|
890
|
+
kit: require('./.dist/engage-front/kit.etag.json')
|
|
873
891
|
},
|
|
874
892
|
'eulerian': {
|
|
875
893
|
endpointSchema: require('./.dist/eulerian/connection.etag.json'),
|
|
876
894
|
playbook: require('./.dist/eulerian/playbook.etag.json'),
|
|
877
|
-
|
|
895
|
+
kit: require('./.dist/eulerian/kit.etag.json')
|
|
878
896
|
},
|
|
879
897
|
'facebook-pixel': {
|
|
880
898
|
endpointSchema: require('./.dist/facebook-pixel/connection.etag.json'),
|
|
@@ -891,6 +909,11 @@ exports.etags = {
|
|
|
891
909
|
playbook: require('./.dist/google-ads/playbook.etag.json'),
|
|
892
910
|
kit: require('./.dist/google-ads/kit.etag.json')
|
|
893
911
|
},
|
|
912
|
+
'google-agent-search': {
|
|
913
|
+
endpointSchema: require('./.dist/google-agent-search/connection.etag.json'),
|
|
914
|
+
playbook: require('./.dist/google-agent-search/playbook.etag.json'),
|
|
915
|
+
kit: require('./.dist/google-agent-search/kit.etag.json')
|
|
916
|
+
},
|
|
894
917
|
'google-analytics': {
|
|
895
918
|
endpointSchema: require('./.dist/google-analytics/connection.etag.json'),
|
|
896
919
|
playbook: require('./.dist/google-analytics/playbook.etag.json'),
|
|
@@ -906,6 +929,11 @@ exports.etags = {
|
|
|
906
929
|
playbook: require('./.dist/google-analytics-4-collect/playbook.etag.json'),
|
|
907
930
|
kit: require('./.dist/google-analytics-4-collect/kit.etag.json')
|
|
908
931
|
},
|
|
932
|
+
'google-dm-audiences': {
|
|
933
|
+
endpointSchema: require('./.dist/google-dm-audiences/connection.etag.json'),
|
|
934
|
+
playbook: require('./.dist/google-dm-audiences/playbook.etag.json'),
|
|
935
|
+
kit: require('./.dist/google-dm-audiences/kit.etag.json')
|
|
936
|
+
},
|
|
909
937
|
'google-firebase': {
|
|
910
938
|
playbook: require('./.dist/google-firebase/playbook.etag.json'),
|
|
911
939
|
kit: require('./.dist/google-firebase/kit.etag.json')
|
|
@@ -965,6 +993,11 @@ exports.etags = {
|
|
|
965
993
|
playbook: require('./.dist/magellan-ai/playbook.etag.json'),
|
|
966
994
|
kit: require('./.dist/magellan-ai/kit.etag.json')
|
|
967
995
|
},
|
|
996
|
+
'matomo': {
|
|
997
|
+
endpointSchema: require('./.dist/matomo/connection.etag.json'),
|
|
998
|
+
playbook: require('./.dist/matomo/playbook.etag.json'),
|
|
999
|
+
kit: require('./.dist/matomo/kit.etag.json')
|
|
1000
|
+
},
|
|
968
1001
|
'media-math': {
|
|
969
1002
|
endpointSchema: require('./.dist/media-math/connection.etag.json'),
|
|
970
1003
|
playbook: require('./.dist/media-math/playbook.etag.json'),
|