@segment/action-destinations 3.133.0 → 3.133.1-tiktok-append-id.24

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 (39) hide show
  1. package/dist/destinations/index.js +1 -0
  2. package/dist/destinations/index.js.map +1 -1
  3. package/dist/destinations/tiktok-audiences/addUser/generated-types.d.ts +12 -0
  4. package/dist/destinations/tiktok-audiences/addUser/generated-types.js +3 -0
  5. package/dist/destinations/tiktok-audiences/addUser/generated-types.js.map +1 -0
  6. package/dist/destinations/tiktok-audiences/addUser/index.d.ts +5 -0
  7. package/dist/destinations/tiktok-audiences/addUser/index.js +47 -0
  8. package/dist/destinations/tiktok-audiences/addUser/index.js.map +1 -0
  9. package/dist/destinations/tiktok-audiences/api/api.test.d.ts +1 -0
  10. package/dist/destinations/tiktok-audiences/api/api.test.js +118 -0
  11. package/dist/destinations/tiktok-audiences/api/api.test.js.map +1 -0
  12. package/dist/destinations/tiktok-audiences/api/index.d.ts +13 -0
  13. package/dist/destinations/tiktok-audiences/api/index.js +90 -0
  14. package/dist/destinations/tiktok-audiences/api/index.js.map +1 -0
  15. package/dist/destinations/tiktok-audiences/constants.d.ts +2 -0
  16. package/dist/destinations/tiktok-audiences/constants.js +6 -0
  17. package/dist/destinations/tiktok-audiences/constants.js.map +1 -0
  18. package/dist/destinations/tiktok-audiences/functions.d.ts +16 -0
  19. package/dist/destinations/tiktok-audiences/functions.js +124 -0
  20. package/dist/destinations/tiktok-audiences/functions.js.map +1 -0
  21. package/dist/destinations/tiktok-audiences/generated-types.d.ts +3 -0
  22. package/dist/destinations/tiktok-audiences/generated-types.js +3 -0
  23. package/dist/destinations/tiktok-audiences/generated-types.js.map +1 -0
  24. package/dist/destinations/tiktok-audiences/index.d.ts +4 -0
  25. package/dist/destinations/tiktok-audiences/index.js +38 -0
  26. package/dist/destinations/tiktok-audiences/index.js.map +1 -0
  27. package/dist/destinations/tiktok-audiences/properties.d.ts +11 -0
  28. package/dist/destinations/tiktok-audiences/properties.js +80 -0
  29. package/dist/destinations/tiktok-audiences/properties.js.map +1 -0
  30. package/dist/destinations/tiktok-audiences/removeUser/generated-types.d.ts +12 -0
  31. package/dist/destinations/tiktok-audiences/removeUser/generated-types.js +3 -0
  32. package/dist/destinations/tiktok-audiences/removeUser/generated-types.js.map +1 -0
  33. package/dist/destinations/tiktok-audiences/removeUser/index.d.ts +5 -0
  34. package/dist/destinations/tiktok-audiences/removeUser/index.js +47 -0
  35. package/dist/destinations/tiktok-audiences/removeUser/index.js.map +1 -0
  36. package/dist/destinations/tiktok-audiences/types.d.ts +33 -0
  37. package/dist/destinations/tiktok-audiences/types.js +3 -0
  38. package/dist/destinations/tiktok-audiences/types.js.map +1 -0
  39. package/package.json +2 -2
@@ -64,6 +64,7 @@ register('5f7dd8e302173ff732db5cc4', './slack');
64
64
  register('6261a8b6cb4caa70e19116e8', './snap-conversions-api');
65
65
  register('6234b137d3b6404a64f2a0f0', './talon-one');
66
66
  register('615cae349d109d6b7496a131', './tiktok-conversions');
67
+ register('63d2e550fb90f1632ed8820a', './tiktok-audiences');
67
68
  register('602efa1f249b9a5e2bf8a813', './twilio');
68
69
  register('614a3c7d791c91c41bae7599', './webhook');
69
70
  register('61dc4e96894a6d7954cc6e45', './voyage');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/destinations/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/destinations/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ selected_advertiser_id: string;
3
+ custom_audience_name: string;
4
+ id_type: string;
5
+ email?: string;
6
+ advertising_id?: string;
7
+ send_email?: boolean;
8
+ send_advertising_id?: boolean;
9
+ event_name?: string;
10
+ enable_batching?: boolean;
11
+ personas_audience_key?: string;
12
+ }
@@ -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/addUser/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,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const functions_1 = require("../functions");
4
+ const properties_1 = require("../properties");
5
+ const api_1 = require("../api");
6
+ const action = {
7
+ title: 'Add Users',
8
+ description: 'Add contacts from an Engage Audience to a TikTok Audience Segment.',
9
+ defaultSubscription: 'event = "Audience Entered"',
10
+ fields: {
11
+ selected_advertiser_id: { ...properties_1.selected_advertiser_id },
12
+ custom_audience_name: { ...properties_1.custom_audience_name },
13
+ id_type: { ...properties_1.id_type },
14
+ email: { ...properties_1.email },
15
+ advertising_id: { ...properties_1.advertising_id },
16
+ send_email: { ...properties_1.send_email },
17
+ send_advertising_id: { ...properties_1.send_advertising_id },
18
+ event_name: { ...properties_1.event_name },
19
+ enable_batching: { ...properties_1.enable_batching },
20
+ personas_audience_key: { ...properties_1.personas_audience_key }
21
+ },
22
+ dynamicFields: {
23
+ selected_advertiser_id: async (request, { settings }) => {
24
+ try {
25
+ const tiktok = new api_1.TikTokAudiences(request);
26
+ return tiktok.fetchAdvertisers(settings.advertiser_ids);
27
+ }
28
+ catch (err) {
29
+ return {
30
+ choices: [],
31
+ error: {
32
+ message: JSON.stringify(err),
33
+ code: '500'
34
+ }
35
+ };
36
+ }
37
+ }
38
+ },
39
+ perform: async (request, { settings, payload }) => {
40
+ return functions_1.processPayload(request, settings, [payload], 'add');
41
+ },
42
+ performBatch: async (request, { settings, payload }) => {
43
+ return functions_1.processPayload(request, settings, payload, 'add');
44
+ }
45
+ };
46
+ exports.default = action;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/addUser/index.ts"],"names":[],"mappings":";;AAGA,4CAA6C;AAC7C,8CAWsB;AACtB,gCAAwC;AAExC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,oEAAoE;IACjF,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,sBAAsB,EAAE,EAAE,GAAG,mCAAsB,EAAE;QACrD,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;QACvB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,cAAc,EAAE,EAAE,GAAG,2BAAc,EAAE;QACrC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;QAC/C,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;KACpD;IACD,aAAa,EAAE;QACb,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtD,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,CAAA;gBAE3C,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;aACxD;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;wBAC5B,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAA;aACF;QACH,CAAC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,118 @@
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 nock_1 = __importDefault(require("nock"));
7
+ const create_request_client_1 = __importDefault(require("../../../../../core/src/create-request-client"));
8
+ const index_1 = require("./index");
9
+ const constants_1 = require("../constants");
10
+ const settings = {
11
+ advertiser_ids: ['1234567890', '0987654321', '2345675643']
12
+ };
13
+ const requestClient = create_request_client_1.default();
14
+ describe('TikTok', () => {
15
+ describe('fetchAdvertisers', () => {
16
+ const tiktok = new index_1.TikTokAudiences(requestClient);
17
+ it('should fetch a list of advertisers, with their names', async () => {
18
+ nock_1.default(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/advertiser/info`)
19
+ .get(`/`)
20
+ .query({ advertiser_ids: JSON.stringify(settings.advertiser_ids) })
21
+ .reply(200, {
22
+ code: 0,
23
+ message: 'success',
24
+ data: {
25
+ list: [
26
+ {
27
+ balance: 0.0,
28
+ email: 'd*******************@***********',
29
+ promotion_area: '0',
30
+ display_timezone: 'America/New_York',
31
+ create_time: 1672341876,
32
+ telephone_number: '+10000****00',
33
+ license_no: '',
34
+ description: null,
35
+ license_province: null,
36
+ address: '',
37
+ industry: '292801',
38
+ currency: 'USD',
39
+ rejection_reason: '-',
40
+ country: 'US',
41
+ license_url: null,
42
+ timezone: 'Etc/GMT+5',
43
+ license_city: null,
44
+ brand: null,
45
+ promotion_center_province: null,
46
+ advertiser_account_type: 'AUCTION',
47
+ status: 'STATUS_ENABLE',
48
+ cellphone_number: '+10000****00',
49
+ name: 'TestAccount1',
50
+ role: 'ROLE_ADVERTISER',
51
+ contacter: 'Se***nt',
52
+ promotion_center_city: null,
53
+ advertiser_id: '1234567890',
54
+ language: '',
55
+ company: 'Segment'
56
+ },
57
+ {
58
+ advertiser_id: '0987654321',
59
+ name: 'TestAccount2'
60
+ },
61
+ {
62
+ advertiser_id: '2345675643',
63
+ name: 'TestAccount3'
64
+ }
65
+ ]
66
+ }
67
+ });
68
+ const fetchAdvertisersRes = await tiktok.fetchAdvertisers(settings.advertiser_ids);
69
+ expect(fetchAdvertisersRes).toEqual({
70
+ choices: [
71
+ {
72
+ label: 'TestAccount1',
73
+ value: 'id_1234567890'
74
+ },
75
+ {
76
+ label: 'TestAccount2',
77
+ value: 'id_0987654321'
78
+ },
79
+ {
80
+ label: 'TestAccount3',
81
+ value: 'id_2345675643'
82
+ }
83
+ ]
84
+ });
85
+ });
86
+ it('should fallback to stored advertiser_ids if tiktok returns an error', async () => {
87
+ nock_1.default(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/advertiser/info`)
88
+ .get(`/`)
89
+ .query({ advertiser_ids: JSON.stringify(settings.advertiser_ids) })
90
+ .reply(500, {
91
+ code: 500,
92
+ message: 'Internal Server Error'
93
+ });
94
+ const fetchAdvertisersRes = await tiktok.fetchAdvertisers(settings.advertiser_ids);
95
+ expect(fetchAdvertisersRes).toEqual({
96
+ choices: [
97
+ {
98
+ label: '1234567890',
99
+ value: 'id_1234567890'
100
+ },
101
+ {
102
+ label: '0987654321',
103
+ value: 'id_0987654321'
104
+ },
105
+ {
106
+ label: '2345675643',
107
+ value: 'id_2345675643'
108
+ }
109
+ ],
110
+ error: {
111
+ message: 'Internal Server Error',
112
+ code: '500'
113
+ }
114
+ });
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=api.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.test.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/api/api.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { RequestClient, ModifiedResponse } from '@segment/actions-core';
2
+ import type { Payload } from '../addUser/generated-types';
3
+ import type { GetAudienceAPIResponse, CreateAudienceAPIResponse } from '../types';
4
+ import { DynamicFieldResponse } from '@segment/actions-core';
5
+ export declare class TikTokAudiences {
6
+ request: RequestClient;
7
+ selectedAdvertiserID?: string;
8
+ constructor(request: RequestClient, selectedAdvertiserID?: string);
9
+ getAudiences(page_number: number, page_size: number): Promise<ModifiedResponse<GetAudienceAPIResponse>>;
10
+ createAudience(payload: Payload): Promise<ModifiedResponse<CreateAudienceAPIResponse>>;
11
+ batchUpdate(elements: {}): Promise<ModifiedResponse>;
12
+ fetchAdvertisers: (advertiser_ids: string[]) => Promise<DynamicFieldResponse>;
13
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TikTokAudiences = void 0;
4
+ const constants_1 = require("../constants");
5
+ const functions_1 = require("../functions");
6
+ class TikTokAudiences {
7
+ constructor(request, selectedAdvertiserID) {
8
+ this.fetchAdvertisers = async (advertiser_ids) => {
9
+ if (!advertiser_ids.length) {
10
+ return {
11
+ choices: [],
12
+ error: {
13
+ message: 'Sign in via OAuth on the settings page to load advertisers.',
14
+ code: 'NOT_LOGGED_IN'
15
+ }
16
+ };
17
+ }
18
+ try {
19
+ const result = await this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/advertiser/info/`, {
20
+ method: 'GET',
21
+ searchParams: {
22
+ advertiser_ids: JSON.stringify(advertiser_ids)
23
+ }
24
+ });
25
+ if (result.data.code !== 0) {
26
+ throw {
27
+ message: result.data.message,
28
+ code: result.data.code
29
+ };
30
+ }
31
+ const choices = result.data.data.list.map((item) => {
32
+ return {
33
+ label: item.name,
34
+ value: functions_1.stringifyAdvertiserID(item.advertiser_id)
35
+ };
36
+ });
37
+ return {
38
+ choices: choices
39
+ };
40
+ }
41
+ catch (err) {
42
+ const choices = advertiser_ids.map((id) => {
43
+ return {
44
+ label: id,
45
+ value: functions_1.stringifyAdvertiserID(id)
46
+ };
47
+ });
48
+ return {
49
+ choices: choices,
50
+ error: {
51
+ message: err.response.data.message ?? 'An error occurred while fetching advertisers.',
52
+ code: err.response.data.code.toString() ?? 'FETCH_ADVERTISERS_ERROR'
53
+ }
54
+ };
55
+ }
56
+ };
57
+ this.request = request;
58
+ this.selectedAdvertiserID = selectedAdvertiserID;
59
+ }
60
+ async getAudiences(page_number, page_size) {
61
+ return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/dmp/custom_audience/list/`, {
62
+ method: 'GET',
63
+ searchParams: {
64
+ advertiser_id: this.selectedAdvertiserID ?? '',
65
+ page: page_number,
66
+ page_size: page_size
67
+ }
68
+ });
69
+ }
70
+ async createAudience(payload) {
71
+ return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/audience/`, {
72
+ method: 'POST',
73
+ json: {
74
+ custom_audience_name: payload.custom_audience_name,
75
+ advertiser_id: this.selectedAdvertiserID,
76
+ id_type: payload.id_type,
77
+ action: 'create'
78
+ }
79
+ });
80
+ }
81
+ async batchUpdate(elements) {
82
+ return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/mapping/`, {
83
+ method: 'POST',
84
+ json: elements,
85
+ throwHttpErrors: false
86
+ });
87
+ }
88
+ }
89
+ exports.TikTokAudiences = TikTokAudiences;
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/api/index.ts"],"names":[],"mappings":";;;AAEA,4CAA2D;AAG3D,4CAAoD;AAuBpD,MAAa,eAAe;IAI1B,YAAY,OAAsB,EAAE,oBAA6B;QA8CjE,qBAAgB,GAAG,KAAK,EAAE,cAAwB,EAAiC,EAAE;YACnF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBAC1B,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL,OAAO,EAAE,6DAA6D;wBACtE,IAAI,EAAE,eAAe;qBACtB;iBACF,CAAA;aACF;YACD,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,GAAG,oBAAQ,GAAG,8BAAkB,mBAAmB,EAAE;oBAC7G,MAAM,EAAE,KAAK;oBACb,YAAY,EAAE;wBACZ,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;qBAC/C;iBACF,CAAC,CAAA;gBAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;oBAC1B,MAAM;wBACJ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;wBAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;qBACvB,CAAA;iBACF;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjD,OAAO;wBACL,KAAK,EAAE,IAAI,CAAC,IAAI;wBAChB,KAAK,EAAE,iCAAqB,CAAC,IAAI,CAAC,aAAa,CAAC;qBACjD,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,OAAO;oBACL,OAAO,EAAE,OAAO;iBACjB,CAAA;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACxC,OAAO;wBACL,KAAK,EAAE,EAAE;wBACT,KAAK,EAAE,iCAAqB,CAAC,EAAE,CAAC;qBACjC,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,OAAO;oBACL,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE;wBACL,OAAO,EACJ,GAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,+CAA+C;wBACvG,IAAI,EAAG,GAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,yBAAyB;qBAC9F;iBACF,CAAA;aACF;QACH,CAAC,CAAA;QAjGC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,SAAiB;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,GAAG,8BAAkB,4BAA4B,EAAE;YAChF,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,aAAa,EAAE,IAAI,CAAC,oBAAoB,IAAI,EAAE;gBAC9C,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,SAAS;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,GAAG,8BAAkB,oBAAoB,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,aAAa,EAAE,IAAI,CAAC,oBAAoB;gBACxC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,GAAG,8BAAkB,mBAAmB,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,KAAK;SACvB,CAAC,CAAA;IACJ,CAAC;CAiEF;AAvGD,0CAuGC"}
@@ -0,0 +1,2 @@
1
+ export declare const TIKTOK_API_VERSION = "v1.3";
2
+ export declare const BASE_URL = "https://business-api.tiktok.com/open_api/";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASE_URL = exports.TIKTOK_API_VERSION = void 0;
4
+ exports.TIKTOK_API_VERSION = 'v1.3';
5
+ exports.BASE_URL = 'https://business-api.tiktok.com/open_api/';
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,MAAM,CAAA;AAC3B,QAAA,QAAQ,GAAG,2CAA2C,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { RequestClient } from '@segment/actions-core';
2
+ import { Audiences } from './types';
3
+ import { TikTokAudiences } from './api';
4
+ import { Payload as AddUserPayload } from './addUser/generated-types';
5
+ import { Payload as RemoveUserPayload } from './removeUser/generated-types';
6
+ import { Settings } from './generated-types';
7
+ declare type GenericPayload = AddUserPayload | RemoveUserPayload;
8
+ export declare function stringifyAdvertiserID(advertiser_id: string): string;
9
+ export declare function parseAdvertiserID(advertiser_id: string): string;
10
+ export declare function processPayload(request: RequestClient, settings: Settings, payloads: GenericPayload[], action: string): Promise<import("@segment/actions-core").ModifiedResponse<unknown> | undefined>;
11
+ export declare function validate(payloads: GenericPayload[]): void;
12
+ export declare function getAllAudiences(TikTokApiClient: TikTokAudiences): Promise<Audiences[]>;
13
+ export declare function getAudienceID(TikTokApiClient: TikTokAudiences, payload: GenericPayload, audiences: Audiences[]): Promise<string>;
14
+ export declare function getIDSchema(payload: GenericPayload): string[];
15
+ export declare function extractUsers(payloads: GenericPayload[], audienceID: string): {}[][];
16
+ export {};
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractUsers = exports.getIDSchema = exports.getAudienceID = exports.getAllAudiences = exports.validate = exports.processPayload = exports.parseAdvertiserID = exports.stringifyAdvertiserID = void 0;
4
+ const actions_core_1 = require("@segment/actions-core");
5
+ const crypto_1 = require("crypto");
6
+ const api_1 = require("./api");
7
+ function stringifyAdvertiserID(advertiser_id) {
8
+ return advertiser_id.replace(/^/, 'id_');
9
+ }
10
+ exports.stringifyAdvertiserID = stringifyAdvertiserID;
11
+ function parseAdvertiserID(advertiser_id) {
12
+ return advertiser_id.replace(/^id_/, '');
13
+ }
14
+ exports.parseAdvertiserID = parseAdvertiserID;
15
+ async function processPayload(request, settings, payloads, action) {
16
+ validate(payloads);
17
+ const selected_advertiser_id = payloads[0].selected_advertiser_id ?? undefined;
18
+ const TikTokApiClient = new api_1.TikTokAudiences(request, selected_advertiser_id);
19
+ const audiences = await getAllAudiences(TikTokApiClient);
20
+ const audience_id = await getAudienceID(TikTokApiClient, payloads[0], audiences);
21
+ const id_schema = getIDSchema(payloads[0]);
22
+ const users = extractUsers(payloads, audience_id);
23
+ let res;
24
+ if (users.length > 0) {
25
+ const elements = {
26
+ advertiser_ids: settings.advertiser_ids,
27
+ action: action,
28
+ id_schema: id_schema,
29
+ batch_data: users
30
+ };
31
+ res = await TikTokApiClient.batchUpdate(elements);
32
+ if (res.status !== 200) {
33
+ throw new actions_core_1.RetryableError('Error while attempting to update TikTok Audience. This batch will be retried.');
34
+ }
35
+ }
36
+ return res;
37
+ }
38
+ exports.processPayload = processPayload;
39
+ function validate(payloads) {
40
+ if (payloads[0].custom_audience_name !== payloads[0].personas_audience_key) {
41
+ throw new actions_core_1.IntegrationError('The value of `custom_audience_name` and `personas_audience_key` must match.', 'INVALID_SETTINGS', 400);
42
+ }
43
+ if (payloads[0].send_email === false && payloads[0].send_advertising_id === false) {
44
+ throw new actions_core_1.IntegrationError('At least one of `Send Email`, or `Send Advertising ID` must be set to `true`.', 'INVALID_SETTINGS', 400);
45
+ }
46
+ }
47
+ exports.validate = validate;
48
+ async function getAllAudiences(TikTokApiClient) {
49
+ let response = await TikTokApiClient.getAudiences(1, 100);
50
+ let audiences = response.data.data.list;
51
+ const total_number_audiences = response.data.data.page_info.total_number;
52
+ let recieved_audiences = 100;
53
+ let page_number = 2;
54
+ while (recieved_audiences < total_number_audiences) {
55
+ response = await TikTokApiClient.getAudiences(page_number, 100);
56
+ audiences = audiences.concat(response.data.data.list);
57
+ page_number += 1;
58
+ recieved_audiences += 100;
59
+ }
60
+ return audiences;
61
+ }
62
+ exports.getAllAudiences = getAllAudiences;
63
+ async function getAudienceID(TikTokApiClient, payload, audiences) {
64
+ let audienceID;
65
+ const audienceExists = audiences.filter(function (audience) {
66
+ if (audience.name === payload.custom_audience_name) {
67
+ return audience.audience_id;
68
+ }
69
+ });
70
+ if (audienceExists.length > 1) {
71
+ throw new actions_core_1.IntegrationError('Multiple audiences found with the same name', 'INVALID_SETTINGS', 400);
72
+ }
73
+ if (audienceExists.length == 1) {
74
+ audienceID = audienceExists[0].audience_id;
75
+ }
76
+ else {
77
+ const response = await TikTokApiClient.createAudience(payload);
78
+ audienceID = response.data.data.audience_id;
79
+ }
80
+ return audienceID;
81
+ }
82
+ exports.getAudienceID = getAudienceID;
83
+ function getIDSchema(payload) {
84
+ const id_schema = [];
85
+ if (payload.send_email === true) {
86
+ id_schema.push('EMAIL_SHA256');
87
+ }
88
+ if (payload.send_advertising_id === true) {
89
+ id_schema.push('IDFA_SHA256');
90
+ }
91
+ return id_schema;
92
+ }
93
+ exports.getIDSchema = getIDSchema;
94
+ function extractUsers(payloads, audienceID) {
95
+ const batch_data = [];
96
+ payloads.forEach((payload) => {
97
+ if (!payload.email && !payload.advertising_id) {
98
+ return;
99
+ }
100
+ const user_ids = [];
101
+ if (payload.send_email === true) {
102
+ let email_id = {};
103
+ if (payload.email) {
104
+ payload.email = payload.email.replace(/\+.*@/, '@').replace(/\./g, '').toLowerCase();
105
+ email_id = { id: crypto_1.createHash('sha256').update(payload.email).digest('hex'), audience_ids: [audienceID] };
106
+ }
107
+ user_ids.push(email_id);
108
+ }
109
+ if (payload.send_advertising_id === true) {
110
+ let advertising_id = {};
111
+ if (payload.advertising_id) {
112
+ advertising_id = {
113
+ id: crypto_1.createHash('sha256').update(payload.advertising_id).digest('hex'),
114
+ audience_ids: [audienceID]
115
+ };
116
+ }
117
+ user_ids.push(advertising_id);
118
+ }
119
+ batch_data.push(user_ids);
120
+ });
121
+ return batch_data;
122
+ }
123
+ exports.extractUsers = extractUsers;
124
+ //# 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_ids: 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,38 @@
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_ids: {
16
+ label: 'TikTok Advertiser IDs',
17
+ description: 'The Advertiser IDs where audiences should be synced.',
18
+ type: 'string',
19
+ required: true,
20
+ multiple: true
21
+ }
22
+ }
23
+ },
24
+ extendRequest({ auth }) {
25
+ return {
26
+ headers: {
27
+ 'Access-Token': `${auth?.accessToken}`,
28
+ 'Content-Type': 'application/json'
29
+ }
30
+ };
31
+ },
32
+ actions: {
33
+ addUser: addUser_1.default,
34
+ removeUser: removeUser_1.default
35
+ }
36
+ };
37
+ exports.default = destination;
38
+ //# 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,cAAc,EAAE;gBACd,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,sDAAsD;gBACnE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;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,11 @@
1
+ import { InputField } from '@segment/actions-core/src/destination-kit/types';
2
+ export declare const selected_advertiser_id: InputField;
3
+ export declare const custom_audience_name: InputField;
4
+ export declare const id_type: InputField;
5
+ export declare const email: InputField;
6
+ export declare const send_email: InputField;
7
+ export declare const advertising_id: InputField;
8
+ export declare const send_advertising_id: InputField;
9
+ export declare const event_name: InputField;
10
+ export declare const enable_batching: InputField;
11
+ export declare const personas_audience_key: InputField;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.personas_audience_key = exports.enable_batching = exports.event_name = exports.send_advertising_id = exports.advertising_id = exports.send_email = exports.email = exports.id_type = exports.custom_audience_name = exports.selected_advertiser_id = void 0;
4
+ exports.selected_advertiser_id = {
5
+ label: 'Advertiser ID',
6
+ description: 'The advertiser ID to use when syncing audiences.',
7
+ type: 'string',
8
+ dynamic: true,
9
+ required: true
10
+ };
11
+ exports.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
+ required: true
19
+ };
20
+ exports.id_type = {
21
+ label: 'ID Type',
22
+ description: 'Encryption type to be used for populating the audience. This field is set only when Segment creates a new audience.',
23
+ type: 'string',
24
+ choices: [
25
+ { label: 'Email', value: 'EMAIL_SHA256' },
26
+ { label: 'Phone', value: 'PHONE_SHA256' },
27
+ { label: 'Google Advertising ID', value: 'GAID_SHA256' },
28
+ { label: 'Android Advertising ID', value: 'AAID_SHA256' },
29
+ { label: 'iOS Advertising ID', value: 'IDFA_SHA256' }
30
+ ],
31
+ required: true
32
+ };
33
+ exports.email = {
34
+ label: 'User Email',
35
+ description: "The user's email address to send to TikTok.",
36
+ type: 'hidden',
37
+ default: {
38
+ '@path': '$.context.traits.email'
39
+ }
40
+ };
41
+ exports.send_email = {
42
+ label: 'Send Email',
43
+ description: 'Send email to TikTok. Segment will hash this value before sending',
44
+ type: 'boolean',
45
+ default: true
46
+ };
47
+ exports.advertising_id = {
48
+ label: 'User Advertising ID',
49
+ description: "The user's mobile dvertising ID to send to TikTok. This could be a GAID, IDFA, or AAID",
50
+ type: 'hidden',
51
+ default: {
52
+ '@path': '$.context.device.advertisingId'
53
+ }
54
+ };
55
+ exports.send_advertising_id = {
56
+ label: 'Send Mobile Advertising ID',
57
+ description: 'Send mobile advertising ID (IDFA, AAID or GAID) to TikTok. Segment will hash this value before sending.',
58
+ type: 'boolean',
59
+ default: true
60
+ };
61
+ exports.event_name = {
62
+ label: 'Event Name',
63
+ description: 'The name of the current Segment event.',
64
+ type: 'hidden',
65
+ default: {
66
+ '@path': '$.event'
67
+ }
68
+ };
69
+ exports.enable_batching = {
70
+ label: 'Enable Batching',
71
+ description: 'Enable batching of requests to the TikTok Audiences.',
72
+ type: 'boolean',
73
+ default: true
74
+ };
75
+ exports.personas_audience_key = {
76
+ label: 'Segment Engage Audience Key',
77
+ 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.',
78
+ type: 'string'
79
+ };
80
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAe;IAChD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,oBAAoB,GAAe;IAC9C,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,sTAAsT;IACxT,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,2BAA2B;KACrC;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,OAAO,GAAe;IACjC,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,qHAAqH;IACvH,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;QACzC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;QACzC,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE;QACxD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,aAAa,EAAE;QACzD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE;KACtD;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,KAAK,GAAe;IAC/B,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,6CAA6C;IAC1D,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,wBAAwB;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,mEAAmE;IAChF,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,cAAc,GAAe;IACxC,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,wFAAwF;IACrG,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,gCAAgC;KAC1C;CACF,CAAA;AAEY,QAAA,mBAAmB,GAAe;IAC7C,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,yGAAyG;IAC3G,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;KACnB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,sDAAsD;IACnE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;CACd,CAAA;AAEY,QAAA,qBAAqB,GAAe;IAC/C,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,+LAA+L;IACjM,IAAI,EAAE,QAAQ;CACf,CAAA"}
@@ -0,0 +1,12 @@
1
+ export interface Payload {
2
+ selected_advertiser_id: string;
3
+ custom_audience_name: string;
4
+ id_type: string;
5
+ email?: string;
6
+ advertising_id?: string;
7
+ send_email?: boolean;
8
+ send_advertising_id?: boolean;
9
+ event_name?: string;
10
+ enable_batching?: boolean;
11
+ personas_audience_key?: string;
12
+ }
@@ -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,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const functions_1 = require("../functions");
4
+ const properties_1 = require("../properties");
5
+ const api_1 = require("../api");
6
+ const action = {
7
+ title: 'Remove Users',
8
+ description: 'Remove contacts from an Engage Audience to a TikTok Audience Segment.',
9
+ defaultSubscription: 'event = "Audience Exited"',
10
+ fields: {
11
+ selected_advertiser_id: { ...properties_1.selected_advertiser_id },
12
+ custom_audience_name: { ...properties_1.custom_audience_name },
13
+ id_type: { ...properties_1.id_type },
14
+ email: { ...properties_1.email },
15
+ advertising_id: { ...properties_1.advertising_id },
16
+ send_email: { ...properties_1.send_email },
17
+ send_advertising_id: { ...properties_1.send_advertising_id },
18
+ event_name: { ...properties_1.event_name },
19
+ enable_batching: { ...properties_1.enable_batching },
20
+ personas_audience_key: { ...properties_1.personas_audience_key }
21
+ },
22
+ dynamicFields: {
23
+ selected_advertiser_id: async (request, { settings }) => {
24
+ try {
25
+ const tiktok = new api_1.TikTokAudiences(request);
26
+ return tiktok.fetchAdvertisers(settings.advertiser_ids);
27
+ }
28
+ catch (err) {
29
+ return {
30
+ choices: [],
31
+ error: {
32
+ message: JSON.stringify(err),
33
+ code: '500'
34
+ }
35
+ };
36
+ }
37
+ }
38
+ },
39
+ perform: async (request, { settings, payload }) => {
40
+ return functions_1.processPayload(request, settings, [payload], 'delete');
41
+ },
42
+ performBatch: async (request, { settings, payload }) => {
43
+ return functions_1.processPayload(request, settings, payload, 'delete');
44
+ }
45
+ };
46
+ exports.default = action;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/removeUser/index.ts"],"names":[],"mappings":";;AAGA,4CAA6C;AAC7C,8CAWsB;AACtB,gCAAwC;AAExC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,uEAAuE;IACpF,mBAAmB,EAAE,2BAA2B;IAChD,MAAM,EAAE;QACN,sBAAsB,EAAE,EAAE,GAAG,mCAAsB,EAAE;QACrD,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,OAAO,EAAE,EAAE,GAAG,oBAAO,EAAE;QACvB,KAAK,EAAE,EAAE,GAAG,kBAAK,EAAE;QACnB,cAAc,EAAE,EAAE,GAAG,2BAAc,EAAE;QACrC,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;QAC/C,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;KACpD;IACD,aAAa,EAAE;QACb,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtD,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,CAAA;gBAE3C,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;aACxD;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;wBAC5B,IAAI,EAAE,KAAK;qBACZ;iBACF,CAAA;aACF;QACH,CAAC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,0BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;CACF,CAAA;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":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@segment/action-destinations",
3
3
  "description": "Destination Actions engine and definitions.",
4
- "version": "3.133.0",
4
+ "version": "3.133.1-tiktok-append-id.24+e92fca5db",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -68,5 +68,5 @@
68
68
  "lcov"
69
69
  ]
70
70
  },
71
- "gitHead": "e46c080524ccf5ea07837e2d15ce3a3840df69d0"
71
+ "gitHead": "e92fca5dbddad12fe4ba990c9b7de9a4a217f7df"
72
72
  }