@segment/action-destinations 3.337.0-staging.1 → 3.337.1

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 (193) hide show
  1. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.d.ts +1 -0
  2. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js +184 -0
  3. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js.map +1 -0
  4. package/dist/destinations/courier/generated-types.d.ts +4 -0
  5. package/dist/destinations/courier/generated-types.js +3 -0
  6. package/dist/destinations/courier/generated-types.js.map +1 -0
  7. package/dist/destinations/courier/index.d.ts +4 -0
  8. package/dist/destinations/courier/index.js +44 -0
  9. package/dist/destinations/courier/index.js.map +1 -0
  10. package/dist/destinations/courier/postToCourier/generated-types.d.ts +5 -0
  11. package/dist/destinations/courier/postToCourier/generated-types.js +3 -0
  12. package/dist/destinations/courier/postToCourier/generated-types.js.map +1 -0
  13. package/dist/destinations/courier/postToCourier/index.d.ts +5 -0
  14. package/dist/destinations/courier/postToCourier/index.js +35 -0
  15. package/dist/destinations/courier/postToCourier/index.js.map +1 -0
  16. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +2 -5
  17. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +18 -98
  18. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +1 -1
  19. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +2 -0
  20. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  21. package/dist/destinations/engage/utils/track.d.ts +17 -17
  22. package/dist/destinations/facebook-conversions-api/constants.d.ts +1 -1
  23. package/dist/destinations/facebook-conversions-api/constants.js +1 -1
  24. package/dist/destinations/index.js +5 -0
  25. package/dist/destinations/index.js.map +1 -1
  26. package/dist/destinations/kameleoon/index.js +1 -1
  27. package/dist/destinations/kameleoon/index.js.map +1 -1
  28. package/dist/destinations/klaviyo/properties.js +1 -1
  29. package/dist/destinations/klaviyo/properties.js.map +1 -1
  30. package/dist/destinations/klaviyo/removeProfileToList/generated-types.d.ts +4 -0
  31. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js +3 -0
  32. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js.map +1 -0
  33. package/dist/destinations/klaviyo/removeProfileToList/index.d.ts +5 -0
  34. package/dist/destinations/klaviyo/removeProfileToList/index.js +43 -0
  35. package/dist/destinations/klaviyo/removeProfileToList/index.js.map +1 -0
  36. package/dist/destinations/mixpanel/utils.d.ts +13 -0
  37. package/dist/destinations/mixpanel/utils.js +117 -0
  38. package/dist/destinations/mixpanel/utils.js.map +1 -0
  39. package/dist/destinations/movable-ink/categoryView/generated-types.d.ts +22 -0
  40. package/dist/destinations/movable-ink/categoryView/generated-types.js +3 -0
  41. package/dist/destinations/movable-ink/categoryView/generated-types.js.map +1 -0
  42. package/dist/destinations/movable-ink/categoryView/index.d.ts +5 -0
  43. package/dist/destinations/movable-ink/categoryView/index.js +43 -0
  44. package/dist/destinations/movable-ink/categoryView/index.js.map +1 -0
  45. package/dist/destinations/movable-ink/conversion/generated-types.d.ts +20 -0
  46. package/dist/destinations/movable-ink/conversion/generated-types.js +3 -0
  47. package/dist/destinations/movable-ink/conversion/generated-types.js.map +1 -0
  48. package/dist/destinations/movable-ink/conversion/index.d.ts +5 -0
  49. package/dist/destinations/movable-ink/conversion/index.js +45 -0
  50. package/dist/destinations/movable-ink/conversion/index.js.map +1 -0
  51. package/dist/destinations/movable-ink/fields.d.ts +21 -0
  52. package/dist/destinations/movable-ink/fields.js +236 -0
  53. package/dist/destinations/movable-ink/fields.js.map +1 -0
  54. package/dist/destinations/movable-ink/identify/generated-types.d.ts +7 -0
  55. package/dist/destinations/movable-ink/identify/generated-types.js +3 -0
  56. package/dist/destinations/movable-ink/identify/generated-types.js.map +1 -0
  57. package/dist/destinations/movable-ink/identify/index.d.ts +5 -0
  58. package/dist/destinations/movable-ink/identify/index.js +32 -0
  59. package/dist/destinations/movable-ink/identify/index.js.map +1 -0
  60. package/dist/destinations/movable-ink/productAdded/generated-types.d.ts +22 -0
  61. package/dist/destinations/movable-ink/productAdded/generated-types.js +3 -0
  62. package/dist/destinations/movable-ink/productAdded/generated-types.js.map +1 -0
  63. package/dist/destinations/movable-ink/productAdded/index.d.ts +5 -0
  64. package/dist/destinations/movable-ink/productAdded/index.js +43 -0
  65. package/dist/destinations/movable-ink/productAdded/index.js.map +1 -0
  66. package/dist/destinations/movable-ink/productViewed/generated-types.d.ts +21 -0
  67. package/dist/destinations/movable-ink/productViewed/generated-types.js +3 -0
  68. package/dist/destinations/movable-ink/productViewed/generated-types.js.map +1 -0
  69. package/dist/destinations/movable-ink/productViewed/index.d.ts +5 -0
  70. package/dist/destinations/movable-ink/productViewed/index.js +43 -0
  71. package/dist/destinations/movable-ink/productViewed/index.js.map +1 -0
  72. package/dist/destinations/movable-ink/search/generated-types.d.ts +12 -0
  73. package/dist/destinations/movable-ink/search/generated-types.js +3 -0
  74. package/dist/destinations/movable-ink/search/generated-types.js.map +1 -0
  75. package/dist/destinations/movable-ink/search/index.d.ts +5 -0
  76. package/dist/destinations/movable-ink/search/index.js +43 -0
  77. package/dist/destinations/movable-ink/search/index.js.map +1 -0
  78. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.d.ts +25 -0
  79. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js +3 -0
  80. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js.map +1 -0
  81. package/dist/destinations/movable-ink/sendCustomEvent/index.d.ts +5 -0
  82. package/dist/destinations/movable-ink/sendCustomEvent/index.js +48 -0
  83. package/dist/destinations/movable-ink/sendCustomEvent/index.js.map +1 -0
  84. package/dist/destinations/schematic/generated-types.d.ts +3 -0
  85. package/dist/destinations/schematic/generated-types.js +3 -0
  86. package/dist/destinations/schematic/generated-types.js.map +1 -0
  87. package/dist/destinations/schematic/identifyUser/generated-types.d.ts +18 -0
  88. package/dist/destinations/schematic/identifyUser/generated-types.js +3 -0
  89. package/dist/destinations/schematic/identifyUser/generated-types.js.map +1 -0
  90. package/dist/destinations/schematic/identifyUser/index.d.ts +5 -0
  91. package/dist/destinations/schematic/identifyUser/index.js +114 -0
  92. package/dist/destinations/schematic/identifyUser/index.js.map +1 -0
  93. package/dist/destinations/schematic/index.d.ts +4 -0
  94. package/dist/destinations/schematic/index.js +58 -0
  95. package/dist/destinations/schematic/index.js.map +1 -0
  96. package/dist/destinations/schematic/trackEvent/generated-types.d.ts +13 -0
  97. package/dist/destinations/schematic/trackEvent/generated-types.js +3 -0
  98. package/dist/destinations/schematic/trackEvent/generated-types.js.map +1 -0
  99. package/dist/destinations/schematic/trackEvent/index.d.ts +5 -0
  100. package/dist/destinations/schematic/trackEvent/index.js +89 -0
  101. package/dist/destinations/schematic/trackEvent/index.js.map +1 -0
  102. package/dist/destinations/segment/sendGroup/index.js +36 -0
  103. package/dist/destinations/segment/sendGroup/index.js.map +1 -1
  104. package/dist/destinations/segment/sendIdentify/index.js +37 -1
  105. package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
  106. package/dist/destinations/segment/sendPage/index.js +44 -0
  107. package/dist/destinations/segment/sendPage/index.js.map +1 -1
  108. package/dist/destinations/segment/sendScreen/index.js +37 -0
  109. package/dist/destinations/segment/sendScreen/index.js.map +1 -1
  110. package/dist/destinations/segment/sendTrack/index.js +41 -0
  111. package/dist/destinations/segment/sendTrack/index.js.map +1 -1
  112. package/dist/destinations/surveysparrow/createContact/generated-types.d.ts +10 -0
  113. package/dist/destinations/surveysparrow/createContact/generated-types.js +3 -0
  114. package/dist/destinations/surveysparrow/createContact/generated-types.js.map +1 -0
  115. package/dist/destinations/surveysparrow/createContact/index.d.ts +5 -0
  116. package/dist/destinations/surveysparrow/createContact/index.js +105 -0
  117. package/dist/destinations/surveysparrow/createContact/index.js.map +1 -0
  118. package/dist/destinations/surveysparrow/generated-types.d.ts +3 -0
  119. package/dist/destinations/surveysparrow/generated-types.js +3 -0
  120. package/dist/destinations/surveysparrow/generated-types.js.map +1 -0
  121. package/dist/destinations/surveysparrow/index.d.ts +4 -0
  122. package/dist/destinations/surveysparrow/index.js +40 -0
  123. package/dist/destinations/surveysparrow/index.js.map +1 -0
  124. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.d.ts +10 -0
  125. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.js +3 -0
  126. package/dist/destinations/surveysparrow/triggerSurvey/generated-types.js.map +1 -0
  127. package/dist/destinations/surveysparrow/triggerSurvey/index.d.ts +8 -0
  128. package/dist/destinations/surveysparrow/triggerSurvey/index.js +165 -0
  129. package/dist/destinations/surveysparrow/triggerSurvey/index.js.map +1 -0
  130. package/dist/destinations/tiktok-conversions-sandbox/common_fields.d.ts +2 -0
  131. package/dist/destinations/tiktok-conversions-sandbox/common_fields.js +244 -0
  132. package/dist/destinations/tiktok-conversions-sandbox/common_fields.js.map +1 -0
  133. package/dist/destinations/tiktok-conversions-sandbox/formatter.d.ts +3 -0
  134. package/dist/destinations/tiktok-conversions-sandbox/formatter.js +43 -0
  135. package/dist/destinations/tiktok-conversions-sandbox/formatter.js.map +1 -0
  136. package/dist/destinations/tiktok-conversions-sandbox/generated-types.d.ts +4 -0
  137. package/dist/destinations/tiktok-conversions-sandbox/generated-types.js +3 -0
  138. package/dist/destinations/tiktok-conversions-sandbox/generated-types.js.map +1 -0
  139. package/dist/destinations/tiktok-conversions-sandbox/index.d.ts +4 -0
  140. package/dist/destinations/tiktok-conversions-sandbox/index.js +247 -0
  141. package/dist/destinations/tiktok-conversions-sandbox/index.js.map +1 -0
  142. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.d.ts +33 -0
  143. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.js +3 -0
  144. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/generated-types.js.map +1 -0
  145. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.d.ts +5 -0
  146. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.js +16 -0
  147. package/dist/destinations/tiktok-conversions-sandbox/reportWebEvent/index.js.map +1 -0
  148. package/dist/destinations/tiktok-conversions-sandbox/utils.d.ts +4 -0
  149. package/dist/destinations/tiktok-conversions-sandbox/utils.js +65 -0
  150. package/dist/destinations/tiktok-conversions-sandbox/utils.js.map +1 -0
  151. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.d.ts +2 -0
  152. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.js +244 -0
  153. package/dist/destinations/tiktok-offline-conversions-sandbox/common_fields.js.map +1 -0
  154. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.d.ts +3 -0
  155. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.js +43 -0
  156. package/dist/destinations/tiktok-offline-conversions-sandbox/formatter.js.map +1 -0
  157. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.d.ts +4 -0
  158. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.js +3 -0
  159. package/dist/destinations/tiktok-offline-conversions-sandbox/generated-types.js.map +1 -0
  160. package/dist/destinations/tiktok-offline-conversions-sandbox/index.d.ts +4 -0
  161. package/dist/destinations/tiktok-offline-conversions-sandbox/index.js +251 -0
  162. package/dist/destinations/tiktok-offline-conversions-sandbox/index.js.map +1 -0
  163. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.d.ts +33 -0
  164. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.js +3 -0
  165. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/generated-types.js.map +1 -0
  166. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.d.ts +5 -0
  167. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.js +16 -0
  168. package/dist/destinations/tiktok-offline-conversions-sandbox/reportOfflineEvent/index.js.map +1 -0
  169. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.d.ts +33 -0
  170. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.js +3 -0
  171. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/generated-types.js.map +1 -0
  172. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.d.ts +5 -0
  173. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.js +16 -0
  174. package/dist/destinations/tiktok-offline-conversions-sandbox/trackNonPaymentOfflineConversion/index.js.map +1 -0
  175. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.d.ts +33 -0
  176. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.js +3 -0
  177. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/generated-types.js.map +1 -0
  178. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.d.ts +5 -0
  179. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.js +16 -0
  180. package/dist/destinations/tiktok-offline-conversions-sandbox/trackPaymentOfflineConversion/index.js.map +1 -0
  181. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.d.ts +8 -0
  182. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.js +68 -0
  183. package/dist/destinations/tiktok-offline-conversions-sandbox/utils.js.map +1 -0
  184. package/dist/destinations/trackey/group.types.d.ts +11 -0
  185. package/dist/destinations/trackey/group.types.js +3 -0
  186. package/dist/destinations/trackey/group.types.js.map +1 -0
  187. package/dist/destinations/trackey/identify.types.d.ts +11 -0
  188. package/dist/destinations/trackey/identify.types.js +3 -0
  189. package/dist/destinations/trackey/identify.types.js.map +1 -0
  190. package/dist/destinations/trackey/track.types.d.ts +12 -0
  191. package/dist/destinations/trackey/track.types.js +3 -0
  192. package/dist/destinations/trackey/track.types.js.map +1 -0
  193. package/package.json +3 -3
@@ -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>;
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commonFields = void 0;
4
+ exports.commonFields = {
5
+ event: {
6
+ label: 'Event Name',
7
+ type: 'string',
8
+ required: true,
9
+ description: 'Conversion event name. Please refer to the "Offline Standard Events" section on in TikTok’s [Events API 2.0 documentation](https://business-api.tiktok.com/portal/docs?id=1771101186666498) for accepted event names.'
10
+ },
11
+ event_id: {
12
+ label: 'Event ID',
13
+ type: 'string',
14
+ description: 'Any hashed ID that can identify a unique user/session.',
15
+ default: {
16
+ '@path': '$.messageId'
17
+ }
18
+ },
19
+ timestamp: {
20
+ label: 'Event Timestamp',
21
+ type: 'string',
22
+ description: 'Timestamp that the event took place, in ISO 8601 format.',
23
+ default: {
24
+ '@path': '$.timestamp'
25
+ }
26
+ },
27
+ phone_numbers: {
28
+ label: 'Phone Number',
29
+ description: 'A single phone number or array of phone numbers in E.164 standard format. Segment will hash this value before sending to TikTok. At least one phone number value is required if both Email and External ID fields are empty.',
30
+ type: 'string',
31
+ multiple: true,
32
+ default: {
33
+ '@if': {
34
+ exists: { '@path': '$.properties.phone' },
35
+ then: { '@path': '$.properties.phone' },
36
+ else: { '@path': '$.context.traits.phone' }
37
+ }
38
+ }
39
+ },
40
+ email_addresses: {
41
+ label: 'Email',
42
+ description: 'A single email address or an array of email addresses. Segment will hash this value before sending to TikTok. At least one email value is required if both Phone Number and External ID fields are empty.',
43
+ type: 'string',
44
+ multiple: true,
45
+ default: {
46
+ '@if': {
47
+ exists: { '@path': '$.properties.email' },
48
+ then: { '@path': '$.properties.email' },
49
+ else: { '@path': '$.context.traits.email' }
50
+ }
51
+ }
52
+ },
53
+ order_id: {
54
+ label: 'Order ID',
55
+ type: 'string',
56
+ description: 'Order ID of the transaction.',
57
+ default: {
58
+ '@path': '$.properties.order_id'
59
+ }
60
+ },
61
+ shop_id: {
62
+ label: 'Shop ID',
63
+ type: 'string',
64
+ description: 'Shop ID of the transaction.',
65
+ default: {
66
+ '@path': '$.properties.shop_id'
67
+ }
68
+ },
69
+ external_ids: {
70
+ label: 'External ID',
71
+ description: 'Uniquely identifies the user who triggered the conversion event. Segment will hash this value before sending to TikTok. TikTok Offline Conversions Destination supports both string and string[] types for sending external ID(s). At least one external ID value is required if both Email and Phone Number fields are empty.',
72
+ type: 'string',
73
+ multiple: true,
74
+ default: {
75
+ '@if': {
76
+ exists: { '@path': '$.userId' },
77
+ then: { '@path': '$.userId' },
78
+ else: { '@path': '$.anonymousId' }
79
+ }
80
+ }
81
+ },
82
+ ttclid: {
83
+ label: 'TikTok Click ID',
84
+ description: 'The value of the ttclid used to match website visitor events with TikTok ads. The ttclid is valid for 7 days. See [Set up ttclid](https://ads.tiktok.com/marketing_api/docs?rid=4eezrhr6lg4&id=1681728034437121) for details.',
85
+ type: 'string',
86
+ default: {
87
+ '@if': {
88
+ exists: { '@path': '$.properties.ttclid' },
89
+ then: { '@path': '$.properties.ttclid' },
90
+ else: { '@path': '$.integrations.TikTok Offline Conversions.ttclid' }
91
+ }
92
+ }
93
+ },
94
+ ttp: {
95
+ label: 'TikTok Cookie ID',
96
+ description: 'TikTok Cookie ID. If you also use Pixel SDK and have enabled cookies, Pixel SDK automatically saves a unique identifier in the `_ttp` cookie. The value of `_ttp` is used to match website visitor events with TikTok ads. You can extract the value of `_ttp` and attach the value here. To learn more about the `ttp` parameter, refer to [Events API 2.0 - Send TikTok Cookie](https://ads.tiktok.com/marketing_api/docs?id=%201771100936446977) (`_ttp`).',
97
+ type: 'string',
98
+ default: {
99
+ '@if': {
100
+ exists: { '@path': '$.properties.ttp' },
101
+ then: { '@path': '$.properties.ttp' },
102
+ else: { '@path': '$.integrations.TikTok Offline Conversions.ttp' }
103
+ }
104
+ }
105
+ },
106
+ lead_id: {
107
+ label: 'TikTok Lead ID',
108
+ description: 'ID of TikTok leads. Every lead will have its own lead_id when exported from TikTok. This feature is in Beta. Please contact your TikTok representative to inquire regarding availability',
109
+ type: 'string',
110
+ default: { '@path': '$.properties.lead_id' }
111
+ },
112
+ locale: {
113
+ label: 'Locale',
114
+ description: 'The BCP 47 language identifier. For reference, refer to the [IETF BCP 47 standardized code](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).',
115
+ type: 'string',
116
+ default: {
117
+ '@path': '$.context.locale'
118
+ }
119
+ },
120
+ url: {
121
+ label: 'Page URL',
122
+ type: 'string',
123
+ description: 'The page URL where the conversion event took place.',
124
+ default: {
125
+ '@path': '$.context.page.url'
126
+ }
127
+ },
128
+ referrer: {
129
+ label: 'Page Referrer',
130
+ type: 'string',
131
+ description: 'The page referrer.',
132
+ default: {
133
+ '@path': '$.context.page.referrer'
134
+ }
135
+ },
136
+ ip: {
137
+ label: 'IP Address',
138
+ type: 'string',
139
+ description: 'IP address of the browser.',
140
+ default: {
141
+ '@path': '$.context.ip'
142
+ }
143
+ },
144
+ user_agent: {
145
+ label: 'User Agent',
146
+ type: 'string',
147
+ description: 'User agent from the user’s device.',
148
+ default: {
149
+ '@path': '$.context.userAgent'
150
+ }
151
+ },
152
+ contents: {
153
+ label: 'Contents',
154
+ type: 'object',
155
+ multiple: true,
156
+ description: 'Related item details for the event.',
157
+ properties: {
158
+ price: {
159
+ label: 'Price',
160
+ description: 'Price of the item.',
161
+ type: 'number'
162
+ },
163
+ quantity: {
164
+ label: 'Quantity',
165
+ description: 'Number of items.',
166
+ type: 'number'
167
+ },
168
+ content_category: {
169
+ label: 'Content Category',
170
+ description: 'Category of the product item.',
171
+ type: 'string'
172
+ },
173
+ content_id: {
174
+ label: 'Content ID',
175
+ description: 'ID of the product item.',
176
+ type: 'string'
177
+ },
178
+ content_name: {
179
+ label: 'Content Name',
180
+ description: 'Name of the product item.',
181
+ type: 'string'
182
+ },
183
+ brand: {
184
+ label: 'Brand',
185
+ description: 'Brand name of the product item.',
186
+ type: 'string'
187
+ }
188
+ }
189
+ },
190
+ content_type: {
191
+ label: 'Content Type',
192
+ description: 'Type of the product item. When the `content_id` in the `Contents` field is specified as a `sku_id`, set this field to `product`. When the `content_id` in the `Contents` field is specified as an `item_group_id`, set this field to `product_group`.',
193
+ type: 'string',
194
+ choices: ['product', 'product_group'],
195
+ default: 'product'
196
+ },
197
+ currency: {
198
+ label: 'Currency',
199
+ type: 'string',
200
+ description: 'Currency for the value specified as ISO 4217 code.',
201
+ default: {
202
+ '@path': '$.properties.currency'
203
+ }
204
+ },
205
+ value: {
206
+ label: 'Value',
207
+ type: 'number',
208
+ description: 'Value of the order or items sold.',
209
+ default: {
210
+ '@if': {
211
+ exists: { '@path': '$.properties.value' },
212
+ then: { '@path': '$.properties.value' },
213
+ else: { '@path': '$.properties.revenue' }
214
+ }
215
+ }
216
+ },
217
+ description: {
218
+ label: 'Description',
219
+ type: 'string',
220
+ description: 'A string description of the web event.'
221
+ },
222
+ query: {
223
+ label: 'Query',
224
+ type: 'string',
225
+ description: 'The text string that was searched for.',
226
+ default: {
227
+ '@path': '$.properties.query'
228
+ }
229
+ },
230
+ limited_data_use: {
231
+ label: 'Limited Data Use',
232
+ type: 'boolean',
233
+ description: 'Use this field to flag an event for limited data processing. TikTok will recognize this parameter as a request for limited data processing, and will limit its processing activities accordingly if the event shared occurred in an eligible location. To learn more about the Limited Data Use feature, refer to [Events API 2.0 - Limited Data Use](https://ads.tiktok.com/marketing_api/docs?id=1771101204435970).',
234
+ default: {
235
+ '@path': '$.properties.limited_data_use'
236
+ }
237
+ },
238
+ test_event_code: {
239
+ label: 'Test Event Code',
240
+ type: 'string',
241
+ description: 'Use this field to specify that events should be test events rather than actual traffic. You can find your Test Event Code in your TikTok Events Manager under the "Test Event" tab. You\'ll want to remove your Test Event Code when sending real traffic through this integration.'
242
+ }
243
+ };
244
+ //# sourceMappingURL=common_fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common_fields.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions-sandbox/common_fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const formatEmails: (email_addresses: string[] | undefined) => string[];
2
+ export declare const formatPhones: (phone_numbers: string[] | undefined) => string[];
3
+ export declare function formatUserIds(userIds: string[] | undefined): string[];
@@ -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-offline-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
+ eventSetID: 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-offline-conversions-sandbox/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { 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,251 @@
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 trackPaymentOfflineConversion_1 = __importDefault(require("./trackPaymentOfflineConversion"));
8
+ const trackNonPaymentOfflineConversion_1 = __importDefault(require("./trackNonPaymentOfflineConversion"));
9
+ const reportOfflineEvent_1 = __importDefault(require("./reportOfflineEvent"));
10
+ const productProperties = {
11
+ price: {
12
+ '@path': '$.price'
13
+ },
14
+ quantity: {
15
+ '@path': '$.quantity'
16
+ },
17
+ content_category: {
18
+ '@path': '$.category'
19
+ },
20
+ content_id: {
21
+ '@path': '$.product_id'
22
+ },
23
+ content_name: {
24
+ '@path': '$.name'
25
+ },
26
+ brand: {
27
+ '@path': '$.brand'
28
+ }
29
+ };
30
+ const singleProductContents = {
31
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
32
+ contents: {
33
+ '@arrayPath': [
34
+ '$.properties',
35
+ {
36
+ ...productProperties
37
+ }
38
+ ]
39
+ }
40
+ };
41
+ const multiProductContents = {
42
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
43
+ contents: {
44
+ '@arrayPath': [
45
+ '$.properties.products',
46
+ {
47
+ ...productProperties
48
+ }
49
+ ]
50
+ }
51
+ };
52
+ const destination = {
53
+ name: 'TikTok Offline Conversions Sandbox',
54
+ slug: 'actions-tiktok-offline-conversions-sandbox',
55
+ mode: 'cloud',
56
+ authentication: {
57
+ scheme: 'custom',
58
+ fields: {
59
+ accessToken: {
60
+ label: 'Access Token',
61
+ description: 'Your TikTok Access Token. Please see TikTok’s [Events API 2.0 documentation](https://business-api.tiktok.com/portal/docs?id=1771101130925058) for information on how to generate an access token via the TikTok Ads Manager or API.',
62
+ type: 'string',
63
+ required: true
64
+ },
65
+ eventSetID: {
66
+ label: 'Event Set ID',
67
+ type: 'string',
68
+ description: 'Your TikTok Offline Event Set ID. Please see TikTok’s [Events API 2.0 documentation](https://business-api.tiktok.com/portal/docs?id=1771101027431425) for information on how to find this value.',
69
+ required: true
70
+ }
71
+ },
72
+ testAuthentication: (request, { settings }) => {
73
+ return request('https://business-api.tiktok.com/open_api/v1.3/offline/track/', {
74
+ method: 'post',
75
+ json: {
76
+ event_set_id: settings.eventSetID,
77
+ event: 'Test Event',
78
+ timestamp: '',
79
+ context: {}
80
+ }
81
+ });
82
+ }
83
+ },
84
+ extendRequest({ settings }) {
85
+ return {
86
+ headers: {
87
+ 'Access-Token': settings.accessToken,
88
+ 'Content-Type': 'application/json'
89
+ }
90
+ };
91
+ },
92
+ presets: [
93
+ {
94
+ name: 'Complete Payment',
95
+ subscribe: 'event = "Payment Completed"',
96
+ partnerAction: 'reportOfflineEvent',
97
+ mapping: {
98
+ ...multiProductContents,
99
+ event: 'CompletePayment'
100
+ },
101
+ type: 'automatic'
102
+ },
103
+ {
104
+ name: 'Contact',
105
+ subscribe: 'event = "Callback Started"',
106
+ partnerAction: 'reportOfflineEvent',
107
+ mapping: {
108
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
109
+ event: 'Contact'
110
+ },
111
+ type: 'automatic'
112
+ },
113
+ {
114
+ name: 'Subscribe',
115
+ subscribe: 'event = "Subscription Created"',
116
+ partnerAction: 'reportOfflineEvent',
117
+ mapping: {
118
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
119
+ event: 'Subscribe'
120
+ },
121
+ type: 'automatic'
122
+ },
123
+ {
124
+ name: 'Submit Form',
125
+ subscribe: 'event = "Form Submitted"',
126
+ partnerAction: 'reportOfflineEvent',
127
+ mapping: {
128
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
129
+ event: 'SubmitForm'
130
+ },
131
+ type: 'automatic'
132
+ },
133
+ {
134
+ name: 'Page View',
135
+ subscribe: 'type="page"',
136
+ partnerAction: 'reportOfflineEvent',
137
+ mapping: {
138
+ ...multiProductContents,
139
+ event: 'PageView'
140
+ },
141
+ type: 'automatic'
142
+ },
143
+ {
144
+ name: 'View Content',
145
+ subscribe: 'event = "Product Viewed"',
146
+ partnerAction: 'reportOfflineEvent',
147
+ mapping: {
148
+ ...singleProductContents,
149
+ event: 'ViewContent'
150
+ },
151
+ type: 'automatic'
152
+ },
153
+ {
154
+ name: 'Click Button',
155
+ subscribe: 'event = "Product Clicked"',
156
+ partnerAction: 'reportOfflineEvent',
157
+ mapping: {
158
+ ...singleProductContents,
159
+ event: 'ClickButton'
160
+ },
161
+ type: 'automatic'
162
+ },
163
+ {
164
+ name: 'Search',
165
+ subscribe: 'event = "Products Searched"',
166
+ partnerAction: 'reportOfflineEvent',
167
+ mapping: {
168
+ ...singleProductContents,
169
+ event: 'Search'
170
+ },
171
+ type: 'automatic'
172
+ },
173
+ {
174
+ name: 'Add to Wishlist',
175
+ subscribe: 'event = "Product Added to Wishlist"',
176
+ partnerAction: 'reportOfflineEvent',
177
+ mapping: {
178
+ ...singleProductContents,
179
+ event: 'AddToWishlist'
180
+ },
181
+ type: 'automatic'
182
+ },
183
+ {
184
+ name: 'Add to Cart',
185
+ subscribe: 'event = "Product Added"',
186
+ partnerAction: 'reportOfflineEvent',
187
+ mapping: {
188
+ ...singleProductContents,
189
+ event: 'AddToCart'
190
+ },
191
+ type: 'automatic'
192
+ },
193
+ {
194
+ name: 'Initiate Checkout',
195
+ subscribe: 'event = "Checkout Started"',
196
+ partnerAction: 'reportOfflineEvent',
197
+ mapping: {
198
+ ...multiProductContents,
199
+ event: 'InitiateCheckout'
200
+ },
201
+ type: 'automatic'
202
+ },
203
+ {
204
+ name: 'Add Payment Info',
205
+ subscribe: 'event = "Payment Info Entered"',
206
+ partnerAction: 'reportOfflineEvent',
207
+ mapping: {
208
+ ...multiProductContents,
209
+ event: 'AddPaymentInfo'
210
+ },
211
+ type: 'automatic'
212
+ },
213
+ {
214
+ name: 'Place an Order',
215
+ subscribe: 'event = "Order Completed"',
216
+ partnerAction: 'reportOfflineEvent',
217
+ mapping: {
218
+ ...multiProductContents,
219
+ event: 'PlaceAnOrder'
220
+ },
221
+ type: 'automatic'
222
+ },
223
+ {
224
+ name: 'Download',
225
+ subscribe: 'event = "Download Link Clicked"',
226
+ partnerAction: 'reportOfflineEvent',
227
+ mapping: {
228
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
229
+ event: 'Download'
230
+ },
231
+ type: 'automatic'
232
+ },
233
+ {
234
+ name: 'Complete Registration',
235
+ subscribe: 'event = "Signed Up"',
236
+ partnerAction: 'reportOfflineEvent',
237
+ mapping: {
238
+ ...actions_core_1.defaultValues(reportOfflineEvent_1.default.fields),
239
+ event: 'CompleteRegistration'
240
+ },
241
+ type: 'automatic'
242
+ }
243
+ ],
244
+ actions: {
245
+ trackPaymentOfflineConversion: trackPaymentOfflineConversion_1.default,
246
+ trackNonPaymentOfflineConversion: trackNonPaymentOfflineConversion_1.default,
247
+ reportOfflineEvent: reportOfflineEvent_1.default
248
+ }
249
+ };
250
+ exports.default = destination;
251
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-offline-conversions-sandbox/index.ts"],"names":[],"mappings":"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"}