@segment/action-destinations 3.264.1-startconn-3468.1 → 3.265.0-staging-013364e7f
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/amazon-ads/generated-types.d.ts +0 -9
- package/dist/destinations/amazon-ads/index.d.ts +2 -2
- package/dist/destinations/amazon-ads/index.js +3 -180
- package/dist/destinations/amazon-ads/index.js.map +1 -1
- package/dist/destinations/amazon-ads/syncAudiences/generated-types.d.ts +0 -11
- package/dist/destinations/amazon-ads/syncAudiences/index.js +7 -235
- package/dist/destinations/amazon-ads/syncAudiences/index.js.map +1 -1
- package/dist/destinations/amazon-ads/types.d.ts +0 -25
- package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
- package/dist/destinations/chartmogul/index.js +1 -1
- package/dist/destinations/chartmogul/index.js.map +1 -1
- package/dist/destinations/dynamic-yield-audiences/constants.d.ts +5 -1
- package/dist/destinations/dynamic-yield-audiences/constants.js +6 -2
- package/dist/destinations/dynamic-yield-audiences/constants.js.map +1 -1
- package/dist/destinations/dynamic-yield-audiences/generated-types.d.ts +4 -2
- package/dist/destinations/dynamic-yield-audiences/helpers.d.ts +2 -3
- package/dist/destinations/dynamic-yield-audiences/helpers.js +21 -7
- package/dist/destinations/dynamic-yield-audiences/helpers.js.map +1 -1
- package/dist/destinations/dynamic-yield-audiences/index.d.ts +3 -3
- package/dist/destinations/dynamic-yield-audiences/index.js +86 -27
- package/dist/destinations/dynamic-yield-audiences/index.js.map +1 -1
- package/dist/destinations/dynamic-yield-audiences/syncAudience/generated-types.d.ts +9 -4
- package/dist/destinations/dynamic-yield-audiences/syncAudience/index.d.ts +3 -3
- package/dist/destinations/dynamic-yield-audiences/syncAudience/index.js +109 -39
- package/dist/destinations/dynamic-yield-audiences/syncAudience/index.js.map +1 -1
- package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +2 -1
- package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
- package/dist/destinations/gameball/index.js +1 -1
- package/dist/destinations/gameball/index.js.map +1 -1
- package/dist/destinations/hubspot/upsertCustomObjectRecord/index.js +2 -2
- package/dist/destinations/hubspot/upsertCustomObjectRecord/index.js.map +1 -1
- package/dist/destinations/index.js +2 -0
- package/dist/destinations/index.js.map +1 -1
- package/dist/destinations/kameleoon/group/generated-types.d.ts +1 -0
- package/dist/destinations/kameleoon/group/index.js +9 -0
- package/dist/destinations/kameleoon/group/index.js.map +1 -1
- package/dist/destinations/kameleoon/identify/generated-types.d.ts +1 -0
- package/dist/destinations/kameleoon/identify/index.js +9 -0
- package/dist/destinations/kameleoon/identify/index.js.map +1 -1
- package/dist/destinations/kameleoon/page/generated-types.d.ts +1 -0
- package/dist/destinations/kameleoon/page/index.js +9 -0
- package/dist/destinations/kameleoon/page/index.js.map +1 -1
- package/dist/destinations/klaviyo/functions.d.ts +5 -1
- package/dist/destinations/klaviyo/functions.js +102 -1
- package/dist/destinations/klaviyo/functions.js.map +1 -1
- package/dist/destinations/klaviyo/index.js +7 -1
- package/dist/destinations/klaviyo/index.js.map +1 -1
- package/dist/destinations/klaviyo/orderCompleted/generated-types.d.ts +1 -4
- package/dist/destinations/klaviyo/orderCompleted/index.js +6 -15
- package/dist/destinations/klaviyo/orderCompleted/index.js.map +1 -1
- package/dist/destinations/klaviyo/properties.js +1 -1
- package/dist/destinations/klaviyo/subscribeProfile/generated-types.d.ts +8 -0
- package/dist/destinations/klaviyo/subscribeProfile/generated-types.js +3 -0
- package/dist/destinations/klaviyo/subscribeProfile/generated-types.js.map +1 -0
- package/dist/destinations/klaviyo/subscribeProfile/index.d.ts +5 -0
- package/dist/destinations/klaviyo/subscribeProfile/index.js +137 -0
- package/dist/destinations/klaviyo/subscribeProfile/index.js.map +1 -0
- package/dist/destinations/klaviyo/trackEvent/index.js +1 -0
- package/dist/destinations/klaviyo/trackEvent/index.js.map +1 -1
- package/dist/destinations/klaviyo/types.d.ts +68 -1
- package/dist/destinations/klaviyo/unsubscribeProfile/generated-types.d.ts +6 -0
- package/dist/destinations/klaviyo/unsubscribeProfile/generated-types.js +3 -0
- package/dist/destinations/klaviyo/unsubscribeProfile/generated-types.js.map +1 -0
- package/dist/destinations/klaviyo/unsubscribeProfile/index.d.ts +5 -0
- package/dist/destinations/klaviyo/unsubscribeProfile/index.js +118 -0
- package/dist/destinations/klaviyo/unsubscribeProfile/index.js.map +1 -0
- package/dist/destinations/koala/identify/index.js +6 -1
- package/dist/destinations/koala/identify/index.js.map +1 -1
- package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js +2 -2
- package/dist/destinations/liveramp-audiences/audienceEnteredS3/index.js.map +1 -1
- package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js +2 -2
- package/dist/destinations/liveramp-audiences/audienceEnteredSftp/index.js.map +1 -1
- package/dist/destinations/magellan-ai/addToCart/generated-types.d.ts +11 -0
- package/dist/destinations/magellan-ai/addToCart/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/addToCart/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/addToCart/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/addToCart/index.js +22 -0
- package/dist/destinations/magellan-ai/addToCart/index.js.map +1 -0
- package/dist/destinations/magellan-ai/checkout/generated-types.d.ts +17 -0
- package/dist/destinations/magellan-ai/checkout/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/checkout/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/checkout/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/checkout/index.js +16 -0
- package/dist/destinations/magellan-ai/checkout/index.js.map +1 -0
- package/dist/destinations/magellan-ai/code/generated-types.d.ts +4 -0
- package/dist/destinations/magellan-ai/code/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/code/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/code/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/code/index.js +27 -0
- package/dist/destinations/magellan-ai/code/index.js.map +1 -0
- package/dist/destinations/magellan-ai/generated-types.d.ts +4 -0
- package/dist/destinations/magellan-ai/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/identify/generated-types.d.ts +3 -0
- package/dist/destinations/magellan-ai/identify/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/identify/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/identify/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/identify/index.js +20 -0
- package/dist/destinations/magellan-ai/identify/index.js.map +1 -0
- package/dist/destinations/magellan-ai/index.d.ts +4 -0
- package/dist/destinations/magellan-ai/index.js +60 -0
- package/dist/destinations/magellan-ai/index.js.map +1 -0
- package/dist/destinations/magellan-ai/install/generated-types.d.ts +12 -0
- package/dist/destinations/magellan-ai/install/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/install/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/install/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/install/index.js +13 -0
- package/dist/destinations/magellan-ai/install/index.js.map +1 -0
- package/dist/destinations/magellan-ai/lead/generated-types.d.ts +9 -0
- package/dist/destinations/magellan-ai/lead/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/lead/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/lead/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/lead/index.js +49 -0
- package/dist/destinations/magellan-ai/lead/index.js.map +1 -0
- package/dist/destinations/magellan-ai/product/generated-types.d.ts +10 -0
- package/dist/destinations/magellan-ai/product/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/product/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/product/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/product/index.js +13 -0
- package/dist/destinations/magellan-ai/product/index.js.map +1 -0
- package/dist/destinations/magellan-ai/purchase/generated-types.d.ts +18 -0
- package/dist/destinations/magellan-ai/purchase/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/purchase/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/purchase/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/purchase/index.js +22 -0
- package/dist/destinations/magellan-ai/purchase/index.js.map +1 -0
- package/dist/destinations/magellan-ai/schema.d.ts +6 -0
- package/dist/destinations/magellan-ai/schema.js +244 -0
- package/dist/destinations/magellan-ai/schema.js.map +1 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/generated-types.d.ts +16 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/index.js +28 -0
- package/dist/destinations/magellan-ai/thirdPartyEvent/index.js.map +1 -0
- package/dist/destinations/magellan-ai/utils.d.ts +5 -0
- package/dist/destinations/magellan-ai/utils.js +16 -0
- package/dist/destinations/magellan-ai/utils.js.map +1 -0
- package/dist/destinations/magellan-ai/view/generated-types.d.ts +3 -0
- package/dist/destinations/magellan-ai/view/generated-types.js +3 -0
- package/dist/destinations/magellan-ai/view/generated-types.js.map +1 -0
- package/dist/destinations/magellan-ai/view/index.d.ts +5 -0
- package/dist/destinations/magellan-ai/view/index.js +21 -0
- package/dist/destinations/magellan-ai/view/index.js.map +1 -0
- package/dist/destinations/marketo-static-lists/addToList/index.js +17 -3
- package/dist/destinations/marketo-static-lists/addToList/index.js.map +1 -1
- package/dist/destinations/marketo-static-lists/functions.d.ts +0 -8
- package/dist/destinations/marketo-static-lists/functions.js +4 -6
- package/dist/destinations/marketo-static-lists/functions.js.map +1 -1
- package/dist/destinations/moloco-rmp/common/convert.js +17 -29
- package/dist/destinations/moloco-rmp/common/convert.js.map +1 -1
- package/dist/destinations/responsys/index.js +6 -2
- package/dist/destinations/responsys/index.js.map +1 -1
- package/dist/destinations/responsys/sendAudience/generated-types.d.ts +1 -1
- package/dist/destinations/responsys/sendAudience/index.js +14 -4
- package/dist/destinations/responsys/sendAudience/index.js.map +1 -1
- package/dist/destinations/responsys/sendCustomTraits/generated-types.d.ts +1 -1
- package/dist/destinations/responsys/sendCustomTraits/index.js +14 -4
- package/dist/destinations/responsys/sendCustomTraits/index.js.map +1 -1
- package/dist/destinations/responsys/utils.d.ts +2 -2
- package/dist/destinations/responsys/utils.js +21 -5
- package/dist/destinations/responsys/utils.js.map +1 -1
- package/dist/destinations/responsys-cloud/generated-types.d.ts +20 -0
- package/dist/destinations/responsys-cloud/generated-types.js +3 -0
- package/dist/destinations/responsys-cloud/generated-types.js.map +1 -0
- package/dist/destinations/responsys-cloud/index.d.ts +4 -0
- package/dist/destinations/responsys-cloud/index.js +207 -0
- package/dist/destinations/responsys-cloud/index.js.map +1 -0
- package/dist/destinations/responsys-cloud/sendAudience/generated-types.d.ts +16 -0
- package/dist/destinations/responsys-cloud/sendAudience/generated-types.js +3 -0
- package/dist/destinations/responsys-cloud/sendAudience/generated-types.js.map +1 -0
- package/dist/destinations/responsys-cloud/sendAudience/index.d.ts +5 -0
- package/dist/destinations/responsys-cloud/sendAudience/index.js +109 -0
- package/dist/destinations/responsys-cloud/sendAudience/index.js.map +1 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/generated-types.d.ts +11 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/generated-types.js +3 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/generated-types.js.map +1 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/index.d.ts +5 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/index.js +72 -0
- package/dist/destinations/responsys-cloud/sendCustomTraits/index.js.map +1 -0
- package/dist/destinations/responsys-cloud/shared_properties.d.ts +3 -0
- package/dist/destinations/responsys-cloud/shared_properties.js +19 -0
- package/dist/destinations/responsys-cloud/shared_properties.js.map +1 -0
- package/dist/destinations/responsys-cloud/types.d.ts +38 -0
- package/dist/destinations/{engage/sendgrid/Profile.js → responsys-cloud/types.js} +1 -1
- package/dist/destinations/responsys-cloud/types.js.map +1 -0
- package/dist/destinations/responsys-cloud/upsertListMember/generated-types.d.ts +14 -0
- package/dist/destinations/responsys-cloud/upsertListMember/generated-types.js +3 -0
- package/dist/destinations/responsys-cloud/upsertListMember/generated-types.js.map +1 -0
- package/dist/destinations/responsys-cloud/upsertListMember/index.d.ts +5 -0
- package/dist/destinations/responsys-cloud/upsertListMember/index.js +85 -0
- package/dist/destinations/responsys-cloud/upsertListMember/index.js.map +1 -0
- package/dist/destinations/responsys-cloud/utils.d.ts +20 -0
- package/dist/destinations/responsys-cloud/utils.js +179 -0
- package/dist/destinations/responsys-cloud/utils.js.map +1 -0
- package/dist/destinations/segment/segment-properties.d.ts +1 -0
- package/dist/destinations/segment/segment-properties.js +8 -1
- package/dist/destinations/segment/segment-properties.js.map +1 -1
- package/dist/destinations/segment/sendGroup/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendGroup/index.js +2 -0
- package/dist/destinations/segment/sendGroup/index.js.map +1 -1
- package/dist/destinations/segment/sendIdentify/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendIdentify/index.js +2 -0
- package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
- package/dist/destinations/segment/sendPage/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendPage/index.js +2 -0
- package/dist/destinations/segment/sendPage/index.js.map +1 -1
- package/dist/destinations/segment/sendScreen/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendScreen/index.js +2 -0
- package/dist/destinations/segment/sendScreen/index.js.map +1 -1
- package/dist/destinations/segment/sendTrack/generated-types.d.ts +1 -0
- package/dist/destinations/segment/sendTrack/index.js +2 -0
- package/dist/destinations/segment/sendTrack/index.js.map +1 -1
- package/dist/destinations/segment-profiles/segment-properties.d.ts +1 -0
- package/dist/destinations/segment-profiles/segment-properties.js +8 -1
- package/dist/destinations/segment-profiles/segment-properties.js.map +1 -1
- package/dist/destinations/segment-profiles/sendGroup/generated-types.d.ts +1 -0
- package/dist/destinations/segment-profiles/sendGroup/index.js +3 -1
- package/dist/destinations/segment-profiles/sendGroup/index.js.map +1 -1
- package/dist/destinations/segment-profiles/sendIdentify/generated-types.d.ts +1 -0
- package/dist/destinations/segment-profiles/sendIdentify/index.js +3 -1
- package/dist/destinations/segment-profiles/sendIdentify/index.js.map +1 -1
- package/dist/destinations/segment-profiles/sendSubscription/generated-types.d.ts +1 -0
- package/dist/destinations/segment-profiles/sendSubscription/index.js +3 -1
- package/dist/destinations/segment-profiles/sendSubscription/index.js.map +1 -1
- package/dist/destinations/segment-profiles/sendSubscription/subscription-properties.d.ts +1 -0
- package/dist/destinations/segment-profiles/sendSubscription/subscription-properties.js +8 -1
- package/dist/destinations/segment-profiles/sendSubscription/subscription-properties.js.map +1 -1
- package/dist/destinations/segment-profiles/sendTrack/generated-types.d.ts +1 -0
- package/dist/destinations/segment-profiles/sendTrack/index.js +3 -1
- package/dist/destinations/segment-profiles/sendTrack/index.js.map +1 -1
- package/dist/destinations/tiktok-conversions/index.js +163 -75
- package/dist/destinations/tiktok-conversions/index.js.map +1 -1
- package/dist/destinations/tiktok-conversions/reportWebEvent/generated-types.d.ts +12 -4
- package/dist/destinations/tiktok-conversions/reportWebEvent/index.d.ts +1 -1
- package/dist/destinations/tiktok-conversions/reportWebEvent/index.js +5 -233
- package/dist/destinations/tiktok-conversions/reportWebEvent/index.js.map +1 -1
- package/dist/destinations/xtremepush/identify/index.js +2 -2
- package/dist/destinations/xtremepush/identify/index.js.map +1 -1
- package/dist/destinations/xtremepush/index.js.map +1 -1
- package/dist/destinations/xtremepush/track/index.js +2 -2
- package/dist/destinations/xtremepush/track/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/destinations/engage/sendgrid/Profile.d.ts +0 -6
- package/dist/destinations/engage/sendgrid/Profile.js.map +0 -1
- package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +0 -21
- package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +0 -174
- package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +0 -1
- package/dist/destinations/mixpanel/utils.d.ts +0 -13
- package/dist/destinations/mixpanel/utils.js +0 -117
- package/dist/destinations/mixpanel/utils.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { AudienceDestinationDefinition } from '@segment/actions-core';
|
|
2
|
-
import type { Settings
|
|
3
|
-
declare const destination: AudienceDestinationDefinition<Settings
|
|
2
|
+
import type { Settings } from './generated-types';
|
|
3
|
+
declare const destination: AudienceDestinationDefinition<Settings>;
|
|
4
4
|
export default destination;
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const actions_core_1 = require("@segment/actions-core");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
7
|
const syncAudiences_1 = __importDefault(require("./syncAudiences"));
|
|
9
8
|
const destination = {
|
|
10
9
|
name: 'Amazon Ads',
|
|
@@ -21,15 +20,12 @@ const destination = {
|
|
|
21
20
|
{ label: 'Europe (EU)', value: 'https://advertising-api-eu.amazon.com' },
|
|
22
21
|
{ label: 'Far East (FE)', value: 'https://advertising-api-fe.amazon.com' }
|
|
23
22
|
],
|
|
24
|
-
default: '
|
|
23
|
+
default: 'North America (NA)',
|
|
25
24
|
type: 'string',
|
|
26
25
|
required: true
|
|
27
26
|
}
|
|
28
27
|
},
|
|
29
28
|
testAuthentication: async (request, { auth }) => {
|
|
30
|
-
if (!process.env.ACTIONS_AMAZON_ADS_CLIENT_ID) {
|
|
31
|
-
throw new actions_core_1.IntegrationError('Missing amazon API client ID', 'MISSING_REQUIRED_FIELD', 400);
|
|
32
|
-
}
|
|
33
29
|
if (!auth?.accessToken) {
|
|
34
30
|
throw new actions_core_1.InvalidAuthenticationError('Please authenticate via Oauth before enabling the destination.');
|
|
35
31
|
}
|
|
@@ -72,188 +68,15 @@ const destination = {
|
|
|
72
68
|
extendRequest({ auth }) {
|
|
73
69
|
return {
|
|
74
70
|
headers: {
|
|
75
|
-
authorization: `Bearer ${auth?.accessToken}
|
|
76
|
-
'Amazon-Advertising-API-ClientID': process.env.ACTIONS_AMAZON_ADS_CLIENT_ID || ''
|
|
71
|
+
authorization: `Bearer ${auth?.accessToken}`
|
|
77
72
|
}
|
|
78
73
|
};
|
|
79
74
|
},
|
|
80
|
-
audienceFields: {
|
|
81
|
-
description: {
|
|
82
|
-
type: 'string',
|
|
83
|
-
label: 'Description',
|
|
84
|
-
required: true,
|
|
85
|
-
description: 'The audience description. Must be an alphanumeric, non-null string between 0 to 1000 characters in length.'
|
|
86
|
-
},
|
|
87
|
-
countryCode: {
|
|
88
|
-
type: 'string',
|
|
89
|
-
label: 'Country Code',
|
|
90
|
-
required: true,
|
|
91
|
-
description: 'A String value representing ISO 3166-1 alpha-2 country code for the members in this audience.'
|
|
92
|
-
},
|
|
93
|
-
externalAudienceId: {
|
|
94
|
-
type: 'string',
|
|
95
|
-
label: 'External Audience Id',
|
|
96
|
-
required: true,
|
|
97
|
-
description: 'The user-defined audience identifier.'
|
|
98
|
-
},
|
|
99
|
-
cpmCents: {
|
|
100
|
-
label: 'CPM Cents',
|
|
101
|
-
type: 'number',
|
|
102
|
-
description: `Cost per thousand impressions (CPM) in cents. For example, $1.00 = 100 cents.`
|
|
103
|
-
},
|
|
104
|
-
currency: {
|
|
105
|
-
label: 'Currency',
|
|
106
|
-
type: 'string',
|
|
107
|
-
description: `The price paid. Base units depend on the currency. As an example, USD should be reported as Dollars.Cents, whereas JPY should be reported as a whole number of Yen. All provided values will be rounded to two digits with toFixed(2)`
|
|
108
|
-
},
|
|
109
|
-
ttl: {
|
|
110
|
-
type: 'number',
|
|
111
|
-
label: 'Time-to-live',
|
|
112
|
-
required: false,
|
|
113
|
-
description: 'Time-to-live in seconds. The amount of time the record is associated with the audience.'
|
|
114
|
-
},
|
|
115
|
-
advertiserId: {
|
|
116
|
-
label: 'Advertiser ID',
|
|
117
|
-
description: 'Advertiser Id',
|
|
118
|
-
type: 'string',
|
|
119
|
-
required: true
|
|
120
|
-
}
|
|
121
|
-
},
|
|
75
|
+
audienceFields: {},
|
|
122
76
|
audienceConfig: {
|
|
123
77
|
mode: {
|
|
124
78
|
type: 'synced',
|
|
125
79
|
full_audience_sync: false
|
|
126
|
-
},
|
|
127
|
-
async createAudience(request, createAudienceInput) {
|
|
128
|
-
const { audienceName, statsContext } = createAudienceInput;
|
|
129
|
-
const endpoint = createAudienceInput.settings.region;
|
|
130
|
-
const description = createAudienceInput.audienceSettings?.description;
|
|
131
|
-
const advertiser_id = createAudienceInput.audienceSettings?.advertiserId;
|
|
132
|
-
const external_audience_id = createAudienceInput.audienceSettings?.externalAudienceId;
|
|
133
|
-
const country_code = createAudienceInput.audienceSettings?.countryCode;
|
|
134
|
-
const ttl = createAudienceInput.audienceSettings?.ttl;
|
|
135
|
-
const currency = createAudienceInput.audienceSettings?.currency;
|
|
136
|
-
const cpm_cents = createAudienceInput.audienceSettings?.cpmCents;
|
|
137
|
-
const { statsClient, tags: statsTags } = statsContext || {};
|
|
138
|
-
const statsName = 'createAmazonAudience';
|
|
139
|
-
statsTags?.push(`slug:${destination.slug}`);
|
|
140
|
-
statsClient?.incr(`${statsName}.intialise`, 1, statsTags);
|
|
141
|
-
if (!advertiser_id) {
|
|
142
|
-
throw new actions_core_1.IntegrationError('Missing advertiserId value', 'MISSING_REQUIRED_FIELD', 400);
|
|
143
|
-
}
|
|
144
|
-
if (!description) {
|
|
145
|
-
throw new actions_core_1.IntegrationError('Missing Description value', 'MISSING_REQUIRED_FIELD', 400);
|
|
146
|
-
}
|
|
147
|
-
if (!external_audience_id) {
|
|
148
|
-
throw new actions_core_1.IntegrationError('Missing External Audience Id value', 'MISSING_REQUIRED_FIELD', 400);
|
|
149
|
-
}
|
|
150
|
-
if (!audienceName) {
|
|
151
|
-
throw new actions_core_1.IntegrationError('Missing Audience name value', 'MISSING_REQUIRED_FIELD', 400);
|
|
152
|
-
}
|
|
153
|
-
const payload = {
|
|
154
|
-
name: audienceName,
|
|
155
|
-
description: description,
|
|
156
|
-
targetResource: {
|
|
157
|
-
advertiserId: advertiser_id
|
|
158
|
-
},
|
|
159
|
-
metadata: {
|
|
160
|
-
externalAudienceId: external_audience_id
|
|
161
|
-
},
|
|
162
|
-
countryCode: country_code
|
|
163
|
-
};
|
|
164
|
-
if (ttl) {
|
|
165
|
-
payload.metadata.ttl = ttl;
|
|
166
|
-
}
|
|
167
|
-
if (cpm_cents && currency) {
|
|
168
|
-
payload.metadata.audienceFees = [];
|
|
169
|
-
payload.metadata?.audienceFees.push({
|
|
170
|
-
currency,
|
|
171
|
-
cpmCents: cpm_cents
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
statsTags?.push(`slug:${destination.slug}`);
|
|
175
|
-
statsClient?.incr(`${statsName}.call`, 1, statsTags);
|
|
176
|
-
try {
|
|
177
|
-
let payloadString = JSON.stringify(payload);
|
|
178
|
-
const regex = /"advertiserId":"(\d+)"/;
|
|
179
|
-
payloadString = payloadString.replace(regex, '"advertiserId":$1');
|
|
180
|
-
const response = await request(`${endpoint}/amc/audiences/metadata`, {
|
|
181
|
-
method: 'POST',
|
|
182
|
-
body: payloadString,
|
|
183
|
-
headers: {
|
|
184
|
-
'Content-Type': 'application/vnd.amcaudiences.v1+json'
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
const res = await response.text();
|
|
188
|
-
const resString = res.replace(/"audienceId":(\d+)/, '"audienceId":"$1"');
|
|
189
|
-
const externalId = JSON.parse(resString)['audienceId'];
|
|
190
|
-
if (!externalId) {
|
|
191
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
192
|
-
throw new actions_core_1.IntegrationError('Invalid response from create audience request', 'INVALID_RESPONSE', 400);
|
|
193
|
-
}
|
|
194
|
-
statsClient?.incr(`${statsName}.success`, 1, statsTags);
|
|
195
|
-
return {
|
|
196
|
-
externalId
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
catch (e) {
|
|
200
|
-
if (e instanceof utils_1.AmazonAdsError) {
|
|
201
|
-
const message = JSON.parse(e.response?.data?.message || '');
|
|
202
|
-
statsTags?.push(`error:${message}`);
|
|
203
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
204
|
-
throw new actions_core_1.APIError(message, e.response?.status);
|
|
205
|
-
}
|
|
206
|
-
else if (e instanceof actions_core_1.IntegrationError) {
|
|
207
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
208
|
-
statsTags?.push(`error:${e.message}`);
|
|
209
|
-
throw new actions_core_1.APIError(e.message, 400);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
statsTags?.push(`error:${e}`);
|
|
213
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
214
|
-
throw e;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
async getAudience(request, getAudienceInput) {
|
|
219
|
-
const { statsContext } = getAudienceInput;
|
|
220
|
-
const audience_id = getAudienceInput.externalId;
|
|
221
|
-
const endpoint = getAudienceInput.settings.region;
|
|
222
|
-
const { statsClient, tags: statsTags } = statsContext || {};
|
|
223
|
-
const statsName = 'getAudience';
|
|
224
|
-
statsTags?.push(`slug:${destination.slug}`);
|
|
225
|
-
statsClient?.incr(`${statsName}.call`, 1, statsTags);
|
|
226
|
-
if (!audience_id) {
|
|
227
|
-
throw new actions_core_1.IntegrationError('Missing audience_id value', 'MISSING_REQUIRED_FIELD', 400);
|
|
228
|
-
}
|
|
229
|
-
try {
|
|
230
|
-
const response = await request(`${endpoint}/amc/audiences/metadata/${audience_id}`, {
|
|
231
|
-
method: 'GET'
|
|
232
|
-
});
|
|
233
|
-
const res = await response.text();
|
|
234
|
-
const resString = res.replace(/"audienceId":(\d+)/, '"audienceId":"$1"');
|
|
235
|
-
const externalId = JSON.parse(resString)['audienceId'];
|
|
236
|
-
if (externalId != getAudienceInput.externalId) {
|
|
237
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
238
|
-
throw new actions_core_1.IntegrationError("Unable to verify ownership over audience. Segment Audience ID doesn't match Amazon Ads ID.", 'INVALID_REQUEST_DATA', 400);
|
|
239
|
-
}
|
|
240
|
-
statsClient?.incr(`${statsName}.success`, 1, statsTags);
|
|
241
|
-
return {
|
|
242
|
-
externalId
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
catch (e) {
|
|
246
|
-
if (e instanceof utils_1.AmazonAdsError) {
|
|
247
|
-
const message = JSON.parse(e.response?.data?.message || '');
|
|
248
|
-
throw new actions_core_1.APIError(message, e.response?.status);
|
|
249
|
-
}
|
|
250
|
-
else if (e instanceof actions_core_1.IntegrationError) {
|
|
251
|
-
throw new actions_core_1.APIError(e.message, 400);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
throw e;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
80
|
}
|
|
258
81
|
},
|
|
259
82
|
actions: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/amazon-ads/index.ts"],"names":[],"mappings":";;;;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/amazon-ads/index.ts"],"names":[],"mappings":";;;;;AACA,wDAAgG;AAIhG,oEAA2C;AAG3C,MAAM,WAAW,GAA4C;IAC3D,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,6CAA6C;gBAC1D,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,oCAAoC,EAAE;oBAC5E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,uCAAuC,EAAE;oBACxE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,uCAAuC,EAAE;iBAC3E;gBACD,OAAO,EAAE,oBAAoB;gBAC7B,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;gBACtB,MAAM,IAAI,yCAA0B,CAAC,gEAAgE,CAAC,CAAA;aACvG;YAED,IAAI;gBACF,MAAM,OAAO,CAAuB,gDAAgD,EAAE;oBACpF,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;aACH;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,KAAK,GAAG,CAAkC,CAAA;gBAChD,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE;oBACpC,MAAM,IAAI,KAAK,CACb,4HAA4H,CAC7H,CAAA;iBACF;gBACD,MAAM,CAAC,CAAA;aACR;QACH,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,IAAI,GAAG,CAAA;YAEP,IAAI;gBACF,GAAG,GAAG,MAAM,OAAO,CAAuB,sCAAsC,EAAE;oBAChF,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,eAAe,CAAC;wBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;wBAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;wBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;wBAChC,UAAU,EAAE,eAAe;qBAC5B,CAAC;iBACH,CAAC,CAAA;aACH;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,KAAK,GAAG,CAA4B,CAAA;gBAC1C,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,KAAK,eAAe,EAAE;oBACnD,MAAM,IAAI,+BAAgB,CACxB,wHAAwH,EACxH,yBAAU,CAAC,qBAAqB,EAChC,GAAG,CACJ,CAAA;iBACF;gBAED,MAAM,IAAI,+BAAgB,CACxB,+CAA+C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAC5E,yBAAU,CAAC,oBAAoB,EAC/B,GAAG,CACJ,CAAA;aACF;YAED,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACjD,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QACpB,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;aAC7C;SACF,CAAA;IACH,CAAC;IAED,cAAc,EAAE,EAAE;IAElB,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,KAAK;SAC1B;KAWF;IACD,OAAO,EAAE;QACP,aAAa,EAAb,uBAAa;KACd;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
1
|
export interface Payload {
|
|
2
|
-
event_name?: string;
|
|
3
|
-
externalUserId: string;
|
|
4
|
-
email?: string;
|
|
5
|
-
firstName?: string;
|
|
6
|
-
lastName?: string;
|
|
7
|
-
phone?: string;
|
|
8
|
-
postal?: string;
|
|
9
|
-
state?: string;
|
|
10
|
-
city?: string;
|
|
11
|
-
address?: string;
|
|
12
|
-
audienceId: string;
|
|
13
2
|
}
|
|
@@ -1,243 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const actions_core_1 = require("@segment/actions-core");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const crypto_1 = require("crypto");
|
|
6
3
|
const action = {
|
|
7
|
-
title: 'Sync
|
|
4
|
+
title: 'Sync Audiences',
|
|
8
5
|
description: 'Sync audiences from Segment to Amazon Ads Audience.',
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type: 'string',
|
|
15
|
-
unsafe_hidden: true,
|
|
16
|
-
default: {
|
|
17
|
-
'@path': '$.event'
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
externalUserId: {
|
|
21
|
-
label: 'External User ID',
|
|
22
|
-
description: 'This is an external user identifier defined by data providers.',
|
|
23
|
-
type: 'string',
|
|
24
|
-
required: true,
|
|
25
|
-
default: { '@path': '$.userId' }
|
|
26
|
-
},
|
|
27
|
-
email: {
|
|
28
|
-
label: 'Email',
|
|
29
|
-
description: 'User email address. Vaule will be hashed before sending to Amazon.',
|
|
30
|
-
type: 'string',
|
|
31
|
-
required: false,
|
|
32
|
-
default: {
|
|
33
|
-
'@if': {
|
|
34
|
-
exists: { '@path': '$.context.properties.email' },
|
|
35
|
-
then: { '@path': '$.context.properties.email' },
|
|
36
|
-
else: { '@path': '$.properties.email' }
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
firstName: {
|
|
41
|
-
label: 'First name',
|
|
42
|
-
description: 'User first name. Vaue will be hashed before sending to Amazon.',
|
|
43
|
-
type: 'string',
|
|
44
|
-
required: false,
|
|
45
|
-
default: {
|
|
46
|
-
'@if': {
|
|
47
|
-
exists: { '@path': '$.context.properties.first_name' },
|
|
48
|
-
then: { '@path': '$.context.properties.first_name' },
|
|
49
|
-
else: { '@path': '$.properties.first_name' }
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
lastName: {
|
|
54
|
-
label: 'Last name',
|
|
55
|
-
description: 'User Last name. Vaue will be hashed before sending to Amazon.',
|
|
56
|
-
type: 'string',
|
|
57
|
-
required: false,
|
|
58
|
-
default: {
|
|
59
|
-
'@if': {
|
|
60
|
-
exists: { '@path': '$.context.properties.last_name' },
|
|
61
|
-
then: { '@path': '$.context.properties.last_name' },
|
|
62
|
-
else: { '@path': '$.properties.last_name' }
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
phone: {
|
|
67
|
-
label: 'Phone',
|
|
68
|
-
description: 'Phone Number. Vaue will be hashed before sending to Amazon.',
|
|
69
|
-
type: 'string',
|
|
70
|
-
required: false,
|
|
71
|
-
default: {
|
|
72
|
-
'@if': {
|
|
73
|
-
exists: { '@path': '$.context.properties.phone' },
|
|
74
|
-
then: { '@path': '$.context.properties.phone' },
|
|
75
|
-
else: { '@path': '$.properties.phone' }
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
postal: {
|
|
80
|
-
label: 'Postal',
|
|
81
|
-
description: 'POstal Code. Vaue will be hashed before sending to Amazon.',
|
|
82
|
-
type: 'string',
|
|
83
|
-
required: false,
|
|
84
|
-
default: {
|
|
85
|
-
'@if': {
|
|
86
|
-
exists: { '@path': '$.context.properties.postal' },
|
|
87
|
-
then: { '@path': '$.context.properties.postal' },
|
|
88
|
-
else: { '@path': '$.properties.postal' }
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
state: {
|
|
93
|
-
label: 'Postal',
|
|
94
|
-
description: 'State Code. Vaue will be hashed before sending to Amazon.',
|
|
95
|
-
type: 'string',
|
|
96
|
-
required: false,
|
|
97
|
-
default: {
|
|
98
|
-
'@if': {
|
|
99
|
-
exists: { '@path': '$.context.properties.state' },
|
|
100
|
-
then: { '@path': '$.context.properties.state' },
|
|
101
|
-
else: { '@path': '$.properties.state' }
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
city: {
|
|
106
|
-
label: 'City',
|
|
107
|
-
description: 'City name. Vaue will be hashed before sending to Amazon.',
|
|
108
|
-
type: 'string',
|
|
109
|
-
required: false,
|
|
110
|
-
default: {
|
|
111
|
-
'@if': {
|
|
112
|
-
exists: { '@path': '$.context.properties.city' },
|
|
113
|
-
then: { '@path': '$.context.properties.city' },
|
|
114
|
-
else: { '@path': '$.properties.city' }
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
address: {
|
|
119
|
-
label: 'Address',
|
|
120
|
-
description: 'Address Code. Value will be hashed before sending to Amazon.',
|
|
121
|
-
type: 'string',
|
|
122
|
-
required: false,
|
|
123
|
-
default: {
|
|
124
|
-
'@if': {
|
|
125
|
-
exists: { '@path': '$.context.properties.address' },
|
|
126
|
-
then: { '@path': '$.context.properties.address' },
|
|
127
|
-
else: { '@path': '$.properties.address' }
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
audienceId: {
|
|
132
|
-
label: 'Audience ID',
|
|
133
|
-
type: 'string',
|
|
134
|
-
required: true,
|
|
135
|
-
description: 'An number value representing the Amazon audience identifier. This is the identifier that is returned during audience creation.',
|
|
136
|
-
default: {
|
|
137
|
-
'@path': '$.context.personas.external_audience_id'
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
perform: (request, { settings, payload, statsContext, audienceSettings }) => {
|
|
142
|
-
return processPayload(request, settings, [payload], statsContext, audienceSettings);
|
|
143
|
-
},
|
|
144
|
-
performBatch: (request, { settings, payload: payloads, statsContext, audienceSettings }) => {
|
|
145
|
-
return processPayload(request, settings, payloads, statsContext, audienceSettings);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
async function processPayload(request, settings, payload, statsContext, audienceSettings) {
|
|
149
|
-
if (payload.length && !payload[0].audienceId) {
|
|
150
|
-
throw new actions_core_1.PayloadValidationError('Audience ID is required.');
|
|
151
|
-
}
|
|
152
|
-
const { statsClient, tags: statsTags } = statsContext || {};
|
|
153
|
-
const statsName = 'syncAmazonAudience';
|
|
154
|
-
statsClient?.incr(`${statsName}.intialise`, 1, statsTags);
|
|
155
|
-
try {
|
|
156
|
-
const payloadRecord = createPayloadToUploadRecords(payload, audienceSettings);
|
|
157
|
-
const response = await request(`${settings.region}/amc/audiences/records`, {
|
|
158
|
-
method: 'POST',
|
|
159
|
-
json: payloadRecord,
|
|
160
|
-
headers: {
|
|
161
|
-
'Content-Type': 'application/vnd.amcaudiences.v1+json'
|
|
162
|
-
}
|
|
6
|
+
fields: {},
|
|
7
|
+
perform: (request, data) => {
|
|
8
|
+
return request('https://example.com', {
|
|
9
|
+
method: 'post',
|
|
10
|
+
json: data.payload
|
|
163
11
|
});
|
|
164
|
-
const result = await response.json();
|
|
165
|
-
const jobRequestId = result?.jobRequestId;
|
|
166
|
-
statsTags?.push(`jobRequestId:${jobRequestId}`);
|
|
167
|
-
statsClient?.incr(`${statsName}.success`, 1, statsTags);
|
|
168
|
-
if (!jobRequestId) {
|
|
169
|
-
throw new actions_core_1.IntegrationError('Invalid response from upload audinece record call', 'INVALID_RESPONSE', 400);
|
|
170
|
-
}
|
|
171
|
-
return {
|
|
172
|
-
result
|
|
173
|
-
};
|
|
174
12
|
}
|
|
175
|
-
|
|
176
|
-
if (e instanceof utils_1.AmazonAdsError) {
|
|
177
|
-
const message = JSON.parse(e.response?.data?.message || '');
|
|
178
|
-
statsTags?.push(`error:${message}`);
|
|
179
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
180
|
-
throw new actions_core_1.APIError(message, e.response?.status);
|
|
181
|
-
}
|
|
182
|
-
else if (e instanceof actions_core_1.IntegrationError) {
|
|
183
|
-
statsTags?.push(`error:${e.message}`);
|
|
184
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
185
|
-
throw new actions_core_1.APIError(e.message, 400);
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
statsTags?.push(`error:${e}`);
|
|
189
|
-
statsClient?.incr(`${statsName}.error`, 1, statsTags);
|
|
190
|
-
throw e;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
function createPayloadToUploadRecords(payloads, audienceSettings) {
|
|
195
|
-
const records = [];
|
|
196
|
-
const { audienceId } = payloads[0];
|
|
197
|
-
payloads.forEach((payload) => {
|
|
198
|
-
const hashedPII = {};
|
|
199
|
-
if (payload.firstName) {
|
|
200
|
-
hashedPII.firstname = normalizeAndHash(payload.firstName);
|
|
201
|
-
}
|
|
202
|
-
if (payload.lastName) {
|
|
203
|
-
hashedPII.lastname = normalizeAndHash(payload.lastName);
|
|
204
|
-
}
|
|
205
|
-
if (payload.address) {
|
|
206
|
-
hashedPII.address = normalizeAndHash(payload.address);
|
|
207
|
-
}
|
|
208
|
-
if (payload.postal) {
|
|
209
|
-
hashedPII.postal = normalizeAndHash(payload.postal);
|
|
210
|
-
}
|
|
211
|
-
if (payload.phone) {
|
|
212
|
-
hashedPII.phone = normalizeAndHash(payload.phone);
|
|
213
|
-
}
|
|
214
|
-
if (payload.city) {
|
|
215
|
-
hashedPII.city = normalizeAndHash(payload.city);
|
|
216
|
-
}
|
|
217
|
-
if (payload.state) {
|
|
218
|
-
hashedPII.state = normalizeAndHash(payload.state);
|
|
219
|
-
}
|
|
220
|
-
if (payload.email) {
|
|
221
|
-
hashedPII.email = normalizeAndHash(payload.email);
|
|
222
|
-
}
|
|
223
|
-
const payloadRecord = {
|
|
224
|
-
externalUserId: payload.externalUserId,
|
|
225
|
-
countryCode: audienceSettings.countryCode,
|
|
226
|
-
action: payload.event_name == 'Audience Entered' ? 'CREATE' : 'DELETE',
|
|
227
|
-
hashedPII: [hashedPII]
|
|
228
|
-
};
|
|
229
|
-
records.push(payloadRecord);
|
|
230
|
-
});
|
|
231
|
-
return {
|
|
232
|
-
records: records,
|
|
233
|
-
audienceId: audienceId
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
function normalizeAndHash(data) {
|
|
237
|
-
const normalizedData = data.toLowerCase().trim();
|
|
238
|
-
const hash = crypto_1.createHash('sha256');
|
|
239
|
-
hash.update(normalizedData);
|
|
240
|
-
return hash.digest('hex');
|
|
241
|
-
}
|
|
13
|
+
};
|
|
242
14
|
exports.default = action;
|
|
243
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/amazon-ads/syncAudiences/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/amazon-ads/syncAudiences/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACzB,OAAO,OAAO,CAAC,qBAAqB,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,OAAO;SACnB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -20,28 +20,3 @@ export declare class AmazonRefreshTokenError extends HTTPError {
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
export interface HashedPIIObject {
|
|
24
|
-
firstname?: string;
|
|
25
|
-
lastname?: string;
|
|
26
|
-
phone?: string;
|
|
27
|
-
city?: string;
|
|
28
|
-
state?: string;
|
|
29
|
-
postal?: string;
|
|
30
|
-
email?: string;
|
|
31
|
-
address?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface AudienceRecord {
|
|
34
|
-
hashedPII: HashedPIIObject[];
|
|
35
|
-
externalUserId: string;
|
|
36
|
-
countryCode: string;
|
|
37
|
-
action: string;
|
|
38
|
-
}
|
|
39
|
-
export interface TargetResourceRecords {
|
|
40
|
-
connectionId: string;
|
|
41
|
-
targetTypes: string[];
|
|
42
|
-
}
|
|
43
|
-
export interface AudienceRecordPayload {
|
|
44
|
-
records: AudienceRecord[];
|
|
45
|
-
targetResource: TargetResourceRecords;
|
|
46
|
-
audienceId: number;
|
|
47
|
-
}
|
|
@@ -9,7 +9,7 @@ export declare const dateStringToFuzzyDate: (dateString: string | number) => fal
|
|
|
9
9
|
y: string;
|
|
10
10
|
};
|
|
11
11
|
export declare const augmentFieldsWithConstituentFields: (fields: Record<string, InputField>) => Record<string, InputField>;
|
|
12
|
-
export declare const splitConstituentPayload: (payload: CreateOrUpdateIndividualConstituentPayload) => (Partial<
|
|
12
|
+
export declare const splitConstituentPayload: (payload: CreateOrUpdateIndividualConstituentPayload) => (Partial<Constituent> | Partial<Address> | Partial<OnlinePresence> | Partial<Phone>)[];
|
|
13
13
|
export declare const buildConstituentPayloadFromPayload: (payload: StringIndexedObject) => Partial<CreateOrUpdateIndividualConstituentPayload>;
|
|
14
14
|
export declare const buildGiftDataFromPayload: (constituentId: string, payload: CreateGiftPayload) => Partial<Gift>;
|
|
15
15
|
export declare const buildConstituentActionDataFromPayload: (constituentId: string, payload: CreateConstituentAction) => Partial<ConstituentAction>;
|
|
@@ -7,7 +7,7 @@ const actions_core_1 = require("@segment/actions-core");
|
|
|
7
7
|
const sendContact_1 = __importDefault(require("./sendContact"));
|
|
8
8
|
const sendCustomer_1 = __importDefault(require("./sendCustomer"));
|
|
9
9
|
const destination = {
|
|
10
|
-
name: '
|
|
10
|
+
name: 'ChartMogul',
|
|
11
11
|
slug: 'actions-chartmogul',
|
|
12
12
|
mode: 'cloud',
|
|
13
13
|
description: 'Send Contacts and Customers to ChartMogul.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/chartmogul/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAAkE;AAElE,gEAAuC;AAEvC,kEAAyC;AAEzC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/chartmogul/index.ts"],"names":[],"mappings":";;;;;AAEA,wDAAkE;AAElE,gEAAuC;AAEvC,kEAAyC;AAEzC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,4CAA4C;IACzD,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,sBAAsB,EAAE;gBACtB,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,wDAAwD;gBACrE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAA;YACxD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBACnD,MAAM,IAAI,yCAA0B,CAAC,8CAA8C,CAAC,CAAA;aACrF;YAED,OAAO,OAAO,CAAC,SAAS,EAAE;gBACxB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE;aACT,CAAC,CAAA;QACJ,CAAC;KACF;IAED,OAAO,EAAE;QACP,WAAW,EAAX,qBAAW;QACX,YAAY,EAAZ,sBAAY;KACb;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.IDENTIFIER_TYPES = void 0;
|
|
4
|
+
exports.IDENTIFIER_TYPES = {
|
|
5
|
+
EMAIL: 'Email',
|
|
6
|
+
SEGMENT_USER_ID: 'Segment User ID',
|
|
7
|
+
SEGMENT_ANONYMOUS_ID: 'Segment Anonymous ID'
|
|
8
|
+
};
|
|
5
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/dynamic-yield-audiences/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/destinations/dynamic-yield-audiences/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC5B,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,sBAAsB;CAC/C,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Settings } from './generated-types';
|
|
2
1
|
export declare function hashAndEncode(property: string): string;
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
2
|
+
export declare function getUpsertURL(dataCenter: string): string;
|
|
3
|
+
export declare function getCreateAudienceURL(dataCenter: string): string;
|