@metarouter/ajs-starter-kit 1.0.51 → 1.0.52
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/thetradedesk-conversion-events/connection.etag.json +1 -0
- package/.dist/thetradedesk-conversion-events/connection.json +33 -0
- package/.dist/thetradedesk-conversion-events/kit.etag.json +1 -0
- package/.dist/thetradedesk-conversion-events/metadata.json +20 -0
- package/.dist/thetradedesk-conversion-events/playbook.etag.json +1 -0
- package/.dist/thetradedesk-conversion-events/playbook.json +133 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/connection.etag.json +1 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/connection.json +37 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/kit.etag.json +1 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/metadata.json +20 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/playbook.etag.json +1 -0
- package/.dist/thetradedesk-data-advertiser-firstparty/playbook.json +42 -0
- package/index.js +24 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"90086aadabb281ce9c4008f2ae16e8f2"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "SECRET_KEY",
|
|
5
|
+
"exampleValue": "my-secret-key"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "SECRET_KEY_DATA_PROVIDER",
|
|
9
|
+
"exampleValue": "my-secret-key-data-provider"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"default": {
|
|
13
|
+
"endpoint": "https://insight.adsrvr.org/track/ecomm",
|
|
14
|
+
"headers": [
|
|
15
|
+
{
|
|
16
|
+
"key": "Content-Type",
|
|
17
|
+
"value": "application/json"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"method": "POST",
|
|
21
|
+
"batchSize": 10,
|
|
22
|
+
"transform": {
|
|
23
|
+
"lang": "lua",
|
|
24
|
+
"body": "request.body = { data = batch }\nreturn request"
|
|
25
|
+
},
|
|
26
|
+
"providerAuth": {
|
|
27
|
+
"tradedesk": {
|
|
28
|
+
"secretKey": "$$SECRET_KEY$$",
|
|
29
|
+
"secretKeyDataProvider": "$$SECRET_KEY_DATA_PROVIDER$$"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"aa6b9b4f5a75459c6433bf50b15ad064"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isBeta": false,
|
|
4
|
+
"friendlyName": "TheTradeDesk Conversion Events",
|
|
5
|
+
"description": "Real time conversion events API \nhttps://api.thetradedesk.com/v3/portal/data/doc/DataConversionEventsApi#parameters-items",
|
|
6
|
+
"logo": "https://cdn.metarouter.io/logo.svg",
|
|
7
|
+
"color": "#F54D44",
|
|
8
|
+
"eventSource": {
|
|
9
|
+
"isAndroidApp": true,
|
|
10
|
+
"isIosApp": true,
|
|
11
|
+
"isWebApp": true
|
|
12
|
+
},
|
|
13
|
+
"inputSchema": "analytics_js",
|
|
14
|
+
"releaseNotes": [
|
|
15
|
+
{
|
|
16
|
+
"date": "2022-11-29T00:00:00.000Z",
|
|
17
|
+
"note": "First iteration of Real-Time Conversion Events API"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"7b65e9947f13ed76e1762e7b4dc6c669"
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "v0.0.1",
|
|
3
|
+
"params": [
|
|
4
|
+
{
|
|
5
|
+
"name": "MERCHANT_ID",
|
|
6
|
+
"exampleValue": "my-merchant-id"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "TRACKER_ID",
|
|
10
|
+
"exampleValue": "my-tracker-id"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "ADVERTISER_ID",
|
|
14
|
+
"exampleValue": "my-advertiser-id"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "PRIVACY_TYPE",
|
|
18
|
+
"exampleValue": "GDPR"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"eventSpecific": {
|
|
22
|
+
"order_completed": {
|
|
23
|
+
"mappings": [
|
|
24
|
+
{
|
|
25
|
+
"inputKey": "properties.total",
|
|
26
|
+
"outputKey": "value"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"inputKey": "input",
|
|
30
|
+
"outputKey": "currency",
|
|
31
|
+
"transforms": [
|
|
32
|
+
{
|
|
33
|
+
"expression": {
|
|
34
|
+
"lang": "lua",
|
|
35
|
+
"body": "return UPPER(input.properties.currency)"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"inputKey": "input",
|
|
42
|
+
"outputKey": "items",
|
|
43
|
+
"transforms": [
|
|
44
|
+
{
|
|
45
|
+
"expression": {
|
|
46
|
+
"lang": "lua",
|
|
47
|
+
"body": "products = MAP(input.properties.products, function(p) \n return {\n item_code = p.sku,\n name = p.name,\n qty = p.quantity,\n price = p.price,\n cat = p.category\n }\n end\n )\n return products"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"global": {
|
|
56
|
+
"enrichments": [
|
|
57
|
+
{
|
|
58
|
+
"staticString": "$$MERCHANT_ID$$",
|
|
59
|
+
"outputKey": "merchant_id"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"staticString": "$$ADVERTISER_ID$$",
|
|
63
|
+
"outputKey": "adv"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"staticString": "$$TRACKER_ID$$",
|
|
67
|
+
"outputKey": "tracker_id"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"mappings": [
|
|
71
|
+
{
|
|
72
|
+
"inputKey": "anonymousId",
|
|
73
|
+
"outputKey": "token"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"inputKey": "originalTimestamp",
|
|
77
|
+
"outputKey": "ts_utc"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"inputKey": "ip",
|
|
81
|
+
"outputKey": "client_ip"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"inputKey": "input",
|
|
85
|
+
"outputKey": "event_name",
|
|
86
|
+
"transforms": [
|
|
87
|
+
{
|
|
88
|
+
"expression": {
|
|
89
|
+
"lang": "lua",
|
|
90
|
+
"body": "-- event name \nif input.event then\n return input.event\nelse \n return input.type\nend"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"inputKey": "input",
|
|
97
|
+
"outputKey": "privacy_settings",
|
|
98
|
+
"transforms": [
|
|
99
|
+
{
|
|
100
|
+
"expression": {
|
|
101
|
+
"body": "-- privacy settings \nis_applicable = false\nprivacy_type = \"$$PRIVACY_TYPE$$\"\nif LOWER(privacy_type) == \"gdpr\" then is_applicable = true end\nprivacy_settings = {{\n privacy_type = privacy_type,\n is_applicable = is_applicable,\n consent_string = true\n}}\nreturn privacy_settings",
|
|
102
|
+
"lang": "lua"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"inputKey": "input",
|
|
109
|
+
"outputKey": "adid",
|
|
110
|
+
"transforms": [
|
|
111
|
+
{
|
|
112
|
+
"expression": {
|
|
113
|
+
"lang": "lua",
|
|
114
|
+
"body": "-- client side tradedesk ID set ID\nttd_id = input.context.providers.theTradeDesk.ttd_id\nif ttd_id\nthen \n return ttd_id\nend"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"inputKey": "input",
|
|
121
|
+
"outputKey": "adid_type",
|
|
122
|
+
"transforms": [
|
|
123
|
+
{
|
|
124
|
+
"expression": {
|
|
125
|
+
"body": "-- client side tradedesk ID set type\nttd_id = input.context.providers.theTradeDesk.ttd_id\nif ttd_id\nthen \n return \"TDID\"\nend",
|
|
126
|
+
"lang": "lua"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"24fd574420dcf051c9eabbae52e8772f"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"params": [
|
|
3
|
+
{
|
|
4
|
+
"name": "SECRET_KEY",
|
|
5
|
+
"exampleValue": "my-secret-key"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "SECRET_KEY_DATA_PROVIDER",
|
|
9
|
+
"exampleValue": "my-secret-key-data-provider"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "ADVERTISER_ID",
|
|
13
|
+
"exampleValue": "my-advertiser-id"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"default": {
|
|
17
|
+
"endpoint": "https://use-data.adsrvr.org/data/advertiser",
|
|
18
|
+
"headers": [
|
|
19
|
+
{
|
|
20
|
+
"key": "Content-Type",
|
|
21
|
+
"value": "application/json"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"method": "POST",
|
|
25
|
+
"batchSize": 100,
|
|
26
|
+
"transform": {
|
|
27
|
+
"lang": "lua",
|
|
28
|
+
"body": "request.body = { \n AdvertiserId = \"$$ADVERTISER_ID$$\",\n Items = batch,\n}\nreturn request"
|
|
29
|
+
},
|
|
30
|
+
"providerAuth": {
|
|
31
|
+
"tradedesk": {
|
|
32
|
+
"secretKey": "$$SECRET_KEY$$",
|
|
33
|
+
"secretKeyDataProvider": "$$SECRET_KEY_DATA_PROVIDER$$"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"77e1e57c8f7e23393b5e4a4c75ff8df3"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"isDraft": false,
|
|
3
|
+
"isBeta": false,
|
|
4
|
+
"friendlyName": "TheTradeDesk Firstparty Advertiser Data",
|
|
5
|
+
"description": "Creates segments with a time to live to be used in different audiences\n\nDocs\nhttps://api.thetradedesk.com/v3/portal/data/doc/post-data-advertiser-firstparty\n\nPlaybook will generate segments anytime we have a TDID in the request.\nSegments Names:\n- Page view: page view | page | page title\n- Order Completed : order completed | product name | product sku\n- Order Completed : order total < 100 \n- Product Added : product added | product name | product sku\n- Product Removed : product removed | product name | product sku\n\nFor order completed events with a total it will categorize the segment in $100 chunks.\nA total of $156 will create a segment named \"order total < 200\"",
|
|
6
|
+
"logo": "https://cdn.metarouter.io/logo.svg",
|
|
7
|
+
"color": "#F54D44",
|
|
8
|
+
"eventSource": {
|
|
9
|
+
"isAndroidApp": true,
|
|
10
|
+
"isIosApp": true,
|
|
11
|
+
"isWebApp": true
|
|
12
|
+
},
|
|
13
|
+
"inputSchema": "analytics_js",
|
|
14
|
+
"releaseNotes": [
|
|
15
|
+
{
|
|
16
|
+
"date": "2022-11-29T00:00:00.000Z",
|
|
17
|
+
"note": "First iteration of Firstparty advertiser data"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"4996f4b2d3d2904cf837d120a664e741"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "v0.0.1",
|
|
3
|
+
"params": [
|
|
4
|
+
{
|
|
5
|
+
"name": "TTL_IN_MINUTES",
|
|
6
|
+
"exampleValue": "43200"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"global": {
|
|
10
|
+
"filters": [
|
|
11
|
+
{
|
|
12
|
+
"byConditions": {
|
|
13
|
+
"action": "allow",
|
|
14
|
+
"when": {
|
|
15
|
+
"stringNotEqual": {
|
|
16
|
+
"inputPath": "context.providers.theTradeDesk.ttd_id",
|
|
17
|
+
"value": ""
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"mappings": [
|
|
24
|
+
{
|
|
25
|
+
"inputKey": "context.providers.theTradeDesk.ttd_id",
|
|
26
|
+
"outputKey": "TDID"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"inputKey": "input",
|
|
30
|
+
"outputKey": "Data",
|
|
31
|
+
"transforms": [
|
|
32
|
+
{
|
|
33
|
+
"expression": {
|
|
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"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
package/index.js
CHANGED
|
@@ -277,6 +277,20 @@ exports.snowflake = {
|
|
|
277
277
|
metadata: require('./.dist/snowflake/metadata.json')
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
+
exports['thetradedesk-conversion-events'] = {
|
|
281
|
+
connectionTemplate: '',
|
|
282
|
+
endpointSchema: require('./.dist/thetradedesk-conversion-events/connection.json'),
|
|
283
|
+
playbook: require('./.dist/thetradedesk-conversion-events/playbook.json'),
|
|
284
|
+
metadata: require('./.dist/thetradedesk-conversion-events/metadata.json')
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
exports['thetradedesk-data-advertiser-firstparty'] = {
|
|
288
|
+
connectionTemplate: '',
|
|
289
|
+
endpointSchema: require('./.dist/thetradedesk-data-advertiser-firstparty/connection.json'),
|
|
290
|
+
playbook: require('./.dist/thetradedesk-data-advertiser-firstparty/playbook.json'),
|
|
291
|
+
metadata: require('./.dist/thetradedesk-data-advertiser-firstparty/metadata.json')
|
|
292
|
+
}
|
|
293
|
+
|
|
280
294
|
exports['twitter-conversions'] = {
|
|
281
295
|
connectionTemplate: connectionSchemas.properties.twitterConversions,
|
|
282
296
|
endpointSchema: require('./.dist/twitter-conversions/connection.json'),
|
|
@@ -502,6 +516,16 @@ exports.etags = {
|
|
|
502
516
|
playbook: require('./.dist/snowflake/playbook.etag.json'),
|
|
503
517
|
kit: require('./.dist/snowflake/kit.etag.json')
|
|
504
518
|
},
|
|
519
|
+
'thetradedesk-conversion-events': {
|
|
520
|
+
endpointSchema: require('./.dist/thetradedesk-conversion-events/connection.etag.json'),
|
|
521
|
+
playbook: require('./.dist/thetradedesk-conversion-events/playbook.etag.json'),
|
|
522
|
+
kit: require('./.dist/thetradedesk-conversion-events/kit.etag.json')
|
|
523
|
+
},
|
|
524
|
+
'thetradedesk-data-advertiser-firstparty': {
|
|
525
|
+
endpointSchema: require('./.dist/thetradedesk-data-advertiser-firstparty/connection.etag.json'),
|
|
526
|
+
playbook: require('./.dist/thetradedesk-data-advertiser-firstparty/playbook.etag.json'),
|
|
527
|
+
kit: require('./.dist/thetradedesk-data-advertiser-firstparty/kit.etag.json')
|
|
528
|
+
},
|
|
505
529
|
'twitter-conversions': {
|
|
506
530
|
endpointSchema: require('./.dist/twitter-conversions/connection.etag.json'),
|
|
507
531
|
playbook: require('./.dist/twitter-conversions/playbook.etag.json'),
|