@segment/action-destinations 3.437.1-staging-f1cdf49fe.0 → 3.438.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/first-party-dv360/_tests_/index.test.js +12 -137
- package/dist/destinations/first-party-dv360/_tests_/index.test.js.map +1 -1
- package/dist/destinations/first-party-dv360/addToAudContactInfo/_tests_/index.test.js +5 -31
- package/dist/destinations/first-party-dv360/addToAudContactInfo/_tests_/index.test.js.map +1 -1
- package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.js +6 -36
- package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.js.map +1 -1
- package/dist/destinations/first-party-dv360/functions.d.ts +6 -1
- package/dist/destinations/first-party-dv360/functions.js +33 -37
- package/dist/destinations/first-party-dv360/functions.js.map +1 -1
- package/dist/destinations/first-party-dv360/index.js +6 -10
- package/dist/destinations/first-party-dv360/index.js.map +1 -1
- package/dist/destinations/first-party-dv360/properties.d.ts +0 -1
- package/dist/destinations/first-party-dv360/properties.js +1 -2
- package/dist/destinations/first-party-dv360/properties.js.map +1 -1
- package/dist/destinations/first-party-dv360/removeFromAudContactInfo/_tests_/index.test.js +4 -55
- package/dist/destinations/first-party-dv360/removeFromAudContactInfo/_tests_/index.test.js.map +1 -1
- package/dist/destinations/google-enhanced-conversions/functions.d.ts +1 -1
- package/dist/destinations/google-enhanced-conversions/functions.js +1 -1
- package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js +2 -2
- package/dist/destinations/google-enhanced-conversions/uploadCallConversion2/index.js +2 -2
- package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +2 -2
- package/dist/destinations/google-enhanced-conversions/uploadClickConversion2/index.js +2 -2
- package/dist/destinations/google-enhanced-conversions/userList/index.js +2 -2
- package/dist/destinations/hubspot/upsertObject/functions/validation-functions.d.ts +2 -0
- package/dist/destinations/hubspot/upsertObject/functions/validation-functions.js +25 -1
- package/dist/destinations/hubspot/upsertObject/functions/validation-functions.js.map +1 -1
- package/dist/destinations/hubspot/upsertObject/index.js +1 -1
- package/dist/destinations/hubspot/upsertObject/index.js.map +1 -1
- package/dist/destinations/kafka/generated-types.d.ts +3 -0
- package/dist/destinations/kafka/index.js +21 -0
- package/dist/destinations/kafka/index.js.map +1 -1
- package/dist/destinations/kafka/send/generated-types.d.ts +0 -1
- package/dist/destinations/kafka/send/index.js +0 -7
- package/dist/destinations/kafka/send/index.js.map +1 -1
- package/dist/destinations/kafka/utils.js +13 -0
- package/dist/destinations/kafka/utils.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/index.js +1 -3
- package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -1
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.d.ts +0 -3
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js +0 -109
- package/dist/destinations/salesforce-marketing-cloud/sfmc-operations.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/common-fields.js +12 -0
- package/dist/destinations/stackadapt-audiences/common-fields.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/common-functions.js +4 -13
- package/dist/destinations/stackadapt-audiences/common-functions.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js +0 -12
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/fields.js.map +1 -1
- package/dist/destinations/stackadapt-audiences/forwardAudienceEvent/generated-types.d.ts +1 -1
- package/dist/destinations/stackadapt-audiences/forwardProfile/generated-types.d.ts +1 -0
- package/dist/destinations/topsort/generated-types.d.ts +1 -0
- package/dist/destinations/topsort/index.js +7 -0
- package/dist/destinations/topsort/index.js.map +1 -1
- package/dist/destinations/topsort/purchase/index.js +7 -0
- package/dist/destinations/topsort/purchase/index.js.map +1 -1
- package/dist/destinations/vibe-audience/index.js +11 -1
- package/dist/destinations/vibe-audience/index.js.map +1 -1
- package/dist/destinations/webhook-extensible/__test__/webhook.test.js +64 -0
- package/dist/destinations/webhook-extensible/__test__/webhook.test.js.map +1 -1
- package/dist/destinations/webhook-extensible/index.js +15 -3
- package/dist/destinations/webhook-extensible/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.d.ts +0 -1
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js +0 -96
- package/dist/destinations/salesforce-marketing-cloud/_tests_/asyncDataExtension.test.js.map +0 -1
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.d.ts +0 -58
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.js +0 -3
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/generated-types.js.map +0 -1
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.d.ts +0 -5
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js +0 -61
- package/dist/destinations/salesforce-marketing-cloud/asyncDataExtension/index.js.map +0 -1
|
@@ -49,7 +49,7 @@ beforeEach(() => {
|
|
|
49
49
|
});
|
|
50
50
|
describe('Audience Destination', () => {
|
|
51
51
|
describe('createAudience', () => {
|
|
52
|
-
it('creates an audience successfully with
|
|
52
|
+
it('creates an audience successfully with CANARY VERSION', async () => {
|
|
53
53
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
54
54
|
.post('/v4/firstPartyAndPartnerAudiences?advertiserId=12345', {
|
|
55
55
|
displayName: audienceName,
|
|
@@ -63,25 +63,7 @@ describe('Audience Destination', () => {
|
|
|
63
63
|
.reply(200, { firstPartyAndPartnerAudienceId: 'audience-id-123' });
|
|
64
64
|
const result = await testDestination.createAudience({
|
|
65
65
|
...createAudienceInput,
|
|
66
|
-
features: { '
|
|
67
|
-
});
|
|
68
|
-
expect(result).toEqual({ externalId: 'audience-id-123' });
|
|
69
|
-
});
|
|
70
|
-
it('creates an audience successfully with feature flag OFF (v3)', async () => {
|
|
71
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
72
|
-
.post('/v3/firstAndThirdPartyAudiences?advertiserId=12345', {
|
|
73
|
-
displayName: audienceName,
|
|
74
|
-
audienceType: 'CUSTOMER_MATCH_CONTACT_INFO',
|
|
75
|
-
membershipDurationDays: '30',
|
|
76
|
-
description: 'Test description',
|
|
77
|
-
audienceSource: 'AUDIENCE_SOURCE_UNSPECIFIED',
|
|
78
|
-
firstAndThirdPartyAudienceType: 'FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY'
|
|
79
|
-
})
|
|
80
|
-
.matchHeader('Authorization', 'Bearer temp-token')
|
|
81
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
82
|
-
const result = await testDestination.createAudience({
|
|
83
|
-
...createAudienceInput,
|
|
84
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
66
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
85
67
|
});
|
|
86
68
|
expect(result).toEqual({ externalId: 'audience-id-123' });
|
|
87
69
|
});
|
|
@@ -91,25 +73,14 @@ describe('Audience Destination', () => {
|
|
|
91
73
|
});
|
|
92
74
|
});
|
|
93
75
|
describe('getAudience', () => {
|
|
94
|
-
it('should succeed with
|
|
76
|
+
it('should succeed with CANARY VERSION', async () => {
|
|
95
77
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
96
78
|
.get(`/v4/firstPartyAndPartnerAudiences/audience-id-123?advertiserId=12345`)
|
|
97
79
|
.matchHeader('Authorization', 'Bearer temp-token')
|
|
98
80
|
.reply(200, { firstPartyAndPartnerAudienceId: 'audience-id-123' });
|
|
99
81
|
const result = await testDestination.getAudience({
|
|
100
82
|
...getAudienceInput,
|
|
101
|
-
features: { '
|
|
102
|
-
});
|
|
103
|
-
expect(result).toEqual({ externalId: 'audience-id-123' });
|
|
104
|
-
});
|
|
105
|
-
it('should succeed with feature flag OFF (v3)', async () => {
|
|
106
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
107
|
-
.get(`/v3/firstAndThirdPartyAudiences/audience-id-123?advertiserId=12345`)
|
|
108
|
-
.matchHeader('Authorization', 'Bearer temp-token')
|
|
109
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
110
|
-
const result = await testDestination.getAudience({
|
|
111
|
-
...getAudienceInput,
|
|
112
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
83
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
113
84
|
});
|
|
114
85
|
expect(result).toEqual({ externalId: 'audience-id-123' });
|
|
115
86
|
});
|
|
@@ -145,14 +116,14 @@ describe('Audience Destination', () => {
|
|
|
145
116
|
}
|
|
146
117
|
}
|
|
147
118
|
});
|
|
148
|
-
it('should add customer match members successfully with
|
|
119
|
+
it('should add customer match members successfully with CANARY VERSION', async () => {
|
|
149
120
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
150
121
|
.post('/v4/firstPartyAndPartnerAudiences/audience-id-123:editCustomerMatchMembers')
|
|
151
122
|
.reply(200, { firstPartyAndPartnerAudienceId: 'audience-id-123' });
|
|
152
123
|
const result = await testDestination.testAction('addToAudContactInfo', {
|
|
153
124
|
event,
|
|
154
125
|
useDefaultMappings: true,
|
|
155
|
-
features: { '
|
|
126
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
156
127
|
});
|
|
157
128
|
expect(result).toContainEqual(expect.objectContaining({
|
|
158
129
|
data: expect.objectContaining({
|
|
@@ -160,22 +131,7 @@ describe('Audience Destination', () => {
|
|
|
160
131
|
})
|
|
161
132
|
}));
|
|
162
133
|
});
|
|
163
|
-
it('should
|
|
164
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
165
|
-
.post('/v3/firstAndThirdPartyAudiences/audience-id-123:editCustomerMatchMembers')
|
|
166
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
167
|
-
const result = await testDestination.testAction('addToAudContactInfo', {
|
|
168
|
-
event,
|
|
169
|
-
useDefaultMappings: true,
|
|
170
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
171
|
-
});
|
|
172
|
-
expect(result).toContainEqual(expect.objectContaining({
|
|
173
|
-
data: expect.objectContaining({
|
|
174
|
-
firstAndThirdPartyAudienceId: 'audience-id-123'
|
|
175
|
-
})
|
|
176
|
-
}));
|
|
177
|
-
});
|
|
178
|
-
it('should remove customer match members successfully with feature flag ON (v4)', async () => {
|
|
134
|
+
it('should remove customer match members successfully with CANARY VERSION', async () => {
|
|
179
135
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
180
136
|
.post('/v4/firstPartyAndPartnerAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
181
137
|
advertiserId: '12345',
|
|
@@ -200,7 +156,7 @@ describe('Audience Destination', () => {
|
|
|
200
156
|
const result = await testDestination.testAction('removeFromAudContactInfo', {
|
|
201
157
|
event,
|
|
202
158
|
useDefaultMappings: true,
|
|
203
|
-
features: { '
|
|
159
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
204
160
|
});
|
|
205
161
|
expect(result).toContainEqual(expect.objectContaining({
|
|
206
162
|
data: expect.objectContaining({
|
|
@@ -208,39 +164,6 @@ describe('Audience Destination', () => {
|
|
|
208
164
|
})
|
|
209
165
|
}));
|
|
210
166
|
});
|
|
211
|
-
it('should remove customer match members successfully with feature flag OFF (v3)', async () => {
|
|
212
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
213
|
-
.post('/v3/firstAndThirdPartyAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
214
|
-
advertiserId: '12345',
|
|
215
|
-
removedContactInfoList: {
|
|
216
|
-
contactInfos: [
|
|
217
|
-
{
|
|
218
|
-
hashedEmails: '87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674',
|
|
219
|
-
hashedPhoneNumbers: 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646',
|
|
220
|
-
zipCodes: '12345',
|
|
221
|
-
hashedFirstName: '96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a',
|
|
222
|
-
hashedLastName: '799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f',
|
|
223
|
-
countryCode: '+1'
|
|
224
|
-
}
|
|
225
|
-
],
|
|
226
|
-
consent: {
|
|
227
|
-
adUserData: 'CONSENT_STATUS_GRANTED',
|
|
228
|
-
adPersonalization: 'CONSENT_STATUS_GRANTED'
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
})
|
|
232
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
233
|
-
const result = await testDestination.testAction('removeFromAudContactInfo', {
|
|
234
|
-
event,
|
|
235
|
-
useDefaultMappings: true,
|
|
236
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
237
|
-
});
|
|
238
|
-
expect(result).toContainEqual(expect.objectContaining({
|
|
239
|
-
data: expect.objectContaining({
|
|
240
|
-
firstAndThirdPartyAudienceId: 'audience-id-123'
|
|
241
|
-
})
|
|
242
|
-
}));
|
|
243
|
-
});
|
|
244
167
|
});
|
|
245
168
|
describe('Edit Customer Match Members - Mobile Device ID List', () => {
|
|
246
169
|
const payloadDeviceId = {
|
|
@@ -261,7 +184,7 @@ describe('Audience Destination', () => {
|
|
|
261
184
|
}
|
|
262
185
|
}
|
|
263
186
|
});
|
|
264
|
-
it('should add customer match members successfully with
|
|
187
|
+
it('should add customer match members successfully with CANARY VERSION', async () => {
|
|
265
188
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
266
189
|
.post('/v4/firstPartyAndPartnerAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
267
190
|
advertiserId: '12345',
|
|
@@ -277,7 +200,7 @@ describe('Audience Destination', () => {
|
|
|
277
200
|
const result = await testDestination.testAction('addToAudMobileDeviceId', {
|
|
278
201
|
event,
|
|
279
202
|
useDefaultMappings: true,
|
|
280
|
-
features: { '
|
|
203
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
281
204
|
});
|
|
282
205
|
expect(result).toContainEqual(expect.objectContaining({
|
|
283
206
|
data: expect.objectContaining({
|
|
@@ -285,31 +208,7 @@ describe('Audience Destination', () => {
|
|
|
285
208
|
})
|
|
286
209
|
}));
|
|
287
210
|
});
|
|
288
|
-
it('should
|
|
289
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
290
|
-
.post('/v3/firstAndThirdPartyAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
291
|
-
advertiserId: '12345',
|
|
292
|
-
addedMobileDeviceIdList: {
|
|
293
|
-
mobileDeviceIds: ['123'],
|
|
294
|
-
consent: {
|
|
295
|
-
adUserData: 'CONSENT_STATUS_GRANTED',
|
|
296
|
-
adPersonalization: 'CONSENT_STATUS_GRANTED'
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
})
|
|
300
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
301
|
-
const result = await testDestination.testAction('addToAudMobileDeviceId', {
|
|
302
|
-
event,
|
|
303
|
-
useDefaultMappings: true,
|
|
304
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
305
|
-
});
|
|
306
|
-
expect(result).toContainEqual(expect.objectContaining({
|
|
307
|
-
data: expect.objectContaining({
|
|
308
|
-
firstAndThirdPartyAudienceId: 'audience-id-123'
|
|
309
|
-
})
|
|
310
|
-
}));
|
|
311
|
-
});
|
|
312
|
-
it('should remove customer match members successfully with feature flag ON (v4)', async () => {
|
|
211
|
+
it('should remove customer match members successfully with CANARY VERSION', async () => {
|
|
313
212
|
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
314
213
|
.post('/v4/firstPartyAndPartnerAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
315
214
|
advertiserId: '12345',
|
|
@@ -325,7 +224,7 @@ describe('Audience Destination', () => {
|
|
|
325
224
|
const result = await testDestination.testAction('removeFromAudMobileDeviceId', {
|
|
326
225
|
event,
|
|
327
226
|
useDefaultMappings: true,
|
|
328
|
-
features: { '
|
|
227
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
329
228
|
});
|
|
330
229
|
expect(result).toContainEqual(expect.objectContaining({
|
|
331
230
|
data: expect.objectContaining({
|
|
@@ -333,30 +232,6 @@ describe('Audience Destination', () => {
|
|
|
333
232
|
})
|
|
334
233
|
}));
|
|
335
234
|
});
|
|
336
|
-
it('should remove customer match members successfully with feature flag OFF (v3)', async () => {
|
|
337
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com')
|
|
338
|
-
.post('/v3/firstAndThirdPartyAudiences/audience-id-123:editCustomerMatchMembers', {
|
|
339
|
-
advertiserId: '12345',
|
|
340
|
-
removedMobileDeviceIdList: {
|
|
341
|
-
mobileDeviceIds: ['123'],
|
|
342
|
-
consent: {
|
|
343
|
-
adUserData: 'CONSENT_STATUS_GRANTED',
|
|
344
|
-
adPersonalization: 'CONSENT_STATUS_GRANTED'
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
})
|
|
348
|
-
.reply(200, { firstAndThirdPartyAudienceId: 'audience-id-123' });
|
|
349
|
-
const result = await testDestination.testAction('removeFromAudMobileDeviceId', {
|
|
350
|
-
event,
|
|
351
|
-
useDefaultMappings: true,
|
|
352
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
353
|
-
});
|
|
354
|
-
expect(result).toContainEqual(expect.objectContaining({
|
|
355
|
-
data: expect.objectContaining({
|
|
356
|
-
firstAndThirdPartyAudienceId: 'audience-id-123'
|
|
357
|
-
})
|
|
358
|
-
}));
|
|
359
|
-
});
|
|
360
235
|
});
|
|
361
236
|
});
|
|
362
237
|
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/destinations/first-party-dv360/_tests_/index.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,wDAAgG;AAChG,qDAAkC;AAElC,MAAM,YAAY,GAAG,eAAe,CAAA;AACpC,MAAM,eAAe,GAAG,IAAA,oCAAqB,EAAC,eAAW,CAAC,CAAA;AAE1D,MAAM,mBAAmB,GAAG;IAC1B,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,aAAa,EAAE,oBAAoB;SACpC;KACF;IACD,YAAY,EAAE,YAAY;IAC1B,gBAAgB,EAAE;QAChB,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,6BAA6B;QAC3C,sBAAsB,EAAE,IAAI;QAC5B,WAAW,EAAE,kBAAkB;KAChC;CACF,CAAA;AAED,MAAM,gBAAgB,GAAG;IACvB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,aAAa,EAAE,oBAAoB;SACpC;KACF;IACD,gBAAgB,EAAE;QAChB,YAAY,EAAE,OAAO;KACtB;IACD,UAAU,EAAE,iBAAiB;CAC9B,CAAA;AAGD,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,gBAAgB,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,oBAAoB,CAAA;AAC5E,CAAC,CAAC,CAAA;AAGF,UAAU,CAAC,GAAG,EAAE;IACd,IAAA,cAAI,EAAC,4BAA4B,CAAC;SAC/B,IAAI,CAAC,kBAAkB,EAAE;QACxB,aAAa,EAAE,oBAAoB;QACnC,SAAS,EAAE,gBAAgB;QAC3B,aAAa,EAAE,oBAAoB;QACnC,UAAU,EAAE,eAAe;KAC5B,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAC,CAAA;AAGF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/destinations/first-party-dv360/_tests_/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ const event = (0, actions_core_1.createTestEvent)({
|
|
|
30
30
|
});
|
|
31
31
|
describe('First-Party-dv360.addToAudContactInfo', () => {
|
|
32
32
|
it('should hash pii data if not already hashed', async () => {
|
|
33
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/
|
|
33
|
+
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
34
34
|
.post('/1234567890:editCustomerMatchMembers')
|
|
35
35
|
.reply(200, { success: true });
|
|
36
36
|
const responses = await testDestination.testAction('addToAudContactInfo', {
|
|
@@ -51,7 +51,7 @@ describe('First-Party-dv360.addToAudContactInfo', () => {
|
|
|
51
51
|
expect(responses[0].options.body).toMatchInlineSnapshot('"{\\"advertiserId\\":\\"1234567890\\",\\"addedContactInfoList\\":{\\"contactInfos\\":[{\\"hashedEmails\\":\\"584c4423c421df49955759498a71495aba49b8780eb9387dff333b6f0982c777\\",\\"hashedPhoneNumbers\\":\\"422ce82c6fc1724ac878042f7d055653ab5e983d186e616826a72d4384b68af8\\",\\"zipCodes\\":\\"12345\\",\\"hashedFirstName\\":\\"96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a\\",\\"hashedLastName\\":\\"799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f\\",\\"countryCode\\":\\"US\\"}],\\"consent\\":{\\"adUserData\\":\\"CONSENT_STATUS_GRANTED\\",\\"adPersonalization\\":\\"CONSENT_STATUS_GRANTED\\"}}}"');
|
|
52
52
|
});
|
|
53
53
|
it('should not hash pii data if already hashed', async () => {
|
|
54
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/
|
|
54
|
+
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
55
55
|
.post('/1234567890:editCustomerMatchMembers')
|
|
56
56
|
.reply(200, { success: true });
|
|
57
57
|
const responses = await testDestination.testAction('addToAudContactInfo', {
|
|
@@ -72,7 +72,7 @@ describe('First-Party-dv360.addToAudContactInfo', () => {
|
|
|
72
72
|
expect(responses[0].options.body).toMatchInlineSnapshot('"{\\"advertiserId\\":\\"1234567890\\",\\"addedContactInfoList\\":{\\"contactInfos\\":[{\\"hashedEmails\\":\\"584c4423c421df49955759498a71495aba49b8780eb9387dff333b6f0982c777\\",\\"hashedPhoneNumbers\\":\\"422ce82c6fc1724ac878042f7d055653ab5e983d186e616826a72d4384b68af8\\",\\"zipCodes\\":\\"12345\\",\\"hashedFirstName\\":\\"96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a\\",\\"hashedLastName\\":\\"799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f\\",\\"countryCode\\":\\"US\\"}],\\"consent\\":{\\"adUserData\\":\\"CONSENT_STATUS_GRANTED\\",\\"adPersonalization\\":\\"CONSENT_STATUS_GRANTED\\"}}}"');
|
|
73
73
|
});
|
|
74
74
|
it('should batch multiple payloads into a single request when enable_batching is true', async () => {
|
|
75
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/
|
|
75
|
+
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
76
76
|
.post('/1234567890:editCustomerMatchMembers')
|
|
77
77
|
.reply(200, { success: true });
|
|
78
78
|
const events = (0, exports.createBatchTestEvents)(createContactList);
|
|
@@ -96,7 +96,7 @@ describe('First-Party-dv360.addToAudContactInfo', () => {
|
|
|
96
96
|
expect(requestBody.addedContactInfoList.contactInfos[0].hashedEmails).toBeDefined();
|
|
97
97
|
expect(requestBody.addedContactInfoList.contactInfos[1].hashedEmails).toBeDefined();
|
|
98
98
|
});
|
|
99
|
-
it('should batch multiple payloads into a single request when enable_batching is true (
|
|
99
|
+
it('should batch multiple payloads into a single request when enable_batching is true ( CANARY VERSION )', async () => {
|
|
100
100
|
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
101
101
|
.post('/1234567890:editCustomerMatchMembers')
|
|
102
102
|
.reply(200, { success: true });
|
|
@@ -115,33 +115,7 @@ describe('First-Party-dv360.addToAudContactInfo', () => {
|
|
|
115
115
|
enable_batching: true,
|
|
116
116
|
batch_size: 2
|
|
117
117
|
},
|
|
118
|
-
features: { '
|
|
119
|
-
});
|
|
120
|
-
const requestBody = JSON.parse(String(responses[0].options.body));
|
|
121
|
-
expect(requestBody.addedContactInfoList.contactInfos.length).toBe(2);
|
|
122
|
-
expect(requestBody.addedContactInfoList.contactInfos[0].hashedEmails).toBeDefined();
|
|
123
|
-
expect(requestBody.addedContactInfoList.contactInfos[1].hashedEmails).toBeDefined();
|
|
124
|
-
});
|
|
125
|
-
it('should batch multiple payloads into a single request when enable_batching is true (feature flag OFF, v3)', async () => {
|
|
126
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/v3/firstAndThirdPartyAudiences')
|
|
127
|
-
.post('/1234567890:editCustomerMatchMembers')
|
|
128
|
-
.reply(200, { success: true });
|
|
129
|
-
const events = (0, exports.createBatchTestEvents)(createContactList);
|
|
130
|
-
const responses = await testDestination.testBatchAction('addToAudContactInfo', {
|
|
131
|
-
events: events,
|
|
132
|
-
mapping: {
|
|
133
|
-
emails: ['584c4423c421df49955759498a71495aba49b8780eb9387dff333b6f0982c777'],
|
|
134
|
-
phoneNumbers: ['422ce82c6fc1724ac878042f7d055653ab5e983d186e616826a72d4384b68af8'],
|
|
135
|
-
zipCodes: ['12345'],
|
|
136
|
-
firstName: '96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a',
|
|
137
|
-
lastName: '799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f',
|
|
138
|
-
countryCode: 'US',
|
|
139
|
-
external_id: '1234567890',
|
|
140
|
-
advertiser_id: '1234567890',
|
|
141
|
-
enable_batching: true,
|
|
142
|
-
batch_size: 2
|
|
143
|
-
},
|
|
144
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
118
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
145
119
|
});
|
|
146
120
|
const requestBody = JSON.parse(String(responses[0].options.body));
|
|
147
121
|
expect(requestBody.addedContactInfoList.contactInfos.length).toBe(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/destinations/first-party-dv360/addToAudContactInfo/_tests_/index.test.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,wDAA8E;AAC9E,wDAAqC;AAErC,MAAM,eAAe,GAAG,IAAA,oCAAqB,EAAC,eAAW,CAAC,CAAA;AAE1D,MAAM,KAAK,GAAG,IAAA,8BAAe,EAAC;IAC5B,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,YAAY,EAAE,wBAAwB;KACvC;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,aAAa;YAC3B,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;SAClB;KACF;CACF,CAAC,CAAA;AAEF,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,IAAA,cAAI,EAAC,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/destinations/first-party-dv360/addToAudContactInfo/_tests_/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ const event = (0, actions_core_1.createTestEvent)({
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
describe('First-Party-dv360.addToAudMobileDeviceId', () => {
|
|
27
|
-
it('should use v4 endpoint when
|
|
27
|
+
it('should use v4 endpoint when CANARY VERSION', async () => {
|
|
28
28
|
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
29
29
|
.post('/1234567890:editCustomerMatchMembers')
|
|
30
30
|
.reply(200, { firstPartyAndPartnerAudienceId: '1234567890' });
|
|
@@ -37,37 +37,7 @@ describe('First-Party-dv360.addToAudMobileDeviceId', () => {
|
|
|
37
37
|
enable_batching: false,
|
|
38
38
|
batch_size: 1
|
|
39
39
|
},
|
|
40
|
-
features: { '
|
|
41
|
-
});
|
|
42
|
-
expect(JSON.parse(responses[0].options.body)).toMatchInlineSnapshot(`
|
|
43
|
-
Object {
|
|
44
|
-
"addedMobileDeviceIdList": Object {
|
|
45
|
-
"consent": Object {
|
|
46
|
-
"adPersonalization": "CONSENT_STATUS_GRANTED",
|
|
47
|
-
"adUserData": "CONSENT_STATUS_GRANTED",
|
|
48
|
-
},
|
|
49
|
-
"mobileDeviceIds": Array [
|
|
50
|
-
"test-id",
|
|
51
|
-
],
|
|
52
|
-
},
|
|
53
|
-
"advertiserId": "1234567890",
|
|
54
|
-
}
|
|
55
|
-
`);
|
|
56
|
-
});
|
|
57
|
-
it('should use v3 endpoint when feature flag is OFF', async () => {
|
|
58
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/v3/firstAndThirdPartyAudiences')
|
|
59
|
-
.post('/1234567890:editCustomerMatchMembers')
|
|
60
|
-
.reply(200, { firstAndThirdPartyAudienceId: '1234567890' });
|
|
61
|
-
const responses = await testDestination.testAction('addToAudMobileDeviceId', {
|
|
62
|
-
event,
|
|
63
|
-
mapping: {
|
|
64
|
-
mobileDeviceIds: ['test-id'],
|
|
65
|
-
external_id: '1234567890',
|
|
66
|
-
advertiser_id: '1234567890',
|
|
67
|
-
enable_batching: false,
|
|
68
|
-
batch_size: 1
|
|
69
|
-
},
|
|
70
|
-
features: { 'actions-first-party-dv360-version-update': false }
|
|
40
|
+
features: { 'first-party-dv360-canary-version': true }
|
|
71
41
|
});
|
|
72
42
|
expect(JSON.parse(responses[0].options.body)).toMatchInlineSnapshot(`
|
|
73
43
|
Object {
|
|
@@ -85,9 +55,9 @@ describe('First-Party-dv360.addToAudMobileDeviceId', () => {
|
|
|
85
55
|
`);
|
|
86
56
|
});
|
|
87
57
|
it('should addToAudMobileDeviceId', async () => {
|
|
88
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/
|
|
58
|
+
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
89
59
|
.post('/1234567890:editCustomerMatchMembers')
|
|
90
|
-
.reply(200, {
|
|
60
|
+
.reply(200, { firstPartyAndPartnerAudienceId: '1234567890' });
|
|
91
61
|
const responses = await testDestination.testAction('addToAudMobileDeviceId', {
|
|
92
62
|
event,
|
|
93
63
|
mapping: {
|
|
@@ -101,9 +71,9 @@ describe('First-Party-dv360.addToAudMobileDeviceId', () => {
|
|
|
101
71
|
expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"advertiserId\\":\\"1234567890\\",\\"addedMobileDeviceIdList\\":{\\"mobileDeviceIds\\":[\\"test-id\\"],\\"consent\\":{\\"adUserData\\":\\"CONSENT_STATUS_GRANTED\\",\\"adPersonalization\\":\\"CONSENT_STATUS_GRANTED\\"}}}"`);
|
|
102
72
|
});
|
|
103
73
|
it('should batch multiple payloads into a single request when enable_batching is true', async () => {
|
|
104
|
-
(0, nock_1.default)('https://displayvideo.googleapis.com/
|
|
74
|
+
(0, nock_1.default)('https://displayvideo.googleapis.com/v4/firstPartyAndPartnerAudiences')
|
|
105
75
|
.post('/1234567890:editCustomerMatchMembers')
|
|
106
|
-
.reply(200, {
|
|
76
|
+
.reply(200, { firstPartyAndPartnerAudienceId: '1234567890' });
|
|
107
77
|
const events = (0, exports.createBatchTestEvents)(createContactList);
|
|
108
78
|
const responses = await testDestination.testBatchAction('addToAudMobileDeviceId', {
|
|
109
79
|
events: events,
|
package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,wDAA8E;AAC9E,wDAAqC;AAErC,MAAM,eAAe,GAAG,IAAA,oCAAqB,EAAC,eAAW,CAAC,CAAA;AAE1D,MAAM,KAAK,GAAG,IAAA,8BAAe,EAAC;IAC5B,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,YAAY,EAAE,wBAAwB;KACvC;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;QACD,MAAM,EAAE;YACN,eAAe,EAAE,SAAS;SAC3B;KACF;CACF,CAAC,CAAA;AAEF,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Features, RequestClient, StatsContext } from '@segment/actions-core';
|
|
2
2
|
import { Payload } from './addToAudContactInfo/generated-types';
|
|
3
3
|
import { Payload as DeviceIdPayload } from './addToAudMobileDeviceId/generated-types';
|
|
4
|
+
export declare const API_VERSION = "v4";
|
|
5
|
+
export declare const CANARY_API_VERSION = "v4";
|
|
6
|
+
export declare const FLAGON_NAME = "first-party-dv360-canary-version";
|
|
7
|
+
export declare function getApiVersion(features?: Features, statsContext?: StatsContext): string;
|
|
4
8
|
interface createAudienceRequestParams {
|
|
5
9
|
advertiserId: string;
|
|
6
10
|
audienceName: string;
|
|
@@ -10,15 +14,16 @@ interface createAudienceRequestParams {
|
|
|
10
14
|
appId?: string;
|
|
11
15
|
token?: string;
|
|
12
16
|
features?: Features;
|
|
17
|
+
statsContext?: StatsContext;
|
|
13
18
|
}
|
|
14
19
|
interface getAudienceParams {
|
|
15
20
|
advertiserId: string;
|
|
16
21
|
audienceId: string;
|
|
17
22
|
token?: string;
|
|
18
23
|
features?: Features;
|
|
24
|
+
statsContext?: StatsContext;
|
|
19
25
|
}
|
|
20
26
|
interface DV360editCustomerMatchResponse {
|
|
21
|
-
firstAndThirdPartyAudienceId?: string;
|
|
22
27
|
firstPartyAndPartnerAudienceId?: string;
|
|
23
28
|
error: [
|
|
24
29
|
{
|
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAudienceRequest = exports.createAudienceRequest = void 0;
|
|
3
|
+
exports.getAudienceRequest = exports.createAudienceRequest = exports.FLAGON_NAME = exports.CANARY_API_VERSION = exports.API_VERSION = void 0;
|
|
4
|
+
exports.getApiVersion = getApiVersion;
|
|
4
5
|
exports.editDeviceMobileIds = editDeviceMobileIds;
|
|
5
6
|
exports.editContactInfo = editContactInfo;
|
|
6
7
|
const actions_core_1 = require("@segment/actions-core");
|
|
7
8
|
const hashing_utils_1 = require("../../lib/hashing-utils");
|
|
8
|
-
|
|
9
|
+
exports.API_VERSION = 'v4';
|
|
10
|
+
exports.CANARY_API_VERSION = 'v4';
|
|
11
|
+
exports.FLAGON_NAME = 'first-party-dv360-canary-version';
|
|
9
12
|
const DV360API = `https://displayvideo.googleapis.com/`;
|
|
10
13
|
const CONSENT_STATUS_GRANTED = 'CONSENT_STATUS_GRANTED';
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
function getApiVersion(features, statsContext) {
|
|
15
|
+
const statsClient = statsContext?.statsClient;
|
|
16
|
+
const tags = statsContext?.tags;
|
|
17
|
+
const version = features && features[exports.FLAGON_NAME] ? exports.CANARY_API_VERSION : exports.API_VERSION;
|
|
18
|
+
statsClient?.incr('dv360_api_version', 1, [...(tags || []), `version:${version}`]);
|
|
19
|
+
return version;
|
|
20
|
+
}
|
|
21
|
+
function getAudienceEndpoint(version, advertiserId, audienceId) {
|
|
22
|
+
if (audienceId) {
|
|
23
|
+
return DV360API + `${version}/firstPartyAndPartnerAudiences/` + `${audienceId}?advertiserId=${advertiserId}`;
|
|
16
24
|
}
|
|
17
25
|
else {
|
|
18
|
-
|
|
26
|
+
return DV360API + `${version}/firstPartyAndPartnerAudiences` + `?advertiserId=${advertiserId}`;
|
|
19
27
|
}
|
|
28
|
+
}
|
|
29
|
+
function getEditCustomerMatchMembersEndpoint(version, audienceId) {
|
|
30
|
+
return DV360API + `${version}/firstPartyAndPartnerAudiences/` + audienceId + ':editCustomerMatchMembers';
|
|
31
|
+
}
|
|
32
|
+
const createAudienceRequest = (request, params) => {
|
|
33
|
+
const { advertiserId, audienceName, description, membershipDurationDays, audienceType, appId, token, features, statsContext } = params;
|
|
34
|
+
const version = getApiVersion(features, statsContext);
|
|
35
|
+
const endpoint = getAudienceEndpoint(version, advertiserId);
|
|
20
36
|
return request(endpoint, {
|
|
21
37
|
method: 'POST',
|
|
22
38
|
headers: {
|
|
@@ -29,24 +45,16 @@ const createAudienceRequest = (request, params) => {
|
|
|
29
45
|
membershipDurationDays: membershipDurationDays,
|
|
30
46
|
description: description,
|
|
31
47
|
audienceSource: 'AUDIENCE_SOURCE_UNSPECIFIED',
|
|
32
|
-
|
|
33
|
-
? undefined
|
|
34
|
-
: 'FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY',
|
|
35
|
-
firstPartyAndPartnerAudienceType: features && features[properties_1.FLAGON_NAME_FIRST_PARTY_DV360_VERSION_UPDATE] ? 'TYPE_FIRST_PARTY' : undefined,
|
|
48
|
+
firstPartyAndPartnerAudienceType: 'TYPE_FIRST_PARTY',
|
|
36
49
|
appId: appId
|
|
37
50
|
}
|
|
38
51
|
});
|
|
39
52
|
};
|
|
40
53
|
exports.createAudienceRequest = createAudienceRequest;
|
|
41
54
|
const getAudienceRequest = (request, params) => {
|
|
42
|
-
const { advertiserId, audienceId, token, features } = params;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
endpoint = DV360API + 'v4/firstPartyAndPartnerAudiences' + `/${audienceId}?advertiserId=${advertiserId}`;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
endpoint = DV360API + 'v3/firstAndThirdPartyAudiences' + `/${audienceId}?advertiserId=${advertiserId}`;
|
|
49
|
-
}
|
|
55
|
+
const { advertiserId, audienceId, token, features, statsContext } = params;
|
|
56
|
+
const version = getApiVersion(features, statsContext);
|
|
57
|
+
const endpoint = getAudienceEndpoint(version, advertiserId, audienceId);
|
|
50
58
|
return request(endpoint, {
|
|
51
59
|
method: 'GET',
|
|
52
60
|
headers: {
|
|
@@ -59,13 +67,8 @@ exports.getAudienceRequest = getAudienceRequest;
|
|
|
59
67
|
async function editDeviceMobileIds(request, payloads, operation, statsContext, features) {
|
|
60
68
|
const { external_id: audienceId, advertiser_id: advertiserId } = payloads[0];
|
|
61
69
|
const allMobileDeviceIds = payloads.flatMap((p) => Array.isArray(p.mobileDeviceIds) ? p.mobileDeviceIds : [p.mobileDeviceIds]);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
endpoint = DV360API + 'v4/firstPartyAndPartnerAudiences/' + audienceId + ':editCustomerMatchMembers';
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
endpoint = DV360API + 'v3/firstAndThirdPartyAudiences/' + audienceId + ':editCustomerMatchMembers';
|
|
68
|
-
}
|
|
70
|
+
const version = getApiVersion(features, statsContext);
|
|
71
|
+
const endpoint = getEditCustomerMatchMembersEndpoint(version, audienceId);
|
|
69
72
|
const mobileDeviceIdList = {
|
|
70
73
|
mobileDeviceIds: allMobileDeviceIds,
|
|
71
74
|
consent: {
|
|
@@ -85,9 +88,7 @@ async function editDeviceMobileIds(request, payloads, operation, statsContext, f
|
|
|
85
88
|
},
|
|
86
89
|
body: requestPayload
|
|
87
90
|
});
|
|
88
|
-
const responseAudienceId =
|
|
89
|
-
? response.data.firstPartyAndPartnerAudienceId
|
|
90
|
-
: response.data.firstAndThirdPartyAudienceId;
|
|
91
|
+
const responseAudienceId = response.data.firstPartyAndPartnerAudienceId;
|
|
91
92
|
if (!response.data || !responseAudienceId) {
|
|
92
93
|
statsContext?.statsClient?.incr('addCustomerMatchMembers.error', allMobileDeviceIds.length, statsContext?.tags);
|
|
93
94
|
throw new actions_core_1.IntegrationError(`API returned error: ${response.data?.error || 'Unknown error'}`, 'API_REQUEST_ERROR', 400);
|
|
@@ -127,13 +128,8 @@ async function editContactInfo(request, payloads, operation, statsContext, featu
|
|
|
127
128
|
const contactInfos = validPayloads.map(processPayload);
|
|
128
129
|
const contactInfoList = buildContactInfoList(contactInfos);
|
|
129
130
|
const requestPayload = buildRequestPayload(advertiserId, contactInfoList, operation);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
endpoint = DV360API + 'v4/firstPartyAndPartnerAudiences/' + audienceId + ':editCustomerMatchMembers';
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
endpoint = DV360API + 'v3/firstAndThirdPartyAudiences/' + audienceId + ':editCustomerMatchMembers';
|
|
136
|
-
}
|
|
131
|
+
const version = getApiVersion(features, statsContext);
|
|
132
|
+
const endpoint = getEditCustomerMatchMembersEndpoint(version, audienceId);
|
|
137
133
|
const response = await request(endpoint, {
|
|
138
134
|
method: 'POST',
|
|
139
135
|
headers: { 'Content-Type': 'application/json; charset=utf-8' },
|