@segment/action-destinations 3.337.1-staging → 3.337.1-staging.0

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.
Files changed (134) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/braze/index.js.map +1 -1
  3. package/dist/destinations/courier/generated-types.d.ts +4 -0
  4. package/dist/destinations/courier/generated-types.js +3 -0
  5. package/dist/destinations/courier/generated-types.js.map +1 -0
  6. package/dist/destinations/courier/index.d.ts +4 -0
  7. package/dist/destinations/courier/index.js +44 -0
  8. package/dist/destinations/courier/index.js.map +1 -0
  9. package/dist/destinations/courier/postToCourier/generated-types.d.ts +5 -0
  10. package/dist/destinations/courier/postToCourier/generated-types.js +3 -0
  11. package/dist/destinations/courier/postToCourier/generated-types.js.map +1 -0
  12. package/dist/destinations/courier/postToCourier/index.d.ts +5 -0
  13. package/dist/destinations/courier/postToCourier/index.js +35 -0
  14. package/dist/destinations/courier/postToCourier/index.js.map +1 -0
  15. package/dist/destinations/engage/utils/track.d.ts +17 -17
  16. package/dist/destinations/facebook-conversions-api/constants.d.ts +1 -1
  17. package/dist/destinations/facebook-conversions-api/constants.js +1 -1
  18. package/dist/destinations/index.js +5 -0
  19. package/dist/destinations/index.js.map +1 -1
  20. package/dist/destinations/kameleoon/index.js +1 -1
  21. package/dist/destinations/kameleoon/index.js.map +1 -1
  22. package/dist/destinations/klaviyo/properties.js +1 -1
  23. package/dist/destinations/klaviyo/properties.js.map +1 -1
  24. package/dist/destinations/linkedin-conversions/api/index.d.ts +1 -1
  25. package/dist/destinations/linkedin-conversions/api/index.js +23 -13
  26. package/dist/destinations/linkedin-conversions/api/index.js.map +1 -1
  27. package/dist/destinations/linkedin-conversions/constants.d.ts +1 -1
  28. package/dist/destinations/linkedin-conversions/constants.js +1 -1
  29. package/dist/destinations/linkedin-conversions/streamConversion/index.js +1 -1
  30. package/dist/destinations/linkedin-conversions/streamConversion/index.js.map +1 -1
  31. package/dist/destinations/schematic/generated-types.d.ts +3 -0
  32. package/dist/destinations/schematic/generated-types.js +3 -0
  33. package/dist/destinations/schematic/generated-types.js.map +1 -0
  34. package/dist/destinations/schematic/identifyUser/generated-types.d.ts +18 -0
  35. package/dist/destinations/schematic/identifyUser/generated-types.js +3 -0
  36. package/dist/destinations/schematic/identifyUser/generated-types.js.map +1 -0
  37. package/dist/destinations/schematic/identifyUser/index.d.ts +5 -0
  38. package/dist/destinations/schematic/identifyUser/index.js +114 -0
  39. package/dist/destinations/schematic/identifyUser/index.js.map +1 -0
  40. package/dist/destinations/schematic/index.d.ts +4 -0
  41. package/dist/destinations/schematic/index.js +58 -0
  42. package/dist/destinations/schematic/index.js.map +1 -0
  43. package/dist/destinations/schematic/trackEvent/generated-types.d.ts +13 -0
  44. package/dist/destinations/schematic/trackEvent/generated-types.js +3 -0
  45. package/dist/destinations/schematic/trackEvent/generated-types.js.map +1 -0
  46. package/dist/destinations/schematic/trackEvent/index.d.ts +5 -0
  47. package/dist/destinations/schematic/trackEvent/index.js +89 -0
  48. package/dist/destinations/schematic/trackEvent/index.js.map +1 -0
  49. package/dist/destinations/segment/sendGroup/index.js +36 -0
  50. package/dist/destinations/segment/sendGroup/index.js.map +1 -1
  51. package/dist/destinations/segment/sendIdentify/index.js +37 -1
  52. package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
  53. package/dist/destinations/segment/sendPage/index.js +44 -0
  54. package/dist/destinations/segment/sendPage/index.js.map +1 -1
  55. package/dist/destinations/segment/sendScreen/index.js +37 -0
  56. package/dist/destinations/segment/sendScreen/index.js.map +1 -1
  57. package/dist/destinations/segment/sendTrack/index.js +41 -0
  58. package/dist/destinations/segment/sendTrack/index.js.map +1 -1
  59. package/dist/destinations/surveysparrow/createContact/generated-types.d.ts +10 -0
  60. package/dist/destinations/surveysparrow/createContact/generated-types.js +3 -0
  61. package/dist/destinations/surveysparrow/createContact/generated-types.js.map +1 -0
  62. package/dist/destinations/surveysparrow/createContact/index.d.ts +5 -0
  63. package/dist/destinations/surveysparrow/createContact/index.js +105 -0
  64. package/dist/destinations/surveysparrow/createContact/index.js.map +1 -0
  65. package/dist/destinations/surveysparrow/generated-types.d.ts +3 -0
  66. package/dist/destinations/surveysparrow/generated-types.js +3 -0
  67. package/dist/destinations/surveysparrow/generated-types.js.map +1 -0
  68. package/dist/destinations/surveysparrow/index.d.ts +4 -0
  69. package/dist/destinations/surveysparrow/index.js +40 -0
  70. package/dist/destinations/surveysparrow/index.js.map +1 -0
  71. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.d.ts +10 -0
  72. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.js +3 -0
  73. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.js.map +1 -0
  74. package/dist/destinations/surveysparrow/triggerSurvey/index.d.ts +8 -0
  75. package/dist/destinations/surveysparrow/triggerSurvey/index.js +165 -0
  76. package/dist/destinations/surveysparrow/triggerSurvey/index.js.map +1 -0
  77. package/dist/destinations/tiktok-conversions-sandbox/common_fields.d.ts +2 -0
  78. package/dist/destinations/tiktok-conversions-sandbox/common_fields.js +244 -0
  79. package/dist/destinations/tiktok-conversions-sandbox/common_fields.js.map +1 -0
  80. package/dist/destinations/tiktok-conversions-sandbox/formatter.d.ts +3 -0
  81. package/dist/destinations/tiktok-conversions-sandbox/formatter.js +43 -0
  82. package/dist/destinations/tiktok-conversions-sandbox/formatter.js.map +1 -0
  83. package/dist/destinations/tiktok-conversions-sandbox/generated-types.d.ts +4 -0
  84. package/dist/destinations/tiktok-conversions-sandbox/generated-types.js +3 -0
  85. package/dist/destinations/tiktok-conversions-sandbox/generated-types.js.map +1 -0
  86. package/dist/destinations/tiktok-conversions-sandbox/index.d.ts +4 -0
  87. package/dist/destinations/tiktok-conversions-sandbox/index.js +247 -0
  88. package/dist/destinations/tiktok-conversions-sandbox/index.js.map +1 -0
  89. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.d.ts +33 -0
  90. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.js +3 -0
  91. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.js.map +1 -0
  92. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.d.ts +5 -0
  93. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.js +16 -0
  94. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.js.map +1 -0
  95. package/dist/destinations/tiktok-conversions-sandbox/utils.d.ts +4 -0
  96. package/dist/destinations/tiktok-conversions-sandbox/utils.js +65 -0
  97. package/dist/destinations/tiktok-conversions-sandbox/utils.js.map +1 -0
  98. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.d.ts +2 -0
  99. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.js +244 -0
  100. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.js.map +1 -0
  101. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.d.ts +3 -0
  102. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.js +43 -0
  103. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.js.map +1 -0
  104. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.d.ts +4 -0
  105. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.js +3 -0
  106. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.js.map +1 -0
  107. package/dist/destinations/tiktok-offline-conversions-sandbox/index.d.ts +4 -0
  108. package/dist/destinations/tiktok-offline-conversions-sandbox/index.js +251 -0
  109. package/dist/destinations/tiktok-offline-conversions-sandbox/index.js.map +1 -0
  110. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.d.ts +33 -0
  111. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.js +3 -0
  112. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.js.map +1 -0
  113. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.d.ts +5 -0
  114. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.js +16 -0
  115. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.js.map +1 -0
  116. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.d.ts +33 -0
  117. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.js +3 -0
  118. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.js.map +1 -0
  119. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.d.ts +5 -0
  120. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.js +16 -0
  121. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.js.map +1 -0
  122. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.d.ts +33 -0
  123. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.js +3 -0
  124. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.js.map +1 -0
  125. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.d.ts +5 -0
  126. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.js +16 -0
  127. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.js.map +1 -0
  128. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.d.ts +8 -0
  129. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.js +68 -0
  130. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.js.map +1 -0
  131. package/package.json +2 -2
  132. package/dist/destinations/mixpanel/utils.d.ts +0 -13
  133. package/dist/destinations/mixpanel/utils.js +0 -117
  134. package/dist/destinations/mixpanel/utils.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatUserIds = exports.formatPhones = exports.formatEmails = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const formatEmails = (email_addresses) => {
6
+ const result = [];
7
+ if (email_addresses) {
8
+ email_addresses.forEach((email) => {
9
+ result.push(hashAndEncode(email.toLowerCase()));
10
+ });
11
+ }
12
+ return result;
13
+ };
14
+ exports.formatEmails = formatEmails;
15
+ const formatPhones = (phone_numbers) => {
16
+ const result = [];
17
+ if (!phone_numbers)
18
+ return result;
19
+ phone_numbers.forEach((phone) => {
20
+ const validatedPhone = phone.match(/[0-9]{0,14}/g);
21
+ if (validatedPhone === null) {
22
+ throw new Error(`${phone} is not a valid E.164 phone number.`);
23
+ }
24
+ const formattedPhone = `+${phone.replace(/[^0-9]/g, '')}`;
25
+ result.push(hashAndEncode(formattedPhone.substring(0, 15)));
26
+ });
27
+ return result;
28
+ };
29
+ exports.formatPhones = formatPhones;
30
+ function formatUserIds(userIds) {
31
+ const result = [];
32
+ if (userIds) {
33
+ userIds.forEach((userId) => {
34
+ result.push(hashAndEncode(userId.toLowerCase()));
35
+ });
36
+ }
37
+ return result;
38
+ }
39
+ exports.formatUserIds = formatUserIds;
40
+ function hashAndEncode(property) {
41
+ return crypto_1.createHash('sha256').update(property).digest('hex');
42
+ }
43
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions-sandbox/formatter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAK5B,MAAM,YAAY,GAAG,CAAC,eAAqC,EAAY,EAAE;IAC9E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,eAAe,EAAE;QACnB,eAAe,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,YAAY,gBAQxB;AAOM,MAAM,YAAY,GAAG,CAAC,aAAmC,EAAY,EAAE;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAA;IAEjC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;SAC/D;QAED,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA;QAEzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB;AAOD,SAAgB,aAAa,CAAC,OAA6B;IACzD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,MAAc,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AARD,sCAQC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface Settings {
2
+ accessToken: string;
3
+ pixelCode: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions-sandbox/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { DestinationDefinition } from '@segment/actions-core';
2
+ import type { Settings } from './generated-types';
3
+ declare const destination: DestinationDefinition<Settings>;
4
+ export default destination;
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const actions_core_1 = require("@segment/actions-core");
7
+ const reportWebEvent_1 = __importDefault(require("./reportWebEvent"));
8
+ const productProperties = {
9
+ price: {
10
+ '@path': '$.price'
11
+ },
12
+ quantity: {
13
+ '@path': '$.quantity'
14
+ },
15
+ content_category: {
16
+ '@path': '$.category'
17
+ },
18
+ content_id: {
19
+ '@path': '$.product_id'
20
+ },
21
+ content_name: {
22
+ '@path': '$.name'
23
+ },
24
+ brand: {
25
+ '@path': '$.brand'
26
+ }
27
+ };
28
+ const singleProductContents = {
29
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
30
+ contents: {
31
+ '@arrayPath': [
32
+ '$.properties',
33
+ {
34
+ ...productProperties
35
+ }
36
+ ]
37
+ }
38
+ };
39
+ const multiProductContents = {
40
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
41
+ contents: {
42
+ '@arrayPath': [
43
+ '$.properties.products',
44
+ {
45
+ ...productProperties
46
+ }
47
+ ]
48
+ }
49
+ };
50
+ const destination = {
51
+ name: 'Tiktok Conversions Sandbox',
52
+ slug: 'tiktok-conversions-sandbox',
53
+ mode: 'cloud',
54
+ authentication: {
55
+ scheme: 'custom',
56
+ fields: {
57
+ accessToken: {
58
+ label: 'Access Token',
59
+ description: 'Your TikTok Access Token. Please see TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for information on how to generate an access token via the TikTok Ads Manager or API.',
60
+ type: 'string',
61
+ required: true
62
+ },
63
+ pixelCode: {
64
+ label: 'Pixel Code',
65
+ type: 'string',
66
+ description: 'Your TikTok Pixel ID. Please see TikTok’s [Events API documentation](https://ads.tiktok.com/marketing_api/docs?id=1701890979375106) for information on how to find this value.',
67
+ required: true
68
+ }
69
+ },
70
+ testAuthentication: (request, { settings }) => {
71
+ return request('https://business-api.tiktok.com/open_api/v1.3/pixel/track/', {
72
+ method: 'post',
73
+ json: {
74
+ pixel_code: settings.pixelCode,
75
+ event: 'Test Event',
76
+ timestamp: '',
77
+ context: {}
78
+ }
79
+ });
80
+ }
81
+ },
82
+ extendRequest({ settings }) {
83
+ return {
84
+ headers: {
85
+ 'Access-Token': settings.accessToken,
86
+ 'Content-Type': 'application/json'
87
+ }
88
+ };
89
+ },
90
+ presets: [
91
+ {
92
+ name: 'Complete Payment',
93
+ subscribe: 'event = "Payment Completed"',
94
+ partnerAction: 'reportWebEvent',
95
+ mapping: {
96
+ ...multiProductContents,
97
+ event: 'CompletePayment'
98
+ },
99
+ type: 'automatic'
100
+ },
101
+ {
102
+ name: 'Contact',
103
+ subscribe: 'event = "Callback Started"',
104
+ partnerAction: 'reportWebEvent',
105
+ mapping: {
106
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
107
+ event: 'Contact'
108
+ },
109
+ type: 'automatic'
110
+ },
111
+ {
112
+ name: 'Subscribe',
113
+ subscribe: 'event = "Subscription Created"',
114
+ partnerAction: 'reportWebEvent',
115
+ mapping: {
116
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
117
+ event: 'Subscribe'
118
+ },
119
+ type: 'automatic'
120
+ },
121
+ {
122
+ name: 'Submit Form',
123
+ subscribe: 'event = "Form Submitted"',
124
+ partnerAction: 'reportWebEvent',
125
+ mapping: {
126
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
127
+ event: 'SubmitForm'
128
+ },
129
+ type: 'automatic'
130
+ },
131
+ {
132
+ name: 'Page View',
133
+ subscribe: 'type="page"',
134
+ partnerAction: 'reportWebEvent',
135
+ mapping: {
136
+ ...multiProductContents,
137
+ event: 'PageView'
138
+ },
139
+ type: 'automatic'
140
+ },
141
+ {
142
+ name: 'View Content',
143
+ subscribe: 'event = "Product Viewed"',
144
+ partnerAction: 'reportWebEvent',
145
+ mapping: {
146
+ ...singleProductContents,
147
+ event: 'ViewContent'
148
+ },
149
+ type: 'automatic'
150
+ },
151
+ {
152
+ name: 'Click Button',
153
+ subscribe: 'event = "Product Clicked"',
154
+ partnerAction: 'reportWebEvent',
155
+ mapping: {
156
+ ...singleProductContents,
157
+ event: 'ClickButton'
158
+ },
159
+ type: 'automatic'
160
+ },
161
+ {
162
+ name: 'Search',
163
+ subscribe: 'event = "Products Searched"',
164
+ partnerAction: 'reportWebEvent',
165
+ mapping: {
166
+ ...singleProductContents,
167
+ event: 'Search'
168
+ },
169
+ type: 'automatic'
170
+ },
171
+ {
172
+ name: 'Add to Wishlist',
173
+ subscribe: 'event = "Product Added to Wishlist"',
174
+ partnerAction: 'reportWebEvent',
175
+ mapping: {
176
+ ...singleProductContents,
177
+ event: 'AddToWishlist'
178
+ },
179
+ type: 'automatic'
180
+ },
181
+ {
182
+ name: 'Add to Cart',
183
+ subscribe: 'event = "Product Added"',
184
+ partnerAction: 'reportWebEvent',
185
+ mapping: {
186
+ ...singleProductContents,
187
+ event: 'AddToCart'
188
+ },
189
+ type: 'automatic'
190
+ },
191
+ {
192
+ name: 'Initiate Checkout',
193
+ subscribe: 'event = "Checkout Started"',
194
+ partnerAction: 'reportWebEvent',
195
+ mapping: {
196
+ ...multiProductContents,
197
+ event: 'InitiateCheckout'
198
+ },
199
+ type: 'automatic'
200
+ },
201
+ {
202
+ name: 'Add Payment Info',
203
+ subscribe: 'event = "Payment Info Entered"',
204
+ partnerAction: 'reportWebEvent',
205
+ mapping: {
206
+ ...multiProductContents,
207
+ event: 'AddPaymentInfo'
208
+ },
209
+ type: 'automatic'
210
+ },
211
+ {
212
+ name: 'Place an Order',
213
+ subscribe: 'event = "Order Completed"',
214
+ partnerAction: 'reportWebEvent',
215
+ mapping: {
216
+ ...multiProductContents,
217
+ event: 'PlaceAnOrder'
218
+ },
219
+ type: 'automatic'
220
+ },
221
+ {
222
+ name: 'Download',
223
+ subscribe: 'event = "Download Link Clicked"',
224
+ partnerAction: 'reportWebEvent',
225
+ mapping: {
226
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
227
+ event: 'Download'
228
+ },
229
+ type: 'automatic'
230
+ },
231
+ {
232
+ name: 'Complete Registration',
233
+ subscribe: 'event = "Signed Up"',
234
+ partnerAction: 'reportWebEvent',
235
+ mapping: {
236
+ ...actions_core_1.defaultValues(reportWebEvent_1.default.fields),
237
+ event: 'CompleteRegistration'
238
+ },
239
+ type: 'automatic'
240
+ }
241
+ ],
242
+ actions: {
243
+ reportWebEvent: reportWebEvent_1.default
244
+ }
245
+ };
246
+ exports.default = destination;
247
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions-sandbox/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface Payload {
2
+ event: string;
3
+ event_id?: string;
4
+ timestamp?: string;
5
+ phone_number?: string[];
6
+ email?: string[];
7
+ order_id?: string;
8
+ shop_id?: string;
9
+ external_id?: string[];
10
+ ttclid?: string;
11
+ ttp?: string;
12
+ lead_id?: string;
13
+ locale?: string;
14
+ url?: string;
15
+ referrer?: string;
16
+ ip?: string;
17
+ user_agent?: string;
18
+ contents?: {
19
+ price?: number;
20
+ quantity?: number;
21
+ content_category?: string;
22
+ content_id?: string;
23
+ content_name?: string;
24
+ brand?: string;
25
+ }[];
26
+ content_type?: string;
27
+ currency?: string;
28
+ value?: number;
29
+ description?: string;
30
+ query?: string;
31
+ limited_data_use?: boolean;
32
+ test_event_code?: string;
33
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { ActionDefinition } from '@segment/actions-core';
2
+ import type { Settings } from '../generated-types';
3
+ import type { Payload } from './generated-types';
4
+ declare const action: ActionDefinition<Settings, Payload>;
5
+ export default action;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_fields_1 = require("../common_fields");
4
+ const utils_1 = require("../utils");
5
+ const action = {
6
+ title: 'Report Web Event',
7
+ description: 'Report Web events directly to TikTok. Data shared can power TikTok solutions like dynamic product ads, custom targeting, campaign optimization and attribution.',
8
+ fields: {
9
+ ...common_fields_1.commonFields
10
+ },
11
+ perform: (request, { payload, settings }) => {
12
+ return utils_1.performWebEvent(request, settings, payload);
13
+ }
14
+ };
15
+ exports.default = action;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-conversions-sandbox/reportWebEvent/index.ts"],"names":[],"mappings":";;AAGA,oDAA+C;AAC/C,oCAA0C;AAE1C,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,iKAAiK;IACnK,MAAM,EAAE;QACN,GAAG,4BAAY;KAChB;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,OAAO,uBAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Settings } from './generated-types';
3
+ import { Payload } from './reportWebEvent/generated-types';
4
+ export declare function performWebEvent(request: RequestClient, settings: Settings, payload: Payload): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performWebEvent = void 0;
4
+ const formatter_1 = require("./formatter");
5
+ function performWebEvent(request, settings, payload) {
6
+ const phone_numbers = formatter_1.formatPhones(payload.phone_number);
7
+ const emails = formatter_1.formatEmails(payload.email);
8
+ const userIds = formatter_1.formatUserIds(payload.external_id);
9
+ let payloadUrl, urlTtclid;
10
+ if (payload.url) {
11
+ try {
12
+ payloadUrl = new URL(payload.url);
13
+ }
14
+ catch (error) {
15
+ }
16
+ }
17
+ if (payloadUrl)
18
+ urlTtclid = payloadUrl.searchParams.get('ttclid');
19
+ return request('https://business-api.tiktok.com/open_api/v1.3/event/track/', {
20
+ method: 'post',
21
+ json: {
22
+ event_source: 'web',
23
+ event_source_id: settings.pixelCode,
24
+ partner_name: 'Segment',
25
+ data: [
26
+ {
27
+ event: payload.event,
28
+ event_time: payload.timestamp
29
+ ? Math.floor(new Date(payload.timestamp).getTime() / 1000)
30
+ : Math.floor(new Date().getTime() / 1000),
31
+ event_id: payload.event_id ? `${payload.event_id}` : undefined,
32
+ user: {
33
+ ttclid: payload.ttclid ? payload.ttclid : urlTtclid ? urlTtclid : undefined,
34
+ external_id: userIds,
35
+ phone: phone_numbers,
36
+ email: emails,
37
+ lead_id: payload.lead_id ? payload.lead_id : undefined,
38
+ ttp: payload.ttp ? payload.ttp : undefined,
39
+ ip: payload.ip ? payload.ip : undefined,
40
+ user_agent: payload.user_agent ? payload.user_agent : undefined,
41
+ locale: payload.locale ? payload.locale : undefined
42
+ },
43
+ properties: {
44
+ contents: payload.contents ? payload.contents : [],
45
+ content_type: payload.content_type ? payload.content_type : undefined,
46
+ currency: payload.currency ? payload.currency : undefined,
47
+ value: payload.value ? payload.value : undefined,
48
+ query: payload.query ? payload.query : undefined,
49
+ description: payload.description ? payload.description : undefined,
50
+ order_id: payload.order_id ? payload.order_id : undefined,
51
+ shop_id: payload.shop_id ? payload.shop_id : undefined
52
+ },
53
+ page: {
54
+ url: payload.url ? payload.url : undefined,
55
+ referrer: payload.referrer ? payload.referrer : undefined
56
+ },
57
+ limited_data_use: payload.limited_data_use ? payload.limited_data_use : false,
58
+ test_event_code: payload.test_event_code ? payload.test_event_code : undefined
59
+ }
60
+ ]
61
+ }
62
+ });
63
+ }
64
+ exports.performWebEvent = performWebEvent;
65
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-conversions-sandbox/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { InputField } from '@segment/actions-core';
2
+ export declare const commonFields: Record<string, InputField>;