@segment/action-destinations 3.296.0-staging-b963b9484 → 3.296.0-staging-80e58f6b9

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 (101) hide show
  1. package/dist/destinations/blackbaud-raisers-edge-nxt/utils/index.d.ts +1 -1
  2. package/dist/destinations/customerio/utils.d.ts +1 -1
  3. package/dist/destinations/google-enhanced-conversions/functions.d.ts +20 -1
  4. package/dist/destinations/google-enhanced-conversions/functions.js +280 -1
  5. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -1
  6. package/dist/destinations/google-enhanced-conversions/generated-types.d.ts +4 -0
  7. package/dist/destinations/google-enhanced-conversions/index.d.ts +8 -2
  8. package/dist/destinations/google-enhanced-conversions/index.js +51 -1
  9. package/dist/destinations/google-enhanced-conversions/index.js.map +1 -1
  10. package/dist/destinations/google-enhanced-conversions/types.d.ts +51 -0
  11. package/dist/destinations/google-enhanced-conversions/userList/generated-types.d.ts +2 -2
  12. package/dist/destinations/google-enhanced-conversions/userList/index.js +13 -13
  13. package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
  14. package/dist/destinations/mappings-two-test/index.js +3 -1
  15. package/dist/destinations/mappings-two-test/index.js.map +1 -1
  16. package/dist/destinations/mappings-two-test/inputMethods/generated-types.d.ts +29 -0
  17. package/dist/destinations/mappings-two-test/inputMethods/generated-types.js.map +1 -0
  18. package/dist/destinations/mappings-two-test/inputMethods/index.js +200 -0
  19. package/dist/destinations/mappings-two-test/inputMethods/index.js.map +1 -0
  20. package/dist/destinations/mappings-two-test/sendEvent/index.js +4 -2
  21. package/dist/destinations/mappings-two-test/sendEvent/index.js.map +1 -1
  22. package/dist/destinations/tiktok-audiences/api/index.js +0 -1
  23. package/dist/destinations/tiktok-audiences/api/index.js.map +1 -1
  24. package/dist/destinations/tiktok-audiences/createAudience/generated-types.d.ts +0 -1
  25. package/dist/destinations/tiktok-audiences/createAudience/index.js +1 -2
  26. package/dist/destinations/tiktok-audiences/createAudience/index.js.map +1 -1
  27. package/dist/destinations/tiktok-audiences/index.js +0 -5
  28. package/dist/destinations/tiktok-audiences/index.js.map +1 -1
  29. package/dist/destinations/tiktok-audiences/properties.d.ts +0 -1
  30. package/dist/destinations/tiktok-audiences/properties.js +1 -13
  31. package/dist/destinations/tiktok-audiences/properties.js.map +1 -1
  32. package/package.json +3 -3
  33. package/dist/destinations/amazon-ads/generated-types.d.ts +0 -3
  34. package/dist/destinations/amazon-ads/generated-types.js.map +0 -1
  35. package/dist/destinations/amazon-ads/index.d.ts +0 -4
  36. package/dist/destinations/amazon-ads/index.js +0 -87
  37. package/dist/destinations/amazon-ads/index.js.map +0 -1
  38. package/dist/destinations/amazon-ads/syncAudiences/generated-types.d.ts +0 -2
  39. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js +0 -3
  40. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js.map +0 -1
  41. package/dist/destinations/amazon-ads/syncAudiences/index.js +0 -15
  42. package/dist/destinations/amazon-ads/syncAudiences/index.js.map +0 -1
  43. package/dist/destinations/amazon-ads/types.d.ts +0 -22
  44. package/dist/destinations/amazon-ads/types.js +0 -11
  45. package/dist/destinations/amazon-ads/types.js.map +0 -1
  46. package/dist/destinations/amazon-ads/utils.d.ts +0 -25
  47. package/dist/destinations/amazon-ads/utils.js +0 -8
  48. package/dist/destinations/amazon-ads/utils.js.map +0 -1
  49. package/dist/destinations/contentstack/constants.d.ts +0 -3
  50. package/dist/destinations/contentstack/constants.js +0 -7
  51. package/dist/destinations/contentstack/constants.js.map +0 -1
  52. package/dist/destinations/dynamic-yield-audiences/syncAudience/types.d.ts +0 -22
  53. package/dist/destinations/dynamic-yield-audiences/syncAudience/types.js +0 -3
  54. package/dist/destinations/dynamic-yield-audiences/syncAudience/types.js.map +0 -1
  55. package/dist/destinations/dynamic-yield-audiences/types.d.ts +0 -8
  56. package/dist/destinations/dynamic-yield-audiences/types.js +0 -12
  57. package/dist/destinations/dynamic-yield-audiences/types.js.map +0 -1
  58. package/dist/destinations/engage/sendgrid/Profile.d.ts +0 -6
  59. package/dist/destinations/engage/sendgrid/Profile.js +0 -3
  60. package/dist/destinations/engage/sendgrid/Profile.js.map +0 -1
  61. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.d.ts +0 -21
  62. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js +0 -174
  63. package/dist/destinations/engage/sendgrid/previewApiLookup/api-lookups.js.map +0 -1
  64. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.d.ts +0 -14
  65. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js +0 -3
  66. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js.map +0 -1
  67. package/dist/destinations/responsys/asyncMergePetRecords/index.d.ts +0 -5
  68. package/dist/destinations/responsys/asyncMergePetRecords/index.js +0 -113
  69. package/dist/destinations/responsys/asyncMergePetRecords/index.js.map +0 -1
  70. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.d.ts +0 -20
  71. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js +0 -3
  72. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js.map +0 -1
  73. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.d.ts +0 -5
  74. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js +0 -174
  75. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js.map +0 -1
  76. package/dist/destinations/responsys/rsp-operations.d.ts +0 -14
  77. package/dist/destinations/responsys/rsp-operations.js +0 -33
  78. package/dist/destinations/responsys/rsp-operations.js.map +0 -1
  79. package/dist/destinations/responsys/rsp-properties.d.ts +0 -4
  80. package/dist/destinations/responsys/rsp-properties.js +0 -27
  81. package/dist/destinations/responsys/rsp-properties.js.map +0 -1
  82. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.d.ts +0 -1
  83. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js +0 -381
  84. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js.map +0 -1
  85. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.d.ts +0 -1
  86. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js +0 -581
  87. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js.map +0 -1
  88. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.d.ts +0 -4
  89. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js +0 -97
  90. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js.map +0 -1
  91. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +0 -30
  92. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +0 -316
  93. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +0 -1
  94. package/dist/destinations/tiktok-conversions/reportWebEvent/formatter.d.ts +0 -3
  95. package/dist/destinations/tiktok-conversions/reportWebEvent/formatter.js +0 -34
  96. package/dist/destinations/tiktok-conversions/reportWebEvent/formatter.js.map +0 -1
  97. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.d.ts +0 -3
  98. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js +0 -43
  99. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js.map +0 -1
  100. /package/dist/destinations/{amazon-ads → mappings-two-test/inputMethods}/generated-types.js +0 -0
  101. /package/dist/destinations/{amazon-ads/syncAudiences → mappings-two-test/inputMethods}/index.d.ts +0 -0
@@ -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<Address> | Partial<OnlinePresence> | Partial<Phone> | Partial<Constituent>)[];
12
+ export declare const splitConstituentPayload: (payload: CreateOrUpdateIndividualConstituentPayload) => (Partial<Phone> | Partial<Constituent> | Partial<Address> | Partial<OnlinePresence>)[];
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>;
@@ -1,6 +1,6 @@
1
1
  export declare const trackApiEndpoint: ({ accountRegion }: {
2
2
  accountRegion?: string | undefined;
3
- }) => "https://track-eu.customer.io" | "https://track.customer.io";
3
+ }) => "https://track.customer.io" | "https://track-eu.customer.io";
4
4
  export declare enum AccountRegion {
5
5
  US = "US \uD83C\uDDFA\uD83C\uDDF8",
6
6
  EU = "EU \uD83C\uDDEA\uD83C\uDDFA"
@@ -1,8 +1,9 @@
1
- import { ConversionCustomVariable, PartialErrorResponse, QueryResponse, CustomVariableInterface } from './types';
1
+ import { ConversionCustomVariable, PartialErrorResponse, QueryResponse, CustomVariableInterface, CreateAudienceInput, UserListResponse } from './types';
2
2
  import { ModifiedResponse, RequestClient, DynamicFieldResponse } from '@segment/actions-core';
3
3
  import { StatsContext } from '@segment/actions-core/destination-kit';
4
4
  import { Features } from '@segment/actions-core/mapping-kit';
5
5
  import { HTTPError } from '@segment/actions-core';
6
+ import type { Payload as UserListPayload } from './userList/generated-types';
6
7
  export declare const API_VERSION = "v15";
7
8
  export declare const CANARY_API_VERSION = "v15";
8
9
  export declare const FLAGON_NAME = "google-enhanced-canary-version";
@@ -22,3 +23,21 @@ export declare function convertTimestamp(timestamp: string | undefined): string
22
23
  export declare function getApiVersion(features?: Features, statsContext?: StatsContext): string;
23
24
  export declare const isHashedInformation: (information: string) => boolean;
24
25
  export declare const commonHashedEmailValidation: (email: string) => string;
26
+ export declare function getListIds(request: RequestClient, settings: CreateAudienceInput['settings'], auth?: any): Promise<{
27
+ choices: {
28
+ value: string;
29
+ label: string;
30
+ }[];
31
+ nextPage?: undefined;
32
+ error?: undefined;
33
+ } | {
34
+ choices: never[];
35
+ nextPage: string;
36
+ error: {
37
+ message: string;
38
+ code: string;
39
+ };
40
+ }>;
41
+ export declare function createGoogleAudience(request: RequestClient, input: CreateAudienceInput, auth: CreateAudienceInput['settings']['oauth'], statsContext?: StatsContext): Promise<string>;
42
+ export declare function getGoogleAudience(request: RequestClient, settings: CreateAudienceInput['settings'], externalId: string, auth: CreateAudienceInput['settings']['oauth'], statsContext?: StatsContext): Promise<UserListResponse>;
43
+ export declare const handleUpdate: (request: RequestClient, settings: CreateAudienceInput['settings'], audienceSettings: CreateAudienceInput['audienceSettings'], payloads: UserListPayload[], hookListId: string, hookListType: string, syncMode?: string | undefined, statsContext?: StatsContext | undefined) => Promise<unknown>;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.commonHashedEmailValidation = exports.isHashedInformation = exports.getApiVersion = exports.convertTimestamp = exports.handleGoogleErrors = exports.getConversionActionDynamicData = exports.getConversionActionId = exports.getCustomVariables = exports.hash = exports.formatCustomVariables = exports.GoogleAdsError = exports.FLAGON_NAME = exports.CANARY_API_VERSION = exports.API_VERSION = void 0;
3
+ exports.handleUpdate = exports.getGoogleAudience = exports.createGoogleAudience = exports.getListIds = exports.commonHashedEmailValidation = exports.isHashedInformation = exports.getApiVersion = exports.convertTimestamp = exports.handleGoogleErrors = exports.getConversionActionDynamicData = exports.getConversionActionId = exports.getCustomVariables = exports.hash = exports.formatCustomVariables = exports.GoogleAdsError = exports.FLAGON_NAME = exports.CANARY_API_VERSION = exports.API_VERSION = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const actions_core_1 = require("@segment/actions-core");
6
6
  const formats_1 = require("ajv-formats/dist/formats");
7
7
  const actions_core_2 = require("@segment/actions-core");
8
+ const actions_core_3 = require("@segment/actions-core");
8
9
  exports.API_VERSION = 'v15';
9
10
  exports.CANARY_API_VERSION = 'v15';
10
11
  exports.FLAGON_NAME = 'google-enhanced-canary-version';
@@ -123,4 +124,282 @@ const commonHashedEmailValidation = (email) => {
123
124
  return String(exports.hash(email));
124
125
  };
125
126
  exports.commonHashedEmailValidation = commonHashedEmailValidation;
127
+ async function getListIds(request, settings, auth) {
128
+ const json = {
129
+ query: `SELECT user_list.id, user_list.name FROM user_list`
130
+ };
131
+ try {
132
+ const response = await request(`https://googleads.googleapis.com/${exports.API_VERSION}/customers/${settings.customerId}/googleAds:search`, {
133
+ method: 'post',
134
+ headers: {
135
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`,
136
+ authorization: `Bearer ${auth?.accessToken}`
137
+ },
138
+ json
139
+ });
140
+ const choices = response.data.results.map((input) => {
141
+ return { value: input.userList.id, label: input.userList.name };
142
+ });
143
+ return {
144
+ choices
145
+ };
146
+ }
147
+ catch (err) {
148
+ return {
149
+ choices: [],
150
+ nextPage: '',
151
+ error: {
152
+ message: err.response?.statusText ?? 'Unknown error',
153
+ code: err.response?.status + '' ?? '500'
154
+ }
155
+ };
156
+ }
157
+ }
158
+ exports.getListIds = getListIds;
159
+ async function createGoogleAudience(request, input, auth, statsContext) {
160
+ if (input.audienceSettings.external_id_type === 'MOBILE_ADVERTISING_ID' && !input.audienceSettings.app_id) {
161
+ throw new actions_core_1.PayloadValidationError('App ID is required when external ID type is mobile advertising ID.');
162
+ }
163
+ if (!auth?.refresh_token ||
164
+ !process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_ID ||
165
+ !process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_SECRET) {
166
+ throw new actions_core_1.PayloadValidationError('Oauth credentials missing.');
167
+ }
168
+ const res = await request('https://www.googleapis.com/oauth2/v4/token', {
169
+ method: 'POST',
170
+ body: new URLSearchParams({
171
+ refresh_token: auth.refresh_token,
172
+ client_id: process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_ID,
173
+ client_secret: process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_SECRET,
174
+ grant_type: 'refresh_token'
175
+ })
176
+ });
177
+ const accessToken = res.data.access_token;
178
+ const statsClient = statsContext?.statsClient;
179
+ const statsTags = statsContext?.tags;
180
+ const json = {
181
+ operations: [
182
+ {
183
+ create: {
184
+ crmBasedUserList: {
185
+ uploadKeyType: input.audienceSettings.external_id_type,
186
+ appId: input.audienceSettings.app_id
187
+ },
188
+ membershipLifeSpan: '10000',
189
+ name: `${input.audienceName}`
190
+ }
191
+ }
192
+ ]
193
+ };
194
+ const response = await request(`https://googleads.googleapis.com/${exports.API_VERSION}/customers/${input.settings.customerId}/userLists:mutate`, {
195
+ method: 'post',
196
+ headers: {
197
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`,
198
+ authorization: `Bearer ${accessToken}`
199
+ },
200
+ json
201
+ });
202
+ const name = response.data.results[0].resourceName;
203
+ if (!name) {
204
+ statsClient?.incr('createAudience.error', 1, statsTags);
205
+ throw new actions_core_1.IntegrationError('Failed to receive a created customer list id.', 'INVALID_RESPONSE', 400);
206
+ }
207
+ statsClient?.incr('createAudience.success', 1, statsTags);
208
+ return name.split('/')[3];
209
+ }
210
+ exports.createGoogleAudience = createGoogleAudience;
211
+ async function getGoogleAudience(request, settings, externalId, auth, statsContext) {
212
+ if (!auth?.refresh_token ||
213
+ !process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_ID ||
214
+ !process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_SECRET) {
215
+ throw new actions_core_1.PayloadValidationError('Oauth credentials missing.');
216
+ }
217
+ const res = await request('https://www.googleapis.com/oauth2/v4/token', {
218
+ method: 'POST',
219
+ body: new URLSearchParams({
220
+ refresh_token: auth.refresh_token,
221
+ client_id: process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_ID,
222
+ client_secret: process.env.GOOGLE_ENHANCED_CONVERSIONS_CLIENT_SECRET,
223
+ grant_type: 'refresh_token'
224
+ })
225
+ });
226
+ const accessToken = res.data.access_token;
227
+ const statsClient = statsContext?.statsClient;
228
+ const statsTags = statsContext?.tags;
229
+ const json = {
230
+ query: `SELECT user_list.id, user_list.name FROM user_list where user_list.id = '${externalId}'`
231
+ };
232
+ const response = await request(`https://googleads.googleapis.com/${exports.API_VERSION}/customers/${settings.customerId}/googleAds:search`, {
233
+ method: 'post',
234
+ headers: {
235
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`,
236
+ authorization: `Bearer ${accessToken}`
237
+ },
238
+ json
239
+ });
240
+ const id = response.data.results[0].userList.id;
241
+ if (!id) {
242
+ statsClient?.incr('getAudience.error', 1, statsTags);
243
+ throw new actions_core_1.IntegrationError('Failed to receive a customer list.', 'INVALID_RESPONSE', 400);
244
+ }
245
+ statsClient?.incr('getAudience.success', 1, statsTags);
246
+ return response.data;
247
+ }
248
+ exports.getGoogleAudience = getGoogleAudience;
249
+ const formatEmail = (email) => {
250
+ const googleDomain = new RegExp('^(gmail|googlemail).s*', 'g');
251
+ let normalizedEmail = email.toLowerCase().trim();
252
+ const emailParts = normalizedEmail.split('@');
253
+ if (emailParts.length > 1 && emailParts[1].match(googleDomain)) {
254
+ emailParts[0] = emailParts[0].replace('.', '');
255
+ normalizedEmail = `${emailParts[0]}@${emailParts[1]}`;
256
+ }
257
+ return actions_core_3.sha256SmartHash(normalizedEmail);
258
+ };
259
+ function formatToE164(phoneNumber, defaultCountryCode) {
260
+ const numericPhoneNumber = phoneNumber.replace(/\D/g, '');
261
+ let formattedPhoneNumber = numericPhoneNumber;
262
+ if (!numericPhoneNumber.startsWith(defaultCountryCode)) {
263
+ formattedPhoneNumber = defaultCountryCode + numericPhoneNumber;
264
+ }
265
+ if (!formattedPhoneNumber.startsWith('+')) {
266
+ formattedPhoneNumber = '+' + formattedPhoneNumber;
267
+ }
268
+ return formattedPhoneNumber;
269
+ }
270
+ const formatPhone = (phone) => {
271
+ const formattedPhone = formatToE164(phone, '1');
272
+ return actions_core_3.sha256SmartHash(formattedPhone);
273
+ };
274
+ const extractUserIdentifiers = (payloads, idType, syncMode) => {
275
+ const removeUserIdentifiers = [];
276
+ const addUserIdentifiers = [];
277
+ const identifierFunctions = {
278
+ MOBILE_ADVERTISING_ID: (payload) => ({
279
+ mobileId: payload.mobile_advertising_id?.trim()
280
+ }),
281
+ CRM_ID: (payload) => ({
282
+ thirdPartyUserId: payload.crm_id?.trim()
283
+ }),
284
+ CONTACT_INFO: (payload) => {
285
+ const identifiers = [];
286
+ if (payload.email) {
287
+ identifiers.push({
288
+ hashedEmail: formatEmail(payload.email)
289
+ });
290
+ }
291
+ if (payload.phone) {
292
+ identifiers.push({
293
+ hashedPhoneNumber: formatPhone(payload.phone)
294
+ });
295
+ }
296
+ if (payload.first_name || payload.last_name || payload.country_code || payload.postal_code) {
297
+ identifiers.push({
298
+ addressInfo: {
299
+ hashedFirstName: actions_core_3.sha256SmartHash(payload.first_name ?? ''),
300
+ hashedLastName: actions_core_3.sha256SmartHash(payload.last_name ?? ''),
301
+ countryCode: payload.country_code ?? '',
302
+ postalCode: payload.postal_code ?? ''
303
+ }
304
+ });
305
+ }
306
+ return identifiers;
307
+ }
308
+ };
309
+ for (const payload of payloads) {
310
+ if (payload.event_name == 'Audience Entered' || syncMode == 'add') {
311
+ addUserIdentifiers.push({ create: { userIdentifiers: identifierFunctions[idType](payload) } });
312
+ }
313
+ else if (payload.event_name == 'Audience Exited' || syncMode == 'delete') {
314
+ removeUserIdentifiers.push({ remove: { userIdentifiers: identifierFunctions[idType](payload) } });
315
+ }
316
+ }
317
+ return [addUserIdentifiers, removeUserIdentifiers];
318
+ };
319
+ const createOfflineUserJob = async (request, payload, settings, hookListId, statsContext) => {
320
+ const url = `https://googleads.googleapis.com/${exports.API_VERSION}/customers/${settings.customerId}/offlineUserDataJobs:create`;
321
+ let external_audience_id = payload.external_audience_id;
322
+ if (hookListId) {
323
+ external_audience_id = hookListId;
324
+ }
325
+ const json = {
326
+ job: {
327
+ type: 'CUSTOMER_MATCH_USER_LIST',
328
+ customerMatchUserListMetadata: {
329
+ userList: `customers/${settings.customerId}/userLists/${external_audience_id}`,
330
+ consent: {
331
+ adUserData: payload.ad_user_data_consent_state,
332
+ adPersonalization: payload.ad_personalization_consent_state
333
+ }
334
+ }
335
+ }
336
+ };
337
+ try {
338
+ const response = await request(url, {
339
+ method: 'post',
340
+ headers: {
341
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`
342
+ },
343
+ json
344
+ });
345
+ return response.data.resourceName;
346
+ }
347
+ catch (error) {
348
+ statsContext?.statsClient?.incr('error.createJob', 1, statsContext?.tags);
349
+ console.log(error);
350
+ throw new actions_core_1.IntegrationError(error.response?.statusText, 'INVALID_RESPONSE', error.response?.status);
351
+ }
352
+ };
353
+ const addOperations = async (request, userIdentifiers, resourceName, statsContext) => {
354
+ const url = `https://googleads.googleapis.com/${exports.API_VERSION}/${resourceName}:addOperations`;
355
+ const json = {
356
+ operations: userIdentifiers,
357
+ enable_warnings: true
358
+ };
359
+ try {
360
+ const response = await request(url, {
361
+ method: 'post',
362
+ headers: {
363
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`
364
+ },
365
+ json
366
+ });
367
+ return response.data;
368
+ }
369
+ catch (error) {
370
+ statsContext?.statsClient?.incr('error.addOperations', 1, statsContext?.tags);
371
+ throw new actions_core_1.IntegrationError(error.response?.statusText, 'INVALID_RESPONSE', error.response?.status);
372
+ }
373
+ };
374
+ const runOfflineUserJob = async (request, resourceName, statsContext) => {
375
+ const url = `https://googleads.googleapis.com/${exports.API_VERSION}/${resourceName}:run`;
376
+ try {
377
+ const response = await request(url, {
378
+ method: 'post',
379
+ headers: {
380
+ 'developer-token': `${process.env.ADWORDS_DEVELOPER_TOKEN}`
381
+ }
382
+ });
383
+ return response.data;
384
+ }
385
+ catch (error) {
386
+ statsContext?.statsClient?.incr('error.runJob', 1, statsContext?.tags);
387
+ throw new actions_core_1.IntegrationError(error.response?.statusText, 'INVALID_RESPONSE', error.response?.status);
388
+ }
389
+ };
390
+ const handleUpdate = async (request, settings, audienceSettings, payloads, hookListId, hookListType, syncMode, statsContext) => {
391
+ const id_type = hookListType ?? audienceSettings.external_id_type;
392
+ const [adduserIdentifiers, removeUserIdentifiers] = extractUserIdentifiers(payloads, id_type, syncMode);
393
+ const resourceName = await createOfflineUserJob(request, payloads[0], settings, hookListId, statsContext);
394
+ if (adduserIdentifiers.length > 0) {
395
+ await addOperations(request, adduserIdentifiers, resourceName, statsContext);
396
+ }
397
+ if (removeUserIdentifiers.length > 0) {
398
+ await addOperations(request, removeUserIdentifiers, resourceName, statsContext);
399
+ }
400
+ const executedJob = await runOfflineUserJob(request, resourceName, statsContext);
401
+ statsContext?.statsClient?.incr('success.offlineUpdateAudience', 1, statsContext?.tags);
402
+ return executedJob;
403
+ };
404
+ exports.handleUpdate = handleUpdate;
126
405
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/google-enhanced-conversions/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/google-enhanced-conversions/functions.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,7 @@ export interface Settings {
2
2
  conversionTrackingId?: string;
3
3
  customerId?: string;
4
4
  }
5
+ export interface AudienceSettings {
6
+ external_id_type: string;
7
+ app_id?: string;
8
+ }
@@ -1,4 +1,10 @@
1
- import { DestinationDefinition } from '@segment/actions-core';
1
+ import { AudienceDestinationDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from './generated-types';
3
- declare const destination: DestinationDefinition<Settings>;
3
+ export interface RefreshTokenResponse {
4
+ access_token: string;
5
+ scope: string;
6
+ expires_in: number;
7
+ token_type: string;
8
+ }
9
+ declare const destination: AudienceDestinationDefinition<Settings>;
4
10
  export default destination;
@@ -7,6 +7,8 @@ const postConversion_1 = __importDefault(require("./postConversion"));
7
7
  const uploadCallConversion_1 = __importDefault(require("./uploadCallConversion"));
8
8
  const uploadClickConversion_1 = __importDefault(require("./uploadClickConversion"));
9
9
  const uploadConversionAdjustment_1 = __importDefault(require("./uploadConversionAdjustment"));
10
+ const functions_1 = require("./functions");
11
+ const userList_1 = __importDefault(require("./userList"));
10
12
  const destination = {
11
13
  name: 'Google Ads Conversions',
12
14
  slug: 'actions-google-enhanced-conversions',
@@ -48,11 +50,59 @@ const destination = {
48
50
  }
49
51
  };
50
52
  },
53
+ audienceFields: {
54
+ external_id_type: {
55
+ type: 'string',
56
+ label: 'External ID Type',
57
+ description: 'Customer match upload key types.',
58
+ required: true,
59
+ choices: [
60
+ { label: 'CONTACT INFO', value: 'CONTACT_INFO' },
61
+ { label: 'CRM ID', value: 'CRM_ID' },
62
+ { label: 'MOBILE ADVERTISING ID', value: 'MOBILE_ADVERTISING_ID' }
63
+ ]
64
+ },
65
+ app_id: {
66
+ label: 'App ID',
67
+ description: 'A string that uniquely identifies a mobile application from which the data was collected. Required if external ID type is mobile advertising ID',
68
+ type: 'string',
69
+ depends_on: {
70
+ match: 'all',
71
+ conditions: [
72
+ {
73
+ fieldKey: 'external_id_type',
74
+ operator: 'is',
75
+ value: 'MOBILE_ADVERTISING_ID'
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ },
81
+ audienceConfig: {
82
+ mode: {
83
+ type: 'synced',
84
+ full_audience_sync: false
85
+ },
86
+ async createAudience(request, createAudienceInput) {
87
+ const auth = createAudienceInput.settings.oauth;
88
+ const userListId = await functions_1.createGoogleAudience(request, createAudienceInput, auth, createAudienceInput.statsContext);
89
+ return {
90
+ externalId: userListId
91
+ };
92
+ },
93
+ async getAudience(request, getAudienceInput) {
94
+ const response = await functions_1.getGoogleAudience(request, getAudienceInput.settings, getAudienceInput.externalId, getAudienceInput.settings.oauth, getAudienceInput.statsContext);
95
+ return {
96
+ externalId: response.results[0].userList.id
97
+ };
98
+ }
99
+ },
51
100
  actions: {
52
101
  postConversion: postConversion_1.default,
53
102
  uploadClickConversion: uploadClickConversion_1.default,
54
103
  uploadCallConversion: uploadCallConversion_1.default,
55
- uploadConversionAdjustment: uploadConversionAdjustment_1.default
104
+ uploadConversionAdjustment: uploadConversionAdjustment_1.default,
105
+ userList: userList_1.default
56
106
  }
57
107
  };
58
108
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/google-enhanced-conversions/index.ts"],"names":[],"mappings":";;;;;AAEA,sEAA6C;AAC7C,kFAAyD;AACzD,oFAA2D;AAC3D,8FAAqE;AAerE,MAAM,WAAW,GAAoC;IAGnD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,qCAAqC;IAC3C,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,oBAAoB,EAAE;gBACpB,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,qbAAqb;gBACvb,IAAI,EAAE,QAAQ;aACf;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,aAAa;gBACpB,WAAW,EACT,oKAAoK;gBACtK,IAAI,EAAE,QAAQ;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAQrC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,4CAA4C,EAAE;gBAC5F,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,eAAe;iBAC5B,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/C,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;IACD,OAAO,EAAE;QACP,cAAc,EAAd,wBAAc;QACd,qBAAqB,EAArB,+BAAqB;QACrB,oBAAoB,EAApB,8BAAoB;QACpB,0BAA0B,EAA1B,oCAA0B;KAC3B;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/google-enhanced-conversions/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { StatsContext } from '@segment/actions-core/destination-kit';
1
2
  export interface CartItemInterface {
2
3
  productId?: string;
3
4
  quantity?: number;
@@ -104,3 +105,53 @@ export interface PartialErrorResponse {
104
105
  };
105
106
  results: {}[];
106
107
  }
108
+ export interface UserList {
109
+ userList: {
110
+ resourceName: string;
111
+ id: string;
112
+ name: string;
113
+ };
114
+ }
115
+ export interface UserListResponse {
116
+ results: Array<UserList>;
117
+ fieldMask: string;
118
+ }
119
+ export interface CreateAudienceInput {
120
+ audienceName: string;
121
+ settings: {
122
+ customerId?: string;
123
+ conversionTrackingId?: string;
124
+ oauth?: {
125
+ refresh_token?: string;
126
+ };
127
+ };
128
+ audienceSettings: {
129
+ external_id_type: string;
130
+ app_id?: string;
131
+ };
132
+ statsContext?: StatsContext;
133
+ }
134
+ export interface GetAudienceInput {
135
+ externalId: string;
136
+ settings: {
137
+ customerId?: string;
138
+ conversionTrackingId?: string;
139
+ oauth?: {
140
+ refresh_token?: string;
141
+ };
142
+ };
143
+ audienceSettings: {
144
+ external_id_type: string;
145
+ app_id?: string;
146
+ };
147
+ statsContext?: StatsContext;
148
+ }
149
+ export interface CreateGoogleAudienceResponse {
150
+ resourceName?: string;
151
+ results: Array<{
152
+ resourceName: string;
153
+ }>;
154
+ }
155
+ export interface AudienceSettings {
156
+ external_id_type: string;
157
+ }
@@ -11,6 +11,7 @@ export interface Payload {
11
11
  ad_personalization_consent_state: string;
12
12
  external_audience_id?: string;
13
13
  enable_batching?: boolean;
14
+ batch_size?: number;
14
15
  event_name: string;
15
16
  }
16
17
  export interface HookBundle {
@@ -18,14 +19,13 @@ export interface HookBundle {
18
19
  inputs?: {
19
20
  list_id?: string;
20
21
  list_name?: string;
21
- external_id_type?: string;
22
+ external_id_type: string;
22
23
  app_id?: string;
23
24
  };
24
25
  outputs?: {
25
26
  id?: string;
26
27
  name?: string;
27
28
  external_id_type?: string;
28
- app_id?: string;
29
29
  };
30
30
  };
31
31
  }
@@ -124,6 +124,13 @@ const action = {
124
124
  default: true,
125
125
  unsafe_hidden: true
126
126
  },
127
+ batch_size: {
128
+ label: 'Batch Size',
129
+ description: 'The number of records to send in each batch.',
130
+ type: 'integer',
131
+ default: 10000,
132
+ unsafe_hidden: true
133
+ },
127
134
  event_name: {
128
135
  label: 'Event Name',
129
136
  description: 'The name of the current Segment event.',
@@ -159,7 +166,8 @@ const action = {
159
166
  type: 'string',
160
167
  label: 'External ID Type',
161
168
  description: 'Customer match upload key types.',
162
- required: false,
169
+ required: true,
170
+ default: 'CONTACT_INFO',
163
171
  choices: [
164
172
  { label: 'CONTACT INFO', value: 'CONTACT_INFO' },
165
173
  { label: 'CRM ID', value: 'CRM_ID' },
@@ -186,13 +194,13 @@ const action = {
186
194
  id: {
187
195
  type: 'string',
188
196
  label: 'ID',
189
- description: 'The ID of the created Google Customer Match User list that users will be synced to.',
197
+ description: 'The ID of the Google Customer Match User list that users will be synced to.',
190
198
  required: false
191
199
  },
192
200
  name: {
193
201
  type: 'string',
194
202
  label: 'List Name',
195
- description: 'The name of the created Google Customer Match User list that users will be synced to.',
203
+ description: 'The name of the Google Customer Match User list that users will be synced to.',
196
204
  required: false
197
205
  },
198
206
  external_id_type: {
@@ -200,12 +208,6 @@ const action = {
200
208
  label: 'External ID Type',
201
209
  description: 'Customer match upload key types.',
202
210
  required: false
203
- },
204
- app_id: {
205
- label: 'App ID',
206
- description: 'A string that uniquely identifies a mobile application from which the data was collected. Required if external ID type is mobile advertising ID',
207
- type: 'string',
208
- required: false
209
211
  }
210
212
  },
211
213
  performHook: async (request, { auth, settings, hookInputs, statsContext }) => {
@@ -219,8 +221,7 @@ const action = {
219
221
  savedData: {
220
222
  id: hookInputs.list_id,
221
223
  name: response.results[0].userList.name,
222
- external_id_type: hookInputs.external_id_type,
223
- app_id: hookInputs.app_id
224
+ external_id_type: hookInputs.external_id_type
224
225
  }
225
226
  };
226
227
  }
@@ -250,8 +251,7 @@ const action = {
250
251
  savedData: {
251
252
  id: listId,
252
253
  name: hookInputs.list_name,
253
- external_id_type: hookInputs.external_id_type,
254
- app_id: hookInputs.app_id
254
+ external_id_type: hookInputs.external_id_type
255
255
  }
256
256
  };
257
257
  }