@segment/action-destinations 3.131.1-ga4-cloud.12 → 3.131.1-stageTesting-tiktok-ga4.49

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 (123) hide show
  1. package/dist/destinations/google-analytics-4/addPaymentInfo/generated-types.d.ts +1 -3
  2. package/dist/destinations/google-analytics-4/addPaymentInfo/index.js +3 -10
  3. package/dist/destinations/google-analytics-4/addPaymentInfo/index.js.map +1 -1
  4. package/dist/destinations/google-analytics-4/addToCart/generated-types.d.ts +1 -3
  5. package/dist/destinations/google-analytics-4/addToCart/index.js +3 -10
  6. package/dist/destinations/google-analytics-4/addToCart/index.js.map +1 -1
  7. package/dist/destinations/google-analytics-4/addToWishlist/generated-types.d.ts +1 -3
  8. package/dist/destinations/google-analytics-4/addToWishlist/index.js +3 -10
  9. package/dist/destinations/google-analytics-4/addToWishlist/index.js.map +1 -1
  10. package/dist/destinations/google-analytics-4/beginCheckout/generated-types.d.ts +1 -3
  11. package/dist/destinations/google-analytics-4/beginCheckout/index.js +3 -10
  12. package/dist/destinations/google-analytics-4/beginCheckout/index.js.map +1 -1
  13. package/dist/destinations/google-analytics-4/customEvent/generated-types.d.ts +1 -3
  14. package/dist/destinations/google-analytics-4/customEvent/index.js +3 -10
  15. package/dist/destinations/google-analytics-4/customEvent/index.js.map +1 -1
  16. package/dist/destinations/google-analytics-4/ga4-functions.d.ts +0 -3
  17. package/dist/destinations/google-analytics-4/ga4-functions.js +1 -31
  18. package/dist/destinations/google-analytics-4/ga4-functions.js.map +1 -1
  19. package/dist/destinations/google-analytics-4/ga4-properties.d.ts +0 -2
  20. package/dist/destinations/google-analytics-4/ga4-properties.js +3 -17
  21. package/dist/destinations/google-analytics-4/ga4-properties.js.map +1 -1
  22. package/dist/destinations/google-analytics-4/ga4-types.d.ts +0 -14
  23. package/dist/destinations/google-analytics-4/ga4-types.js +0 -6
  24. package/dist/destinations/google-analytics-4/ga4-types.js.map +1 -1
  25. package/dist/destinations/google-analytics-4/generateLead/generated-types.d.ts +1 -3
  26. package/dist/destinations/google-analytics-4/generateLead/index.js +3 -10
  27. package/dist/destinations/google-analytics-4/generateLead/index.js.map +1 -1
  28. package/dist/destinations/google-analytics-4/generated-types.d.ts +1 -2
  29. package/dist/destinations/google-analytics-4/index.js +10 -15
  30. package/dist/destinations/google-analytics-4/index.js.map +1 -1
  31. package/dist/destinations/google-analytics-4/login/generated-types.d.ts +1 -3
  32. package/dist/destinations/google-analytics-4/login/index.js +3 -10
  33. package/dist/destinations/google-analytics-4/login/index.js.map +1 -1
  34. package/dist/destinations/google-analytics-4/pageView/generated-types.d.ts +1 -3
  35. package/dist/destinations/google-analytics-4/pageView/index.js +3 -10
  36. package/dist/destinations/google-analytics-4/pageView/index.js.map +1 -1
  37. package/dist/destinations/google-analytics-4/purchase/generated-types.d.ts +1 -3
  38. package/dist/destinations/google-analytics-4/purchase/index.js +3 -10
  39. package/dist/destinations/google-analytics-4/purchase/index.js.map +1 -1
  40. package/dist/destinations/google-analytics-4/refund/generated-types.d.ts +1 -3
  41. package/dist/destinations/google-analytics-4/refund/index.js +3 -10
  42. package/dist/destinations/google-analytics-4/refund/index.js.map +1 -1
  43. package/dist/destinations/google-analytics-4/removeFromCart/generated-types.d.ts +1 -3
  44. package/dist/destinations/google-analytics-4/removeFromCart/index.js +3 -10
  45. package/dist/destinations/google-analytics-4/removeFromCart/index.js.map +1 -1
  46. package/dist/destinations/google-analytics-4/search/generated-types.d.ts +1 -3
  47. package/dist/destinations/google-analytics-4/search/index.js +3 -10
  48. package/dist/destinations/google-analytics-4/search/index.js.map +1 -1
  49. package/dist/destinations/google-analytics-4/selectItem/generated-types.d.ts +1 -3
  50. package/dist/destinations/google-analytics-4/selectItem/index.js +3 -10
  51. package/dist/destinations/google-analytics-4/selectItem/index.js.map +1 -1
  52. package/dist/destinations/google-analytics-4/selectPromotion/generated-types.d.ts +1 -3
  53. package/dist/destinations/google-analytics-4/selectPromotion/index.js +3 -10
  54. package/dist/destinations/google-analytics-4/selectPromotion/index.js.map +1 -1
  55. package/dist/destinations/google-analytics-4/signUp/generated-types.d.ts +1 -3
  56. package/dist/destinations/google-analytics-4/signUp/index.js +3 -10
  57. package/dist/destinations/google-analytics-4/signUp/index.js.map +1 -1
  58. package/dist/destinations/google-analytics-4/viewCart/generated-types.d.ts +1 -3
  59. package/dist/destinations/google-analytics-4/viewCart/index.js +3 -10
  60. package/dist/destinations/google-analytics-4/viewCart/index.js.map +1 -1
  61. package/dist/destinations/google-analytics-4/viewItem/generated-types.d.ts +1 -3
  62. package/dist/destinations/google-analytics-4/viewItem/index.js +3 -10
  63. package/dist/destinations/google-analytics-4/viewItem/index.js.map +1 -1
  64. package/dist/destinations/google-analytics-4/viewItemList/generated-types.d.ts +1 -3
  65. package/dist/destinations/google-analytics-4/viewItemList/index.js +3 -10
  66. package/dist/destinations/google-analytics-4/viewItemList/index.js.map +1 -1
  67. package/dist/destinations/google-analytics-4/viewPromotion/generated-types.d.ts +1 -3
  68. package/dist/destinations/google-analytics-4/viewPromotion/index.js +3 -10
  69. package/dist/destinations/google-analytics-4/viewPromotion/index.js.map +1 -1
  70. package/dist/destinations/index.js +1 -0
  71. package/dist/destinations/index.js.map +1 -1
  72. package/dist/destinations/tiktok-audiences/addUser/generated-types.d.ts +9 -0
  73. package/dist/destinations/tiktok-audiences/addUser/generated-types.js +3 -0
  74. package/dist/destinations/tiktok-audiences/addUser/generated-types.js.map +1 -0
  75. package/dist/destinations/tiktok-audiences/addUser/index.d.ts +5 -0
  76. package/dist/destinations/tiktok-audiences/addUser/index.js +88 -0
  77. package/dist/destinations/tiktok-audiences/addUser/index.js.map +1 -0
  78. package/dist/destinations/tiktok-audiences/api/index.d.ts +11 -0
  79. package/dist/destinations/tiktok-audiences/api/index.js +38 -0
  80. package/dist/destinations/tiktok-audiences/api/index.js.map +1 -0
  81. package/dist/destinations/tiktok-audiences/constants.d.ts +2 -0
  82. package/dist/destinations/tiktok-audiences/constants.js +6 -0
  83. package/dist/destinations/tiktok-audiences/constants.js.map +1 -0
  84. package/dist/destinations/tiktok-audiences/functions.d.ts +8 -0
  85. package/dist/destinations/tiktok-audiences/functions.js +72 -0
  86. package/dist/destinations/tiktok-audiences/functions.js.map +1 -0
  87. package/dist/destinations/tiktok-audiences/generated-types.d.ts +3 -0
  88. package/dist/destinations/tiktok-audiences/generated-types.js +3 -0
  89. package/dist/destinations/tiktok-audiences/generated-types.js.map +1 -0
  90. package/dist/destinations/tiktok-audiences/index.d.ts +4 -0
  91. package/dist/destinations/tiktok-audiences/index.js +37 -0
  92. package/dist/destinations/tiktok-audiences/index.js.map +1 -0
  93. package/dist/destinations/tiktok-audiences/removeUser/generated-types.d.ts +9 -0
  94. package/dist/destinations/tiktok-audiences/removeUser/generated-types.js +3 -0
  95. package/dist/destinations/tiktok-audiences/removeUser/generated-types.js.map +1 -0
  96. package/dist/destinations/tiktok-audiences/removeUser/index.d.ts +5 -0
  97. package/dist/destinations/tiktok-audiences/removeUser/index.js +88 -0
  98. package/dist/destinations/tiktok-audiences/removeUser/index.js.map +1 -0
  99. package/dist/destinations/tiktok-audiences/types.d.ts +33 -0
  100. package/dist/destinations/tiktok-audiences/types.js +3 -0
  101. package/dist/destinations/tiktok-audiences/types.js.map +1 -0
  102. package/dist/destinations/tiktok-audiences/updateAudience/generated-types.d.ts +9 -0
  103. package/dist/destinations/tiktok-audiences/updateAudience/generated-types.js +3 -0
  104. package/dist/destinations/tiktok-audiences/updateAudience/generated-types.js.map +1 -0
  105. package/dist/destinations/tiktok-audiences/updateAudience/index.d.ts +5 -0
  106. package/dist/destinations/tiktok-audiences/updateAudience/index.js +160 -0
  107. package/dist/destinations/tiktok-audiences/updateAudience/index.js.map +1 -0
  108. package/dist/destinations/twilio-studio/generated-types.d.ts +6 -0
  109. package/dist/destinations/twilio-studio/generated-types.js +3 -0
  110. package/dist/destinations/twilio-studio/generated-types.js.map +1 -0
  111. package/dist/destinations/twilio-studio/index.d.ts +4 -0
  112. package/dist/destinations/twilio-studio/index.js +55 -0
  113. package/dist/destinations/twilio-studio/index.js.map +1 -0
  114. package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.d.ts +8 -0
  115. package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.js +3 -0
  116. package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.js.map +1 -0
  117. package/dist/destinations/twilio-studio/triggerStudioFlow/index.d.ts +5 -0
  118. package/dist/destinations/twilio-studio/triggerStudioFlow/index.js +84 -0
  119. package/dist/destinations/twilio-studio/triggerStudioFlow/index.js.map +1 -0
  120. package/dist/destinations/twilio-studio/utils.d.ts +29 -0
  121. package/dist/destinations/twilio-studio/utils.js +43 -0
  122. package/dist/destinations/twilio-studio/utils.js.map +1 -0
  123. package/package.json +4 -4
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractUsers = exports.getAudienceID = exports.getAllAudiences = exports.validate = void 0;
4
+ const actions_core_1 = require("@segment/actions-core");
5
+ const crypto_1 = require("crypto");
6
+ function validate(payloads) {
7
+ if (payloads[0].custom_audience_name !== payloads[0].personas_audience_key) {
8
+ throw new actions_core_1.IntegrationError('The value of `custom_audience_name` and `personas_audience_key` must match.', 'INVALID_SETTINGS', 400);
9
+ }
10
+ }
11
+ exports.validate = validate;
12
+ async function getAllAudiences(TikTokApiClient, settings) {
13
+ let response = await TikTokApiClient.getAudiences(settings, 1, 100);
14
+ let audiences = response.data.data.list;
15
+ const total_number_audiences = response.data.data.page_info.total_number;
16
+ let recieved_audiences = 100;
17
+ let page_number = 2;
18
+ while (recieved_audiences < total_number_audiences) {
19
+ response = await TikTokApiClient.getAudiences(settings, page_number, 100);
20
+ audiences = audiences.concat(response.data.data.list);
21
+ page_number += 1;
22
+ recieved_audiences += 100;
23
+ }
24
+ return audiences;
25
+ }
26
+ exports.getAllAudiences = getAllAudiences;
27
+ async function getAudienceID(TikTokApiClient, settings, payload, audiences) {
28
+ let audienceID;
29
+ const audienceExists = audiences.filter(function (audience) {
30
+ if (audience.name === payload.custom_audience_name) {
31
+ return audience.audience_id;
32
+ }
33
+ });
34
+ if (audienceExists.length > 1) {
35
+ throw new actions_core_1.IntegrationError('The value of `custom_audience_name` and `personas_audience_key` must match.', 'INVALID_SETTINGS', 400);
36
+ }
37
+ if (audienceExists.length == 1) {
38
+ audienceID = audienceExists[0].audience_id;
39
+ }
40
+ else {
41
+ const response = await TikTokApiClient.createAudience(settings, payload);
42
+ audienceID = response.data.data.audience_id;
43
+ }
44
+ return audienceID;
45
+ }
46
+ exports.getAudienceID = getAudienceID;
47
+ function extractUsers(payloads, audienceID) {
48
+ const data = [];
49
+ payloads.forEach((payload) => {
50
+ if (!payload.email && !payload.google_advertising_id) {
51
+ return;
52
+ }
53
+ if (payload.id_type == 'EMAIL_SHA256' && payload.email) {
54
+ payload.email = payload.email.replace(/\+.*@/, '@').replace(/\./g, '').toLowerCase();
55
+ data.push({
56
+ id_type: 'EMAIL_SHA256',
57
+ id: crypto_1.createHash('sha256').update(payload.email).digest('hex'),
58
+ audience_ids: [audienceID]
59
+ });
60
+ }
61
+ if (payload.id_type == 'GAID_SHA256' && payload.google_advertising_id) {
62
+ data.push({
63
+ id_type: 'GAID_SHA256',
64
+ id: crypto_1.createHash('sha256').update(payload.google_advertising_id).digest('hex'),
65
+ audience_ids: [audienceID]
66
+ });
67
+ }
68
+ });
69
+ return data;
70
+ }
71
+ exports.extractUsers = extractUsers;
72
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface Settings {
2
+ advertiser_id: string;
3
+ }
@@ -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-audiences/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,37 @@
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 addUser_1 = __importDefault(require("./addUser"));
7
+ const removeUser_1 = __importDefault(require("./removeUser"));
8
+ const destination = {
9
+ name: 'TikTok Audiences',
10
+ slug: 'actions-tiktok-audiences',
11
+ mode: 'cloud',
12
+ authentication: {
13
+ scheme: 'oauth2',
14
+ fields: {
15
+ advertiser_id: {
16
+ label: 'TikTok Advertiser ID',
17
+ description: 'The Advertiser ID where audiences should be synced.',
18
+ type: 'string',
19
+ required: true
20
+ }
21
+ }
22
+ },
23
+ extendRequest({ auth }) {
24
+ return {
25
+ headers: {
26
+ 'Access-Token': `${auth?.accessToken}`,
27
+ 'Content-Type': 'application/json'
28
+ }
29
+ };
30
+ },
31
+ actions: {
32
+ addUser: addUser_1.default,
33
+ removeUser: removeUser_1.default
34
+ }
35
+ };
36
+ exports.default = destination;
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/index.ts"],"names":[],"mappings":";;;;;AAGA,wDAA+B;AAC/B,8DAAqC;AAErC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;KASF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,cAAc,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE;gBACtC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAA;IACH,CAAC;IAED,OAAO,EAAE;QACP,OAAO,EAAP,iBAAO;QACP,UAAU,EAAV,oBAAU;KACX;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,9 @@
1
+ export interface Payload {
2
+ custom_audience_name?: string;
3
+ id_type?: string;
4
+ email?: string;
5
+ google_advertising_id?: string;
6
+ event_name?: string;
7
+ enable_batching?: boolean;
8
+ personas_audience_key?: string;
9
+ }
@@ -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-audiences/removeUser/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { 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,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const api_1 = require("../api");
4
+ const functions_1 = require("../functions");
5
+ const action = {
6
+ title: 'Remove Users from Audience',
7
+ description: 'Sync contacts from an Engage Audience to a TikTok Audience Segment.',
8
+ defaultSubscription: 'event = "Audience Entered" or event = "Audience Exited"',
9
+ fields: {
10
+ custom_audience_name: {
11
+ label: 'Custom Audience Name',
12
+ description: 'Custom audience name of audience to be created. Please note that names over 70 characters will be truncated to 67 characters with "..." appended. This field is set only when Segment creates a new audience. Updating this field after Segment has created an audience will not update the audience name in TikTok.',
13
+ type: 'string',
14
+ default: {
15
+ '@path': '$.properties.audience_key'
16
+ }
17
+ },
18
+ id_type: {
19
+ label: 'ID Type',
20
+ description: 'Encryption type to be used for populating the audience.',
21
+ type: 'string',
22
+ choices: [
23
+ { label: 'Email', value: 'EMAIL_SHA256' },
24
+ { label: 'Google Advertising ID', value: 'GAID_SHA256' }
25
+ ]
26
+ },
27
+ email: {
28
+ label: 'User Email',
29
+ description: "The user's email address to send to LinkedIn.",
30
+ type: 'hidden',
31
+ default: {
32
+ '@path': '$.context.traits.email'
33
+ }
34
+ },
35
+ google_advertising_id: {
36
+ label: 'User Google Advertising ID',
37
+ description: "The user's Google Advertising ID to send to LinkedIn.",
38
+ type: 'hidden',
39
+ default: {
40
+ '@path': '$.context.device.advertisingId'
41
+ }
42
+ },
43
+ event_name: {
44
+ label: 'Event Name',
45
+ description: 'The name of the current Segment event.',
46
+ type: 'hidden',
47
+ default: {
48
+ '@path': '$.event'
49
+ }
50
+ },
51
+ enable_batching: {
52
+ label: 'Enable Batching',
53
+ description: 'Enable batching of requests to the TikTok Audiences.',
54
+ type: 'boolean',
55
+ default: true
56
+ },
57
+ personas_audience_key: {
58
+ label: 'Segment Engage Audience Key',
59
+ description: 'The `audience_key` of the Engage audience you want to sync to TikTok. This value must be a hard-coded string variable, e.g. `personas_test_audience`, in order for batching to work properly.',
60
+ type: 'string'
61
+ }
62
+ },
63
+ perform: async (request, { settings, payload }) => {
64
+ return processPayload(request, settings, [payload]);
65
+ },
66
+ performBatch: async (request, { settings, payload }) => {
67
+ return processPayload(request, settings, payload);
68
+ }
69
+ };
70
+ async function processPayload(request, settings, payloads) {
71
+ functions_1.validate(payloads);
72
+ const TikTokApiClient = new api_1.TikTokAudiences(request);
73
+ const audiences = await functions_1.getAllAudiences(TikTokApiClient, settings);
74
+ const audience_id = await functions_1.getAudienceID(TikTokApiClient, settings, payloads[0], audiences);
75
+ const users = functions_1.extractUsers(payloads, audience_id);
76
+ let res;
77
+ if (users.length > 0) {
78
+ const elements = {
79
+ advertiser_ids: [settings.advertiser_id],
80
+ action: 'delete',
81
+ data: users
82
+ };
83
+ res = await TikTokApiClient.batchUpdate(elements);
84
+ }
85
+ return res;
86
+ }
87
+ exports.default = action;
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/removeUser/index.ts"],"names":[],"mappings":";;AAEA,gCAAwC;AAGxC,4CAAqF;AAErF,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,4BAA4B;IACnC,WAAW,EAAE,qEAAqE;IAClF,mBAAmB,EAAE,yDAAyD;IAC9E,MAAM,EAAE;QACN,oBAAoB,EAAE;YACpB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EACT,sTAAsT;YACxT,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,2BAA2B;aACrC;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;gBACzC,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE;aACzD;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,+CAA+C;YAC5D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,wBAAwB;aAClC;SACF;QACD,qBAAqB,EAAE;YACrB,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,uDAAuD;YACpE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,gCAAgC;aAC1C;SACF;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;aACnB;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,sDAAsD;YACnE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,qBAAqB,EAAE;YACrB,KAAK,EAAE,6BAA6B;YACpC,WAAW,EACT,+LAA+L;YACjM,IAAI,EAAE,QAAQ;SACf;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;CACF,CAAA;AAED,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,QAAkB,EAAE,QAAmB;IAC3F,oBAAQ,CAAC,QAAQ,CAAC,CAAA;IAClB,MAAM,eAAe,GAAoB,IAAI,qBAAe,CAAC,OAAO,CAAC,CAAA;IAErE,MAAM,SAAS,GAAG,MAAM,2BAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IAElE,MAAM,WAAW,GAAG,MAAM,yBAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IAE1F,MAAM,KAAK,GAAG,wBAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEjD,IAAI,GAAG,CAAA;IACP,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,QAAQ,GAAG;YACf,cAAc,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACxC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK;SACZ,CAAA;QACD,GAAG,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;KAClD;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,33 @@
1
+ export interface APIResponse {
2
+ code: number;
3
+ message: string;
4
+ request_id: string;
5
+ }
6
+ export interface GetAudienceAPIResponse extends APIResponse {
7
+ data: {
8
+ page_info: {
9
+ page: number;
10
+ total_page: number;
11
+ total_number: number;
12
+ page_size: number;
13
+ };
14
+ list: [Audiences];
15
+ };
16
+ }
17
+ export interface CreateAudienceAPIResponse extends APIResponse {
18
+ data: {
19
+ audience_id: string;
20
+ };
21
+ }
22
+ export interface Audiences {
23
+ is_expiring: boolean;
24
+ cover_num: number;
25
+ name: string;
26
+ audience_id: string;
27
+ audience_type: string;
28
+ is_valid: boolean;
29
+ create_time: string;
30
+ shared: boolean;
31
+ expired_time: string;
32
+ calculate_type: string;
33
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export interface Payload {
2
+ custom_audience_name?: string;
3
+ id_type?: string;
4
+ email?: string;
5
+ google_advertising_id?: string;
6
+ event_name?: string;
7
+ enable_batching?: boolean;
8
+ personas_audience_key?: string;
9
+ }
@@ -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-audiences/updateAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { 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,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const api_1 = require("../api");
5
+ const crypto_1 = require("crypto");
6
+ const action = {
7
+ title: 'Update Audience',
8
+ description: 'Sync contacts from an Engage Audience to a TikTok Audience Segment.',
9
+ defaultSubscription: 'event = "Audience Entered" or event = "Audience Exited"',
10
+ fields: {
11
+ custom_audience_name: {
12
+ label: 'Custom Audience Name',
13
+ description: 'Custom audience name of audience to be created. Please note that names over 70 characters will be truncated to 67 characters with "..." appended. This field is set only when Segment creates a new audience. Updating this field after Segment has created an audience will not update the audience name in TikTok.',
14
+ type: 'string',
15
+ default: {
16
+ '@path': '$.properties.audience_key'
17
+ }
18
+ },
19
+ id_type: {
20
+ label: 'ID Type',
21
+ description: 'Encryption type to be used for populating the audience.',
22
+ type: 'string',
23
+ choices: [
24
+ { label: 'Email', value: 'EMAIL_SHA256' },
25
+ { label: 'Google Advertising ID', value: 'GAID_SHA256' }
26
+ ]
27
+ },
28
+ email: {
29
+ label: 'User Email',
30
+ description: "The user's email address to send to LinkedIn.",
31
+ type: 'hidden',
32
+ default: {
33
+ '@path': '$.context.traits.email'
34
+ }
35
+ },
36
+ google_advertising_id: {
37
+ label: 'User Google Advertising ID',
38
+ description: "The user's Google Advertising ID to send to LinkedIn.",
39
+ type: 'hidden',
40
+ default: {
41
+ '@path': '$.context.device.advertisingId'
42
+ }
43
+ },
44
+ event_name: {
45
+ label: 'Event Name',
46
+ description: 'The name of the current Segment event.',
47
+ type: 'hidden',
48
+ default: {
49
+ '@path': '$.event'
50
+ }
51
+ },
52
+ enable_batching: {
53
+ label: 'Enable Batching',
54
+ description: 'Enable batching of requests to the TikTok Audiences.',
55
+ type: 'boolean',
56
+ default: true
57
+ },
58
+ personas_audience_key: {
59
+ label: 'Segment Engage Audience Key',
60
+ description: 'The `audience_key` of the Engage audience you want to sync to TikTok. This value must be a hard-coded string variable, e.g. `personas_test_audience`, in order for batching to work properly.',
61
+ type: 'string'
62
+ }
63
+ },
64
+ perform: async (request, { settings, payload }) => {
65
+ return processPayload(request, settings, [payload]);
66
+ },
67
+ performBatch: async (request, { settings, payload }) => {
68
+ return processPayload(request, settings, payload);
69
+ }
70
+ };
71
+ async function processPayload(request, settings, payloads) {
72
+ validate(payloads);
73
+ const TikTokApiClient = new api_1.TikTokAudiences(request);
74
+ const audiences = await getAllAudiences(TikTokApiClient, settings);
75
+ const audience_id = await getAudienceID(TikTokApiClient, settings, payloads[0], audiences);
76
+ const users = extractUsers(payloads, audience_id);
77
+ let res;
78
+ if (users.length > 0) {
79
+ const elements = {
80
+ advertiser_ids: [settings.advertiser_id],
81
+ action: 'add',
82
+ data: users
83
+ };
84
+ res = await TikTokApiClient.batchUpdate(elements);
85
+ }
86
+ return res;
87
+ }
88
+ function validate(payloads) {
89
+ if (payloads[0].custom_audience_name !== payloads[0].personas_audience_key) {
90
+ throw new actions_core_1.IntegrationError('The value of `custom_audience_name` and `personas_audience_key` must match.', 'INVALID_SETTINGS', 400);
91
+ }
92
+ }
93
+ async function getAllAudiences(TikTokApiClient, settings) {
94
+ let response = await TikTokApiClient.getAudiences(settings, 1, 100);
95
+ let audiences = response.data.data.list;
96
+ const total_number_audiences = response.data.data.page_info.total_number;
97
+ let recieved_audiences = 100;
98
+ let page_number = 2;
99
+ while (recieved_audiences < total_number_audiences) {
100
+ response = await TikTokApiClient.getAudiences(settings, page_number, 100);
101
+ audiences = audiences.concat(response.data.data.list);
102
+ page_number += 1;
103
+ recieved_audiences += 100;
104
+ }
105
+ return audiences;
106
+ }
107
+ async function getAudienceID(TikTokApiClient, settings, payload, audiences) {
108
+ let audienceID;
109
+ const audienceExists = audiences.filter(function (audience) {
110
+ if (audience.name === payload.custom_audience_name) {
111
+ return audience.audience_id;
112
+ }
113
+ });
114
+ if (audienceExists.length > 0) {
115
+ audienceID = audienceExists[0].audience_id;
116
+ }
117
+ else {
118
+ const response = await TikTokApiClient.createAudience(settings, payload);
119
+ audienceID = response.data.data.audience_id;
120
+ }
121
+ return audienceID;
122
+ }
123
+ function getAction(payload) {
124
+ if (payload.event_name === 'Audience Entered') {
125
+ return 'add';
126
+ }
127
+ else if (payload.event_name === 'Audience Exited') {
128
+ return 'delete';
129
+ }
130
+ }
131
+ function extractUsers(payloads, audienceID) {
132
+ const data = [];
133
+ payloads.forEach((payload) => {
134
+ if (!payload.email && !payload.google_advertising_id) {
135
+ return;
136
+ }
137
+ const payloadAction = getAction(payload);
138
+ if (payloadAction === 'add') {
139
+ return;
140
+ }
141
+ if (payload.id_type == 'EMAIL_SHA256' && payload.email) {
142
+ payload.email = payload.email.replace(/\+.*@/, '@').replace(/\./g, '').toLowerCase();
143
+ data.push({
144
+ id_type: 'EMAIL_SHA256',
145
+ id: crypto_1.createHash('sha256').update(payload.email).digest('hex'),
146
+ audience_ids: [audienceID]
147
+ });
148
+ }
149
+ if (payload.id_type == 'GAID_SHA256' && payload.google_advertising_id) {
150
+ data.push({
151
+ id_type: 'GAID_SHA256',
152
+ id: crypto_1.createHash('sha256').update(payload.google_advertising_id).digest('hex'),
153
+ audience_ids: [audienceID]
154
+ });
155
+ }
156
+ });
157
+ return data;
158
+ }
159
+ exports.default = action;
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/updateAudience/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface Settings {
2
+ accountSid: string;
3
+ authToken: string;
4
+ spaceId: string;
5
+ profileApiAccessToken: string;
6
+ }
@@ -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/twilio-studio/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,55 @@
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 triggerStudioFlow_1 = __importDefault(require("./triggerStudioFlow"));
7
+ const destination = {
8
+ name: 'Twilio Studio',
9
+ slug: 'actions-twilio-studio',
10
+ mode: 'cloud',
11
+ authentication: {
12
+ scheme: 'basic',
13
+ fields: {
14
+ accountSid: {
15
+ label: 'Account SID',
16
+ description: 'Your Twilio Account SID, starting with AC. You can find this in the Account Info section of your dashboard in the [Twilio Console](https://www.twilio.com/console).',
17
+ type: 'string',
18
+ required: true
19
+ },
20
+ authToken: {
21
+ label: 'Auth Token',
22
+ description: 'Your Twilio Auth Token. You can find this in the Account Info section of your dashboard in the [Twilio Console](https://www.twilio.com/console).',
23
+ type: 'password',
24
+ required: true
25
+ },
26
+ spaceId: {
27
+ label: 'Space ID',
28
+ description: 'Your Segment Space ID.',
29
+ type: 'string',
30
+ required: true
31
+ },
32
+ profileApiAccessToken: {
33
+ label: 'Profile API Access Token',
34
+ description: 'Your Segment Profile API Access Token.',
35
+ type: 'password',
36
+ required: true
37
+ }
38
+ },
39
+ testAuthentication: (request) => {
40
+ return request('https://api.twilio.com/2010-04-01/Accounts');
41
+ }
42
+ },
43
+ extendRequest({ settings }) {
44
+ return {
45
+ headers: {
46
+ authorization: `Basic ${Buffer.from(`${settings.accountSid}:${settings.authToken}`).toString('base64')}`
47
+ }
48
+ };
49
+ },
50
+ actions: {
51
+ triggerStudioFlow: triggerStudioFlow_1.default
52
+ }
53
+ };
54
+ exports.default = destination;
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/twilio-studio/index.ts"],"names":[],"mappings":";;;;;AAGA,4EAAmD;AAEnD,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,aAAa;gBACpB,WAAW,EACT,qKAAqK;gBACvK,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,kJAAkJ;gBACpJ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,wBAAwB;gBACrC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,0BAA0B;gBACjC,WAAW,EAAE,wCAAwC;gBACrD,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;YAC9B,OAAO,OAAO,CAAC,4CAA4C,CAAC,CAAA;QAC9D,CAAC;KACF;IAED,aAAa,CAAC,EAAE,QAAQ,EAAE;QACxB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;aACzG;SACF,CAAA;IACH,CAAC;IAED,OAAO,EAAE;QACP,iBAAiB,EAAjB,2BAAiB;KAClB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ export interface Payload {
2
+ flowSid: string;
3
+ from: string;
4
+ coolingOffPeriod?: number;
5
+ userId?: string;
6
+ anonymousId?: string;
7
+ eventType: string;
8
+ }
@@ -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/twilio-studio/triggerStudioFlow/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;