@segment/action-destinations 3.131.1-tiktok-audiences.12 → 3.132.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/destinations/algolia-insights/algolia-insight-api.d.ts +26 -0
- package/dist/destinations/algolia-insights/algolia-insight-api.js +8 -0
- package/dist/destinations/algolia-insights/algolia-insight-api.js.map +1 -0
- package/dist/destinations/algolia-insights/conversionEvents/generated-types.d.ts +9 -0
- package/dist/destinations/{tiktok-audiences → algolia-insights/conversionEvents}/generated-types.js +0 -0
- package/dist/destinations/algolia-insights/conversionEvents/generated-types.js.map +1 -0
- package/dist/destinations/algolia-insights/conversionEvents/index.d.ts +6 -0
- package/dist/destinations/algolia-insights/conversionEvents/index.js +83 -0
- package/dist/destinations/algolia-insights/conversionEvents/index.js.map +1 -0
- package/dist/destinations/algolia-insights/generated-types.d.ts +4 -0
- package/dist/destinations/{tiktok-audiences/updateAudience → algolia-insights}/generated-types.js +0 -0
- package/dist/destinations/algolia-insights/generated-types.js.map +1 -0
- package/dist/destinations/algolia-insights/index.d.ts +5 -0
- package/dist/destinations/algolia-insights/index.js +54 -0
- package/dist/destinations/algolia-insights/index.js.map +1 -0
- package/dist/destinations/algolia-insights/productClickedEvents/generated-types.d.ts +8 -0
- package/dist/destinations/algolia-insights/productClickedEvents/generated-types.js +3 -0
- package/dist/destinations/algolia-insights/productClickedEvents/generated-types.js.map +1 -0
- package/dist/destinations/algolia-insights/productClickedEvents/index.d.ts +6 -0
- package/dist/destinations/algolia-insights/productClickedEvents/index.js +91 -0
- package/dist/destinations/algolia-insights/productClickedEvents/index.js.map +1 -0
- package/dist/destinations/algolia-insights/productViewedEvents/generated-types.d.ts +7 -0
- package/dist/destinations/algolia-insights/productViewedEvents/generated-types.js +3 -0
- package/dist/destinations/algolia-insights/productViewedEvents/generated-types.js.map +1 -0
- package/dist/destinations/algolia-insights/productViewedEvents/index.d.ts +6 -0
- package/dist/destinations/algolia-insights/productViewedEvents/index.js +81 -0
- package/dist/destinations/algolia-insights/productViewedEvents/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/api/index.d.ts +20 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/api/index.js +133 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/api/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/constants/index.d.ts +2 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/constants/index.js +6 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/constants/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/fixtures.d.ts +80 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/fixtures.js +151 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/fixtures.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/generated-types.d.ts +35 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/generated-types.js +3 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/generated-types.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/index.d.ts +5 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/index.js +619 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/createOrUpdateIndividualConstituent/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/generated-types.d.ts +3 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/generated-types.js +3 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/generated-types.js.map +1 -0
- package/dist/destinations/{tiktok-audiences → blackbaud-raisers-edge-nxt}/index.d.ts +0 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/index.js +53 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/types/index.d.ts +67 -0
- package/dist/destinations/{tiktok-audiences/types.js → blackbaud-raisers-edge-nxt/types/index.js} +1 -1
- package/dist/destinations/blackbaud-raisers-edge-nxt/types/index.js.map +1 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +8 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.js +44 -0
- package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.js.map +1 -0
- package/dist/destinations/heap/flat.d.ts +1 -2
- package/dist/destinations/heap/flat.js +11 -1
- package/dist/destinations/heap/flat.js.map +1 -1
- package/dist/destinations/heap/heapUtils.d.ts +8 -0
- package/dist/destinations/heap/heapUtils.js +41 -0
- package/dist/destinations/heap/heapUtils.js.map +1 -0
- package/dist/destinations/heap/trackEvent/generated-types.d.ts +0 -1
- package/dist/destinations/heap/trackEvent/index.js +18 -54
- package/dist/destinations/heap/trackEvent/index.js.map +1 -1
- package/dist/destinations/index.js +6 -1
- package/dist/destinations/index.js.map +1 -1
- package/dist/destinations/launchpad/generated-types.d.ts +5 -0
- package/dist/destinations/launchpad/generated-types.js +3 -0
- package/dist/destinations/launchpad/generated-types.js.map +1 -0
- package/dist/destinations/launchpad/groupIdentifyUser/generated-types.d.ts +9 -0
- package/dist/destinations/launchpad/groupIdentifyUser/generated-types.js +3 -0
- package/dist/destinations/launchpad/groupIdentifyUser/generated-types.js.map +1 -0
- package/dist/destinations/launchpad/groupIdentifyUser/index.d.ts +5 -0
- package/dist/destinations/launchpad/groupIdentifyUser/index.js +79 -0
- package/dist/destinations/launchpad/groupIdentifyUser/index.js.map +1 -0
- package/dist/destinations/launchpad/identifyUser/generated-types.d.ts +8 -0
- package/dist/destinations/launchpad/identifyUser/generated-types.js +3 -0
- package/dist/destinations/launchpad/identifyUser/generated-types.js.map +1 -0
- package/dist/destinations/launchpad/identifyUser/index.d.ts +5 -0
- package/dist/destinations/launchpad/identifyUser/index.js +79 -0
- package/dist/destinations/launchpad/identifyUser/index.js.map +1 -0
- package/dist/destinations/launchpad/index.d.ts +4 -0
- package/dist/destinations/launchpad/index.js +96 -0
- package/dist/destinations/launchpad/index.js.map +1 -0
- package/dist/destinations/launchpad/launchpad-types.d.ts +28 -0
- package/dist/destinations/launchpad/launchpad-types.js +3 -0
- package/dist/destinations/launchpad/launchpad-types.js.map +1 -0
- package/dist/destinations/launchpad/trackEvent/generated-types.d.ts +18 -0
- package/dist/destinations/launchpad/trackEvent/generated-types.js +3 -0
- package/dist/destinations/launchpad/trackEvent/generated-types.js.map +1 -0
- package/dist/destinations/launchpad/trackEvent/index.d.ts +5 -0
- package/dist/destinations/launchpad/trackEvent/index.js +62 -0
- package/dist/destinations/launchpad/trackEvent/index.js.map +1 -0
- package/dist/destinations/launchpad/trackEvent/launchpad-properties.d.ts +2 -0
- package/dist/destinations/launchpad/trackEvent/launchpad-properties.js +87 -0
- package/dist/destinations/launchpad/trackEvent/launchpad-properties.js.map +1 -0
- package/dist/destinations/launchpad/utils.d.ts +6 -0
- package/dist/destinations/launchpad/utils.js +20 -0
- package/dist/destinations/launchpad/utils.js.map +1 -0
- package/dist/destinations/livelike-cloud/generated-types.d.ts +4 -0
- package/dist/destinations/livelike-cloud/generated-types.js +3 -0
- package/dist/destinations/livelike-cloud/generated-types.js.map +1 -0
- package/dist/destinations/livelike-cloud/index.d.ts +4 -0
- package/dist/destinations/livelike-cloud/index.js +84 -0
- package/dist/destinations/livelike-cloud/index.js.map +1 -0
- package/dist/destinations/livelike-cloud/properties.d.ts +1 -0
- package/dist/destinations/livelike-cloud/properties.js +5 -0
- package/dist/destinations/livelike-cloud/properties.js.map +1 -0
- package/dist/destinations/livelike-cloud/trackEvent/generated-types.d.ts +11 -0
- package/dist/destinations/livelike-cloud/trackEvent/generated-types.js +3 -0
- package/dist/destinations/livelike-cloud/trackEvent/generated-types.js.map +1 -0
- package/dist/destinations/livelike-cloud/trackEvent/index.d.ts +5 -0
- package/dist/destinations/livelike-cloud/trackEvent/index.js +101 -0
- package/dist/destinations/livelike-cloud/trackEvent/index.js.map +1 -0
- package/dist/destinations/pinterest-conversions/generated-types.d.ts +4 -0
- package/dist/destinations/pinterest-conversions/generated-types.js +3 -0
- package/dist/destinations/pinterest-conversions/generated-types.js.map +1 -0
- package/dist/destinations/pinterest-conversions/index.d.ts +4 -0
- package/dist/destinations/pinterest-conversions/index.js +35 -0
- package/dist/destinations/pinterest-conversions/index.js.map +1 -0
- package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.d.ts +2 -0
- package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.js +3 -0
- package/dist/destinations/pinterest-conversions/reportConversionEvent/generated-types.js.map +1 -0
- package/dist/destinations/{tiktok-audiences/updateAudience → pinterest-conversions/reportConversionEvent}/index.d.ts +0 -0
- package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js +11 -0
- package/dist/destinations/pinterest-conversions/reportConversionEvent/index.js.map +1 -0
- package/dist/destinations/twilio-studio/generated-types.d.ts +6 -0
- package/dist/destinations/twilio-studio/generated-types.js +3 -0
- package/dist/destinations/twilio-studio/generated-types.js.map +1 -0
- package/dist/destinations/twilio-studio/index.d.ts +4 -0
- package/dist/destinations/twilio-studio/index.js +55 -0
- package/dist/destinations/twilio-studio/index.js.map +1 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.d.ts +8 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.js +3 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/generated-types.js.map +1 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/index.d.ts +5 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/index.js +84 -0
- package/dist/destinations/twilio-studio/triggerStudioFlow/index.js.map +1 -0
- package/dist/destinations/twilio-studio/utils.d.ts +29 -0
- package/dist/destinations/twilio-studio/utils.js +43 -0
- package/dist/destinations/twilio-studio/utils.js.map +1 -0
- package/dist/destinations/vwo/identifyUser/index.js +6 -6
- package/dist/destinations/vwo/identifyUser/index.js.map +1 -1
- package/dist/destinations/vwo/index.js +1 -1
- package/dist/destinations/vwo/index.js.map +1 -1
- package/dist/destinations/vwo/pageVisit/index.js +6 -6
- package/dist/destinations/vwo/pageVisit/index.js.map +1 -1
- package/dist/destinations/vwo/trackEvent/index.js +7 -7
- package/dist/destinations/vwo/trackEvent/index.js.map +1 -1
- package/dist/destinations/vwo/utility.js +2 -2
- package/package.json +4 -4
- package/dist/destinations/tiktok-audiences/api/index.d.ts +0 -11
- package/dist/destinations/tiktok-audiences/api/index.js +0 -38
- package/dist/destinations/tiktok-audiences/api/index.js.map +0 -1
- package/dist/destinations/tiktok-audiences/constants.d.ts +0 -2
- package/dist/destinations/tiktok-audiences/constants.js +0 -6
- package/dist/destinations/tiktok-audiences/constants.js.map +0 -1
- package/dist/destinations/tiktok-audiences/generated-types.d.ts +0 -3
- package/dist/destinations/tiktok-audiences/generated-types.js.map +0 -1
- package/dist/destinations/tiktok-audiences/index.js +0 -35
- package/dist/destinations/tiktok-audiences/index.js.map +0 -1
- package/dist/destinations/tiktok-audiences/types.d.ts +0 -33
- package/dist/destinations/tiktok-audiences/types.js.map +0 -1
- package/dist/destinations/tiktok-audiences/updateAudience/generated-types.d.ts +0 -9
- package/dist/destinations/tiktok-audiences/updateAudience/generated-types.js.map +0 -1
- package/dist/destinations/tiktok-audiences/updateAudience/index.js +0 -160
- package/dist/destinations/tiktok-audiences/updateAudience/index.js.map +0 -1
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const utility_1 = require("../utility");
|
|
4
4
|
const action = {
|
|
5
5
|
title: 'Track Event',
|
|
6
|
-
description:
|
|
6
|
+
description: `Sends Segment's track event to VWO`,
|
|
7
7
|
defaultSubscription: 'type = "track"',
|
|
8
8
|
fields: {
|
|
9
9
|
name: {
|
|
10
|
-
description: '
|
|
10
|
+
description: 'Name of the event',
|
|
11
11
|
label: 'Name',
|
|
12
12
|
required: true,
|
|
13
13
|
type: 'string',
|
|
@@ -16,7 +16,7 @@ const action = {
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
properties: {
|
|
19
|
-
description: '
|
|
19
|
+
description: 'JSON object containing additional properties that will be associated with the event.',
|
|
20
20
|
label: 'Properties',
|
|
21
21
|
required: false,
|
|
22
22
|
type: 'object',
|
|
@@ -34,7 +34,7 @@ const action = {
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
page: {
|
|
37
|
-
description: '
|
|
37
|
+
description: 'Contains context information regarding a webpage',
|
|
38
38
|
label: 'Page',
|
|
39
39
|
required: true,
|
|
40
40
|
type: 'object',
|
|
@@ -43,7 +43,7 @@ const action = {
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
ip: {
|
|
46
|
-
description: 'IP
|
|
46
|
+
description: 'IP address of the user',
|
|
47
47
|
label: 'IP Address',
|
|
48
48
|
required: false,
|
|
49
49
|
type: 'string',
|
|
@@ -52,7 +52,7 @@ const action = {
|
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
userAgent: {
|
|
55
|
-
description: 'User
|
|
55
|
+
description: 'User-Agent of the user',
|
|
56
56
|
label: 'User Agent',
|
|
57
57
|
required: true,
|
|
58
58
|
type: 'string',
|
|
@@ -61,7 +61,7 @@ const action = {
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
timestamp: {
|
|
64
|
-
description: 'Timestamp',
|
|
64
|
+
description: 'Timestamp on the event',
|
|
65
65
|
label: 'Timestamp',
|
|
66
66
|
required: true,
|
|
67
67
|
type: 'string',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/vwo/trackEvent/index.ts"],"names":[],"mappings":";;AAGA,wCAA6D;AAE7D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/vwo/trackEvent/index.ts"],"names":[],"mappings":";;AAGA,wCAA6D;AAE7D,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,oCAAoC;IACjD,mBAAmB,EAAE,gBAAgB;IACrC,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,mBAAmB;YAChC,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;aACnB;SACF;QACD,UAAU,EAAE;YACV,WAAW,EAAE,sFAAsF;YACnG,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,cAAc;aACxB;SACF;QACD,OAAO,EAAE;YACP,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,uBAAuB;aACjC;SACF;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,kDAAkD;YAC/D,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,gBAAgB;aAC1B;SACF;QACD,EAAE,EAAE;YACF,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,cAAc;aACxB;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,qBAAqB;aAC/B;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;aACvB;SACF;KACF;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,MAAM,kBAAkB,GAAG,2BAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1D,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,uBAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7F,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAA;QAChE,MAAM,QAAQ,GAAG,sDAAsD,kBAAkB,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAA;QACtH,OAAO,OAAO,CAAC,QAAQ,EAAE;YACvB,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -45,13 +45,13 @@ function formatPayload(name, payload, isCustomEvent, isTrack = false) {
|
|
|
45
45
|
}
|
|
46
46
|
exports.formatPayload = formatPayload;
|
|
47
47
|
function sanitiseEventName(name) {
|
|
48
|
-
return '
|
|
48
|
+
return 'segment.' + name;
|
|
49
49
|
}
|
|
50
50
|
exports.sanitiseEventName = sanitiseEventName;
|
|
51
51
|
function formatAttributes(attributes) {
|
|
52
52
|
const formattedAttributes = {};
|
|
53
53
|
for (const key in attributes) {
|
|
54
|
-
formattedAttributes[`
|
|
54
|
+
formattedAttributes[`segment.${key}`] = attributes[key];
|
|
55
55
|
}
|
|
56
56
|
return formattedAttributes;
|
|
57
57
|
}
|
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.
|
|
4
|
+
"version": "3.132.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@amplitude/ua-parser-js": "^0.7.25",
|
|
41
41
|
"@segment/a1-notation": "^2.1.4",
|
|
42
|
-
"@segment/actions-core": "^3.
|
|
43
|
-
"@segment/actions-shared": "^1.
|
|
42
|
+
"@segment/actions-core": "^3.52.0",
|
|
43
|
+
"@segment/actions-shared": "^1.34.0",
|
|
44
44
|
"@types/node": "^18.11.15",
|
|
45
45
|
"cheerio": "^1.0.0-rc.10",
|
|
46
46
|
"dayjs": "^1.10.7",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"lcov"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "b057e9e882022cd1f1f7926aa495acc24c3d5c47"
|
|
72
72
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { RequestClient, ModifiedResponse } from '@segment/actions-core';
|
|
2
|
-
import type { Settings } from '../generated-types';
|
|
3
|
-
import type { Payload } from '../updateAudience/generated-types';
|
|
4
|
-
import type { GetAudienceAPIResponse, CreateAudienceAPIResponse } from '../types';
|
|
5
|
-
export declare class TikTokAudiences {
|
|
6
|
-
request: RequestClient;
|
|
7
|
-
constructor(request: RequestClient);
|
|
8
|
-
getAudiences(settings: Settings, page_number: number, page_size: number): Promise<ModifiedResponse<GetAudienceAPIResponse>>;
|
|
9
|
-
createAudience(settings: Settings, payload: Payload): Promise<ModifiedResponse<CreateAudienceAPIResponse>>;
|
|
10
|
-
batchUpdate(elements: {}): Promise<ModifiedResponse>;
|
|
11
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TikTokAudiences = void 0;
|
|
4
|
-
const constants_1 = require("../constants");
|
|
5
|
-
class TikTokAudiences {
|
|
6
|
-
constructor(request) {
|
|
7
|
-
this.request = request;
|
|
8
|
-
}
|
|
9
|
-
async getAudiences(settings, page_number, page_size) {
|
|
10
|
-
return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/dmp/custom_audience/list/`, {
|
|
11
|
-
method: 'GET',
|
|
12
|
-
searchParams: {
|
|
13
|
-
advertiser_id: settings.advertiser_id,
|
|
14
|
-
page: page_number,
|
|
15
|
-
page_size: page_size
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
async createAudience(settings, payload) {
|
|
20
|
-
return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/audience/`, {
|
|
21
|
-
method: 'POST',
|
|
22
|
-
json: {
|
|
23
|
-
custom_audience_name: payload.custom_audience_name,
|
|
24
|
-
advertiser_id: settings.advertiser_id,
|
|
25
|
-
id_type: payload.id_type,
|
|
26
|
-
action: 'create'
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
async batchUpdate(elements) {
|
|
31
|
-
return this.request(`${constants_1.BASE_URL}${constants_1.TIKTOK_API_VERSION}/segment/mapping/`, {
|
|
32
|
-
method: 'POST',
|
|
33
|
-
json: elements
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.TikTokAudiences = TikTokAudiences;
|
|
38
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/api/index.ts"],"names":[],"mappings":";;;AAGA,4CAA2D;AAG3D,MAAa,eAAe;IAG1B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAkB,EAClB,WAAmB,EACnB,SAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,oBAAQ,GAAG,8BAAkB,4BAA4B,EAAE;YAChF,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,SAAS;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB,EAAE,OAAgB;QACvD,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,QAAQ,CAAC,aAAa;gBACrC,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;SACf,CAAC,CAAA;IACJ,CAAC;CACF;AAxCD,0CAwCC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +0,0 @@
|
|
|
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 updateAudience_1 = __importDefault(require("./updateAudience"));
|
|
7
|
-
const destination = {
|
|
8
|
-
name: 'TikTok Audiences',
|
|
9
|
-
slug: 'actions-tiktok-audiences',
|
|
10
|
-
mode: 'cloud',
|
|
11
|
-
authentication: {
|
|
12
|
-
scheme: 'oauth2',
|
|
13
|
-
fields: {
|
|
14
|
-
advertiser_id: {
|
|
15
|
-
label: 'TikTok Advertiser ID',
|
|
16
|
-
description: 'The Advertiser ID where audiences should be synced.',
|
|
17
|
-
type: 'string',
|
|
18
|
-
required: true
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
extendRequest({ auth }) {
|
|
23
|
-
return {
|
|
24
|
-
headers: {
|
|
25
|
-
'Access-Token': `${auth?.accessToken}`,
|
|
26
|
-
'Content-Type': 'application/json'
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
},
|
|
30
|
-
actions: {
|
|
31
|
-
updateAudience: updateAudience_1.default
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
exports.default = destination;
|
|
35
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/index.ts"],"names":[],"mappings":";;;;;AAIA,sEAA6C;AAE7C,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,cAAc,EAAd,wBAAc;KACf;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/tiktok-audiences/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/updateAudience/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,160 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/tiktok-audiences/updateAudience/index.ts"],"names":[],"mappings":"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"}
|