@segment/action-destinations 3.428.0 → 3.430.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.
Files changed (162) hide show
  1. package/dist/destinations/acoustic-s3tc/index.js +1 -1
  2. package/dist/destinations/acoustic-s3tc/index.js.map +1 -1
  3. package/dist/destinations/adobe-target/index.js +1 -1
  4. package/dist/destinations/adobe-target/index.js.map +1 -1
  5. package/dist/destinations/algolia-insights/conversionEvents/index.d.ts +0 -1
  6. package/dist/destinations/algolia-insights/conversionEvents/index.js +137 -145
  7. package/dist/destinations/algolia-insights/conversionEvents/index.js.map +1 -1
  8. package/dist/destinations/algolia-insights/index.js +1 -1
  9. package/dist/destinations/algolia-insights/index.js.map +1 -1
  10. package/dist/destinations/algolia-insights/productAddedEvents/generated-types.d.ts +1 -0
  11. package/dist/destinations/algolia-insights/productAddedEvents/index.d.ts +2 -0
  12. package/dist/destinations/algolia-insights/productAddedEvents/index.js +19 -3
  13. package/dist/destinations/algolia-insights/productAddedEvents/index.js.map +1 -1
  14. package/dist/destinations/criteo-audiences/index.js +1 -1
  15. package/dist/destinations/criteo-audiences/index.js.map +1 -1
  16. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.d.ts +4 -0
  17. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.js +79 -0
  18. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/_tests_/index.test.js.map +1 -0
  19. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/generated-types.d.ts +3 -3
  20. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/index.js +3 -3
  21. package/dist/destinations/first-party-dv360/addToAudMobileDeviceId/index.js.map +1 -1
  22. package/dist/destinations/first-party-dv360/functions.d.ts +1 -1
  23. package/dist/destinations/first-party-dv360/functions.js +6 -9
  24. package/dist/destinations/first-party-dv360/functions.js.map +1 -1
  25. package/dist/destinations/first-party-dv360/properties.js.map +1 -1
  26. package/dist/destinations/first-party-dv360/removeFromAudMobileDeviceId/generated-types.d.ts +3 -3
  27. package/dist/destinations/first-party-dv360/removeFromAudMobileDeviceId/index.js +3 -3
  28. package/dist/destinations/first-party-dv360/removeFromAudMobileDeviceId/index.js.map +1 -1
  29. package/dist/destinations/friendbuy/index.js +1 -1
  30. package/dist/destinations/friendbuy/index.js.map +1 -1
  31. package/dist/destinations/index.js +1 -0
  32. package/dist/destinations/index.js.map +1 -1
  33. package/dist/destinations/kafka/index.js +1 -1
  34. package/dist/destinations/kafka/index.js.map +1 -1
  35. package/dist/destinations/kafka/utils.js +13 -9
  36. package/dist/destinations/kafka/utils.js.map +1 -1
  37. package/dist/destinations/koala/index.js +1 -1
  38. package/dist/destinations/koala/index.js.map +1 -1
  39. package/dist/destinations/metronome/index.js +1 -1
  40. package/dist/destinations/metronome/index.js.map +1 -1
  41. package/dist/destinations/moengage/index.js +1 -1
  42. package/dist/destinations/moengage/index.js.map +1 -1
  43. package/dist/destinations/ms-bing-ads-audiences/constants.d.ts +5 -0
  44. package/dist/destinations/ms-bing-ads-audiences/constants.js +13 -0
  45. package/dist/destinations/ms-bing-ads-audiences/constants.js.map +1 -0
  46. package/dist/destinations/ms-bing-ads-audiences/generated-types.d.ts +3 -0
  47. package/dist/destinations/ms-bing-ads-audiences/index.d.ts +1 -1
  48. package/dist/destinations/ms-bing-ads-audiences/index.js +86 -3
  49. package/dist/destinations/ms-bing-ads-audiences/index.js.map +1 -1
  50. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/fields.d.ts +11 -0
  51. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/fields.js +123 -0
  52. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/fields.js.map +1 -0
  53. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/generated-types.d.ts +11 -0
  54. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.d.ts +1 -1
  55. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js +58 -7
  56. package/dist/destinations/ms-bing-ads-audiences/syncAudiences/index.js.map +1 -1
  57. package/dist/destinations/ms-bing-ads-audiences/types.d.ts +48 -0
  58. package/dist/destinations/ms-bing-ads-audiences/types.js.map +1 -0
  59. package/dist/destinations/ms-bing-ads-audiences/utils.d.ts +9 -0
  60. package/dist/destinations/ms-bing-ads-audiences/utils.js +86 -0
  61. package/dist/destinations/ms-bing-ads-audiences/utils.js.map +1 -0
  62. package/dist/destinations/ms-bing-capi/generated-types.d.ts +1 -0
  63. package/dist/destinations/ms-bing-capi/index.d.ts +1 -1
  64. package/dist/destinations/ms-bing-capi/index.js +83 -5
  65. package/dist/destinations/ms-bing-capi/index.js.map +1 -1
  66. package/dist/destinations/ms-bing-capi/sendEvent/constants.js.map +1 -0
  67. package/dist/destinations/ms-bing-capi/{fields.d.ts → sendEvent/fields.d.ts} +3 -0
  68. package/dist/destinations/ms-bing-capi/{fields.js → sendEvent/fields.js} +52 -16
  69. package/dist/destinations/ms-bing-capi/sendEvent/fields.js.map +1 -0
  70. package/dist/destinations/ms-bing-capi/sendEvent/generated-types.d.ts +22 -22
  71. package/dist/destinations/ms-bing-capi/sendEvent/index.d.ts +1 -1
  72. package/dist/destinations/ms-bing-capi/sendEvent/index.js +68 -30
  73. package/dist/destinations/ms-bing-capi/sendEvent/index.js.map +1 -1
  74. package/dist/destinations/ms-bing-capi/sendEvent/types.d.ts +62 -10
  75. package/dist/destinations/ms-bing-capi/sendEvent/utils.js +1 -1
  76. package/dist/destinations/ms-bing-capi/sendEvent/utils.js.map +1 -1
  77. package/dist/destinations/pipedrive/index.js +1 -1
  78. package/dist/destinations/pipedrive/index.js.map +1 -1
  79. package/dist/destinations/qualtrics/index.js +1 -1
  80. package/dist/destinations/qualtrics/index.js.map +1 -1
  81. package/dist/destinations/reddit-conversions-api/index.js +1 -1
  82. package/dist/destinations/reddit-conversions-api/index.js.map +1 -1
  83. package/dist/destinations/salesforce/index.js +2 -2
  84. package/dist/destinations/salesforce/index.js.map +1 -1
  85. package/dist/destinations/taboola-actions/index.js +1 -1
  86. package/dist/destinations/taboola-actions/index.js.map +1 -1
  87. package/dist/destinations/the-trade-desk-crm/index.js +1 -1
  88. package/dist/destinations/the-trade-desk-crm/index.js.map +1 -1
  89. package/dist/destinations/tiktok-conversions/index.js +1 -1
  90. package/dist/destinations/tiktok-conversions/index.js.map +1 -1
  91. package/dist/destinations/tiktok-conversions/reportWebEvent/constants.d.ts +4 -0
  92. package/dist/destinations/tiktok-conversions/reportWebEvent/constants.js +8 -0
  93. package/dist/destinations/tiktok-conversions/reportWebEvent/constants.js.map +1 -0
  94. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/common_fields.d.ts +2 -0
  95. package/dist/destinations/tiktok-conversions/{common_fields.js → reportWebEvent/fields/common_fields.js} +89 -21
  96. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/common_fields.js.map +1 -0
  97. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/crm_fields.d.ts +2 -0
  98. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/crm_fields.js +48 -0
  99. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/crm_fields.js.map +1 -0
  100. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/travel_fields.d.ts +2 -0
  101. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/travel_fields.js +216 -0
  102. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/travel_fields.js.map +1 -0
  103. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/vehicle_fields.d.ts +2 -0
  104. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/vehicle_fields.js +261 -0
  105. package/dist/destinations/tiktok-conversions/reportWebEvent/fields/vehicle_fields.js.map +1 -0
  106. package/dist/destinations/tiktok-conversions/{formatter.js → reportWebEvent/formatter.js} +1 -1
  107. package/dist/destinations/tiktok-conversions/reportWebEvent/formatter.js.map +1 -0
  108. package/dist/destinations/tiktok-conversions/reportWebEvent/generated-types.d.ts +58 -1
  109. package/dist/destinations/tiktok-conversions/reportWebEvent/index.js +10 -4
  110. package/dist/destinations/tiktok-conversions/reportWebEvent/index.js.map +1 -1
  111. package/dist/destinations/tiktok-conversions/reportWebEvent/types.d.ts +111 -0
  112. package/dist/destinations/tiktok-conversions/reportWebEvent/types.js +3 -0
  113. package/dist/destinations/tiktok-conversions/reportWebEvent/types.js.map +1 -0
  114. package/dist/destinations/tiktok-conversions/reportWebEvent/utils.d.ts +4 -0
  115. package/dist/destinations/tiktok-conversions/reportWebEvent/utils.js +170 -0
  116. package/dist/destinations/tiktok-conversions/reportWebEvent/utils.js.map +1 -0
  117. package/dist/destinations/tiktok-offline-conversions/index.js +1 -1
  118. package/dist/destinations/tiktok-offline-conversions/index.js.map +1 -1
  119. package/dist/destinations/vibe-audience/constants.d.ts +2 -0
  120. package/dist/destinations/vibe-audience/constants.js +6 -0
  121. package/dist/destinations/vibe-audience/constants.js.map +1 -0
  122. package/dist/destinations/vibe-audience/functions.d.ts +4 -0
  123. package/dist/destinations/vibe-audience/functions.js +31 -0
  124. package/dist/destinations/vibe-audience/functions.js.map +1 -0
  125. package/dist/destinations/vibe-audience/generated-types.d.ts +4 -0
  126. package/dist/destinations/vibe-audience/generated-types.js.map +1 -0
  127. package/dist/destinations/vibe-audience/index.d.ts +4 -0
  128. package/dist/destinations/vibe-audience/index.js +49 -0
  129. package/dist/destinations/vibe-audience/index.js.map +1 -0
  130. package/dist/destinations/vibe-audience/sync/generated-types.d.ts +16 -0
  131. package/dist/destinations/vibe-audience/sync/generated-types.js +3 -0
  132. package/dist/destinations/vibe-audience/sync/generated-types.js.map +1 -0
  133. package/dist/destinations/{ms-bing-capi/pageLoad → vibe-audience/sync}/index.d.ts +1 -1
  134. package/dist/destinations/vibe-audience/sync/index.js +135 -0
  135. package/dist/destinations/vibe-audience/sync/index.js.map +1 -0
  136. package/dist/destinations/vibe-audience/types.d.ts +14 -0
  137. package/dist/destinations/vibe-audience/types.js +3 -0
  138. package/dist/destinations/vibe-audience/types.js.map +1 -0
  139. package/dist/destinations/webhook/index.js +1 -1
  140. package/dist/destinations/webhook/index.js.map +1 -1
  141. package/dist/destinations/webhook-extensible/index.js +1 -1
  142. package/dist/destinations/webhook-extensible/index.js.map +1 -1
  143. package/package.json +2 -2
  144. package/dist/destinations/ms-bing-capi/constants.js.map +0 -1
  145. package/dist/destinations/ms-bing-capi/fields.js.map +0 -1
  146. package/dist/destinations/ms-bing-capi/pageLoad/generated-types.d.ts +0 -56
  147. package/dist/destinations/ms-bing-capi/pageLoad/generated-types.js.map +0 -1
  148. package/dist/destinations/ms-bing-capi/pageLoad/index.js +0 -44
  149. package/dist/destinations/ms-bing-capi/pageLoad/index.js.map +0 -1
  150. package/dist/destinations/tiktok-conversions/common_fields.d.ts +0 -2
  151. package/dist/destinations/tiktok-conversions/common_fields.js.map +0 -1
  152. package/dist/destinations/tiktok-conversions/formatter.js.map +0 -1
  153. package/dist/destinations/tiktok-conversions/types.d.ts +0 -55
  154. package/dist/destinations/tiktok-conversions/types.js.map +0 -1
  155. package/dist/destinations/tiktok-conversions/utils.d.ts +0 -4
  156. package/dist/destinations/tiktok-conversions/utils.js +0 -128
  157. package/dist/destinations/tiktok-conversions/utils.js.map +0 -1
  158. /package/dist/destinations/{tiktok-conversions → ms-bing-ads-audiences}/types.js +0 -0
  159. /package/dist/destinations/ms-bing-capi/{constants.d.ts → sendEvent/constants.d.ts} +0 -0
  160. /package/dist/destinations/ms-bing-capi/{constants.js → sendEvent/constants.js} +0 -0
  161. /package/dist/destinations/tiktok-conversions/{formatter.d.ts → reportWebEvent/formatter.d.ts} +0 -0
  162. /package/dist/destinations/{ms-bing-capi/pageLoad → vibe-audience}/generated-types.js +0 -0
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.batch_keys = exports.batch_size = exports.enable_batching = exports.audience_key = exports.traits_or_props = exports.crm_id = exports.email = exports.identifier_type = exports.computation_class = exports.audience_id = void 0;
4
+ const constants_1 = require("../constants");
5
+ exports.audience_id = {
6
+ label: 'Audience ID',
7
+ description: 'The ID of the audience to which you want to add or remove users.',
8
+ type: 'string',
9
+ required: true,
10
+ default: {
11
+ '@path': '$.context.personas.external_audience_id'
12
+ },
13
+ unsafe_hidden: true
14
+ };
15
+ exports.computation_class = {
16
+ label: 'Computation Class',
17
+ description: 'Hidden field: The computation class for the audience.',
18
+ type: 'string',
19
+ required: true,
20
+ default: {
21
+ '@path': '$.context.personas.computation_class'
22
+ },
23
+ choices: [
24
+ { label: 'audience', value: 'audience' },
25
+ { label: 'journey_step', value: 'journey_step' }
26
+ ],
27
+ unsafe_hidden: true
28
+ };
29
+ exports.identifier_type = {
30
+ label: 'Identifier Type',
31
+ description: 'The type of identifier you are using to sync users.',
32
+ type: 'string',
33
+ required: true,
34
+ default: 'Email',
35
+ choices: [
36
+ { label: 'Email', value: 'Email' },
37
+ { label: 'CRM ID', value: 'CRM' }
38
+ ]
39
+ };
40
+ exports.email = {
41
+ label: 'Email',
42
+ description: 'The email address of the user to add or remove from the audience.',
43
+ type: 'string',
44
+ required: {
45
+ ...constants_1.EMAIL_CONDITION
46
+ },
47
+ depends_on: {
48
+ ...constants_1.EMAIL_CONDITION
49
+ },
50
+ default: {
51
+ '@if': {
52
+ exists: { '@path': '$.traits.email' },
53
+ then: { '@path': '$.traits.email' },
54
+ else: { '@path': '$.properties.email' }
55
+ }
56
+ },
57
+ category: 'hashedPII',
58
+ format: 'email'
59
+ };
60
+ exports.crm_id = {
61
+ label: 'CRM ID',
62
+ description: 'The CRM ID of the user to add or remove from the audience.',
63
+ type: 'string',
64
+ required: {
65
+ ...constants_1.CRM_CONDITION
66
+ },
67
+ depends_on: {
68
+ ...constants_1.CRM_CONDITION
69
+ },
70
+ default: {
71
+ '@path': '$.userId'
72
+ }
73
+ };
74
+ exports.traits_or_props = {
75
+ label: 'Traits or Properties',
76
+ description: 'Hidden field: traits object from identify() payloads or properties object from track() payloads.',
77
+ type: 'object',
78
+ required: true,
79
+ unsafe_hidden: true,
80
+ default: {
81
+ '@if': {
82
+ exists: { '@path': '$.traits' },
83
+ then: { '@path': '$.traits' },
84
+ else: { '@path': '$.properties' }
85
+ }
86
+ }
87
+ };
88
+ exports.audience_key = {
89
+ label: 'Audience Key',
90
+ description: 'Hidden field: The Engage Audience Key / Slug.',
91
+ type: 'string',
92
+ required: true,
93
+ unsafe_hidden: true,
94
+ default: {
95
+ '@path': '$.context.personas.computation_key'
96
+ }
97
+ };
98
+ exports.enable_batching = {
99
+ label: 'Enable Batching',
100
+ description: 'Enable batching of user syncs to optimize performance. When enabled, user syncs will be sent in batches based on the specified batch size.',
101
+ type: 'boolean',
102
+ required: true,
103
+ default: true,
104
+ readOnly: true
105
+ };
106
+ exports.batch_size = {
107
+ label: 'Batch Size',
108
+ description: 'The number of user syncs to include in each batch when batching is enabled. Must be between 1 and 1000.',
109
+ type: 'number',
110
+ required: true,
111
+ default: 1000,
112
+ unsafe_hidden: true
113
+ };
114
+ exports.batch_keys = {
115
+ label: 'Batch Keys',
116
+ description: 'The keys to use for batching user syncs. Users with the same values for these keys will be grouped together in the same batch.',
117
+ type: 'string',
118
+ required: false,
119
+ default: ['identifier_type', 'audience_id'],
120
+ unsafe_hidden: true,
121
+ multiple: true
122
+ };
123
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-ads-audiences/syncAudiences/fields.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,13 @@
1
1
  export interface Payload {
2
+ audience_id: string;
3
+ traits_or_props: {
4
+ [k: string]: unknown;
5
+ };
6
+ audience_key: string;
7
+ identifier_type: string;
8
+ email?: string;
9
+ crm_id?: string;
10
+ enable_batching: boolean;
11
+ batch_size: number;
12
+ computation_class: string;
2
13
  }
@@ -1,4 +1,4 @@
1
- import type { ActionDefinition } from '@segment/actions-core';
1
+ import { ActionDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from '../generated-types';
3
3
  import type { Payload } from './generated-types';
4
4
  declare const action: ActionDefinition<Settings, Payload>;
@@ -1,15 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const actions_core_2 = require("@segment/actions-core");
5
+ const fields_1 = require("./fields");
6
+ const utils_1 = require("../utils");
3
7
  const action = {
4
8
  title: 'Sync Audiences',
5
- description: 'Sync users to Bing Ads',
6
- fields: {},
7
- perform: (request, data) => {
8
- return request('https://example.com', {
9
- method: 'post',
10
- json: data.payload
11
- });
9
+ description: 'Sync users to Microsoft Bing Ads Audiences',
10
+ fields: {
11
+ audience_id: fields_1.audience_id,
12
+ traits_or_props: fields_1.traits_or_props,
13
+ audience_key: fields_1.audience_key,
14
+ identifier_type: fields_1.identifier_type,
15
+ email: fields_1.email,
16
+ crm_id: fields_1.crm_id,
17
+ enable_batching: fields_1.enable_batching,
18
+ batch_size: fields_1.batch_size,
19
+ computation_class: fields_1.computation_class
20
+ },
21
+ perform: async (request, { payload }) => {
22
+ return await syncUser(request, [payload], false);
23
+ },
24
+ performBatch: async (request, { payload }) => {
25
+ return await syncUser(request, payload, true);
12
26
  }
13
27
  };
28
+ const syncUser = async (request, payload, isBatch) => {
29
+ const msResponse = new actions_core_2.MultiStatusResponse();
30
+ if (!Array.isArray(payload) || payload.length === 0) {
31
+ return msResponse;
32
+ }
33
+ const identifierType = payload[0]?.identifier_type;
34
+ const audienceId = payload[0]?.audience_id;
35
+ const addMap = new Map();
36
+ const removeMap = new Map();
37
+ (0, utils_1.categorizePayloadByAction)(payload, addMap, removeMap);
38
+ const addItems = Array.from(addMap.keys());
39
+ const removeItems = Array.from(removeMap.keys());
40
+ const addPayload = (0, utils_1.preparePayload)(audienceId, 'Add', identifierType, addItems);
41
+ const removePayload = (0, utils_1.preparePayload)(audienceId, 'Remove', identifierType, removeItems);
42
+ try {
43
+ if (addMap.size > 0) {
44
+ const response = await (0, utils_1.sendDataToMicrosoftBingAds)(request, addPayload);
45
+ (0, utils_1.handleMultistatusResponse)(msResponse, response, addItems, addMap, payload, isBatch);
46
+ }
47
+ if (removeMap.size > 0) {
48
+ const response = await (0, utils_1.sendDataToMicrosoftBingAds)(request, removePayload);
49
+ (0, utils_1.handleMultistatusResponse)(msResponse, response, removeItems, removeMap, payload, isBatch);
50
+ }
51
+ }
52
+ catch (error) {
53
+ if (!isBatch) {
54
+ throw error;
55
+ }
56
+ if (error instanceof actions_core_1.HTTPError) {
57
+ await (0, utils_1.handleHttpError)(msResponse, error, new Map([...addMap, ...removeMap]), payload);
58
+ }
59
+ else {
60
+ throw error;
61
+ }
62
+ }
63
+ return msResponse;
64
+ };
14
65
  exports.default = action;
15
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-ads-audiences/syncAudiences/index.ts"],"names":[],"mappings":";;AAIA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,wBAAwB;IACrC,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAEzB,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-ads-audiences/syncAudiences/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export interface RefreshTokenResponse {
2
+ access_token: string;
3
+ refresh_token?: string;
4
+ }
5
+ export interface PartialError {
6
+ FieldPath: string | null;
7
+ ErrorCode: string;
8
+ Message: string;
9
+ Code: number;
10
+ Details: string | null;
11
+ Index: number;
12
+ Type: string;
13
+ ForwardCompatibilityMap: null;
14
+ }
15
+ export interface CreateAudienceResponse {
16
+ data: {
17
+ AudienceIds: string[];
18
+ PartialErrors: PartialError[];
19
+ };
20
+ }
21
+ export interface CreateAudienceRequest {
22
+ Audiences: [
23
+ {
24
+ Name: string;
25
+ Type: 'CustomerList';
26
+ }
27
+ ];
28
+ }
29
+ export interface GetAudienceResponse {
30
+ data: {
31
+ Audiences: [
32
+ {
33
+ Id: string;
34
+ }
35
+ ];
36
+ PartialErrors: [];
37
+ };
38
+ }
39
+ export interface SyncAudiencePayload {
40
+ CustomerListUserData: {
41
+ ActionType: Action;
42
+ AudienceId: string;
43
+ CustomerListItemSubType: Identifier;
44
+ CustomerListItems: string[];
45
+ };
46
+ }
47
+ export type Identifier = 'Email' | 'CRM';
48
+ export type Action = 'Add' | 'Remove';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Payload } from './syncAudiences/generated-types';
2
+ import { MultiStatusResponse, RequestClient, HTTPError, ModifiedResponse } from '@segment/actions-core';
3
+ import { SyncAudiencePayload, Action, Identifier } from './types';
4
+ export declare const hashEmail: (item: string) => string;
5
+ export declare const categorizePayloadByAction: (payload: Payload[], addMap: Map<string, number>, removeMap: Map<string, number>) => void;
6
+ export declare const preparePayload: (audienceId: string, action: Action, identifierType: Identifier, listItems: string[]) => SyncAudiencePayload;
7
+ export declare const sendDataToMicrosoftBingAds: (request: RequestClient, payload: SyncAudiencePayload) => Promise<ModifiedResponse<unknown>>;
8
+ export declare const handleMultistatusResponse: (msResponse: MultiStatusResponse, response: ModifiedResponse, items: string[], listItemsMap: Map<string, number>, payload: Payload[], isBatch: boolean) => void;
9
+ export declare const handleHttpError: (msResponse: MultiStatusResponse, error: HTTPError, listItemsMap: Map<string, number>, payload: Payload[]) => Promise<void>;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleHttpError = exports.handleMultistatusResponse = exports.sendDataToMicrosoftBingAds = exports.preparePayload = exports.categorizePayloadByAction = exports.hashEmail = void 0;
4
+ const hashing_utils_1 = require("../../lib/hashing-utils");
5
+ const actions_core_1 = require("@segment/actions-core");
6
+ const constants_1 = require("./constants");
7
+ const hashEmail = (item) => {
8
+ return (0, hashing_utils_1.processHashing)(item, 'sha256', 'hex', (value) => value.trim().toLowerCase());
9
+ };
10
+ exports.hashEmail = hashEmail;
11
+ const categorizePayloadByAction = (payload, addMap, removeMap) => {
12
+ payload.forEach((p, index) => {
13
+ const action = p.traits_or_props[p.audience_key] ? 'Add' : 'Remove';
14
+ const identifier = (p.identifier_type === 'Email' ? (0, exports.hashEmail)(p.email) : p.crm_id);
15
+ if (action === 'Add') {
16
+ addMap.set(identifier, index);
17
+ }
18
+ else {
19
+ removeMap.set(identifier, index);
20
+ }
21
+ });
22
+ };
23
+ exports.categorizePayloadByAction = categorizePayloadByAction;
24
+ const preparePayload = (audienceId, action, identifierType, listItems) => {
25
+ return {
26
+ CustomerListUserData: {
27
+ ActionType: action,
28
+ AudienceId: audienceId,
29
+ CustomerListItemSubType: identifierType,
30
+ CustomerListItems: listItems
31
+ }
32
+ };
33
+ };
34
+ exports.preparePayload = preparePayload;
35
+ const sendDataToMicrosoftBingAds = async (request, payload) => {
36
+ const response = await request(`${constants_1.BASE_URL}/CustomerListUserData/Apply`, {
37
+ method: 'POST',
38
+ json: payload
39
+ });
40
+ return response;
41
+ };
42
+ exports.sendDataToMicrosoftBingAds = sendDataToMicrosoftBingAds;
43
+ const handleMultistatusResponse = (msResponse, response, items, listItemsMap, payload, isBatch) => {
44
+ const responseData = response?.data;
45
+ if (responseData?.PartialErrors && responseData.PartialErrors.length > 0) {
46
+ if (!isBatch) {
47
+ throw new actions_core_1.IntegrationError(responseData.PartialErrors[0].Message, 'PartialErrors', 400);
48
+ }
49
+ responseData.PartialErrors.forEach((error) => {
50
+ if (typeof error.Index === 'number' && error.Index >= 0 && error.Index < items.length) {
51
+ const item = items[error.Index];
52
+ const originalIndex = listItemsMap.get(item);
53
+ if (originalIndex !== undefined) {
54
+ msResponse.setErrorResponseAtIndex(originalIndex, {
55
+ status: error.Code || 400,
56
+ errormessage: `${error.ErrorCode ?? 'UnknownError'}: ${error.Message ?? 'No error message provided'}`,
57
+ sent: payload[originalIndex],
58
+ body: JSON.stringify(error)
59
+ });
60
+ listItemsMap.delete(item);
61
+ }
62
+ }
63
+ });
64
+ }
65
+ listItemsMap.forEach((index) => {
66
+ msResponse.setSuccessResponseAtIndex(index, {
67
+ status: 200,
68
+ sent: payload[index],
69
+ body: JSON.stringify(response) || 'Success'
70
+ });
71
+ });
72
+ };
73
+ exports.handleMultistatusResponse = handleMultistatusResponse;
74
+ const handleHttpError = async (msResponse, error, listItemsMap, payload) => {
75
+ const errorResponse = await error?.response?.json();
76
+ listItemsMap.forEach((index) => {
77
+ msResponse.setErrorResponseAtIndex(index, {
78
+ status: errorResponse?.status,
79
+ errormessage: errorResponse?.message || error.message,
80
+ sent: payload[index],
81
+ body: JSON.stringify(errorResponse)
82
+ });
83
+ });
84
+ };
85
+ exports.handleHttpError = handleHttpError;
86
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-ads-audiences/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export interface Settings {
2
2
  UetTag: string;
3
3
  ApiToken: string;
4
+ adStorageConsent?: string;
4
5
  }
@@ -1,4 +1,4 @@
1
- import type { DestinationDefinition } from '@segment/actions-core';
1
+ import { DestinationDefinition } from '@segment/actions-core';
2
2
  import type { Settings } from './generated-types';
3
3
  declare const destination: DestinationDefinition<Settings>;
4
4
  export default destination;
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const actions_core_1 = require("@segment/actions-core");
6
7
  const sendEvent_1 = __importDefault(require("./sendEvent"));
7
- const pageLoad_1 = __importDefault(require("./pageLoad"));
8
8
  const destination = {
9
9
  name: 'Ms Bing Capi',
10
10
  slug: 'actions-ms-bing-capi',
@@ -21,8 +21,19 @@ const destination = {
21
21
  ApiToken: {
22
22
  label: 'Bing ApiToken',
23
23
  description: 'Your Bing API Token.',
24
- type: 'string',
24
+ type: 'password',
25
25
  required: true
26
+ },
27
+ adStorageConsent: {
28
+ label: 'Ad Storage Consent',
29
+ description: 'Ad Storage Consent for GDPR compliance',
30
+ type: 'string',
31
+ choices: [
32
+ { label: 'Granted', value: 'G' },
33
+ { label: 'Denied', value: 'D' }
34
+ ],
35
+ default: 'G',
36
+ required: false
26
37
  }
27
38
  },
28
39
  testAuthentication: (_, { settings }) => {
@@ -30,7 +41,7 @@ const destination = {
30
41
  return true;
31
42
  }
32
43
  else {
33
- throw new Error('Invalid AccountID. Please check your AccountID');
44
+ throw new Error('Invalid UetTag or ApiToken');
34
45
  }
35
46
  }
36
47
  },
@@ -42,9 +53,76 @@ const destination = {
42
53
  }
43
54
  };
44
55
  },
56
+ presets: [
57
+ {
58
+ name: 'Microsoft Bing CAPI msclkid Plugin',
59
+ subscribe: 'type = "track" or type = "identify" or type = "group" or type = "page" or type = "alias"',
60
+ partnerAction: 'msclkidPlugin',
61
+ mapping: {},
62
+ type: 'automatic'
63
+ },
64
+ {
65
+ name: 'Send Purchase Event',
66
+ subscribe: 'type = "track" and event = "Order Completed"',
67
+ partnerAction: 'sendEvent',
68
+ mapping: (0, actions_core_1.defaultValues)({
69
+ ...sendEvent_1.default.fields,
70
+ customData: {
71
+ ...sendEvent_1.default.fields.customData,
72
+ eventType: 'purchase'
73
+ }
74
+ }),
75
+ type: 'automatic'
76
+ },
77
+ {
78
+ name: 'Send Cart Event',
79
+ subscribe: 'type = "track" and event = "Add to Cart"',
80
+ partnerAction: 'sendEvent',
81
+ mapping: (0, actions_core_1.defaultValues)({
82
+ ...sendEvent_1.default.fields,
83
+ customData: {
84
+ ...sendEvent_1.default.fields.customData,
85
+ eventType: 'cart'
86
+ }
87
+ }),
88
+ type: 'automatic'
89
+ },
90
+ {
91
+ name: 'Send Search Results',
92
+ subscribe: 'type = "track" and event = "Products Searched"',
93
+ partnerAction: 'sendEvent',
94
+ mapping: (0, actions_core_1.defaultValues)({
95
+ ...sendEvent_1.default.fields,
96
+ customData: {
97
+ ...sendEvent_1.default.fields.customData,
98
+ eventType: 'searchresults'
99
+ }
100
+ }),
101
+ type: 'automatic'
102
+ },
103
+ {
104
+ name: 'Send Custom Event',
105
+ subscribe: 'type = "track" and event != "Order Completed" and event != "Add to Cart" and event != "Products Searched"',
106
+ partnerAction: 'sendEvent',
107
+ mapping: (0, actions_core_1.defaultValues)(sendEvent_1.default.fields),
108
+ type: 'automatic'
109
+ },
110
+ {
111
+ name: 'Send Pageload',
112
+ subscribe: 'type = "page"',
113
+ partnerAction: 'sendEvent',
114
+ mapping: (0, actions_core_1.defaultValues)({
115
+ ...sendEvent_1.default.fields,
116
+ data: {
117
+ ...sendEvent_1.default.fields.data,
118
+ eventType: 'pageLoad'
119
+ }
120
+ }),
121
+ type: 'automatic'
122
+ }
123
+ ],
45
124
  actions: {
46
- sendEvent: sendEvent_1.default,
47
- pageLoad: pageLoad_1.default
125
+ sendEvent: sendEvent_1.default
48
126
  }
49
127
  };
50
128
  exports.default = destination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-capi/index.ts"],"names":[],"mappings":";;;;;AAEA,4DAAmC;AACnC,0DAAiC;AAEjC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;KACF;IACD,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,QAAQ,CAAC,QAAQ,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,SAAS,EAAT,mBAAS;QACT,QAAQ,EAAR,kBAAQ;KACT;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/ms-bing-capi/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAA4E;AAE5E,4DAAmC;AAEnC,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI;aACf;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,wCAAwC;gBACrD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;oBAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;iBAChC;gBACD,OAAO,EAAE,GAAG;gBACZ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAEtC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;KACF;IACD,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,QAAQ,CAAC,QAAQ,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,oCAAoC;YAC1C,SAAS,EAAE,0FAA0F;YACrG,aAAa,EAAE,eAAe;YAC9B,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,8CAA8C;YACzD,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAA,4BAAa,EAAC;gBACrB,GAAG,mBAAS,CAAC,MAAM;gBACnB,UAAU,EAAE;oBACV,GAAG,mBAAS,CAAC,MAAM,CAAC,UAAU;oBAC9B,SAAS,EAAE,UAAU;iBACtB;aACF,CAAC;YACF,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,0CAA0C;YACrD,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAA,4BAAa,EAAC;gBACrB,GAAG,mBAAS,CAAC,MAAM;gBACnB,UAAU,EAAE;oBACV,GAAG,mBAAS,CAAC,MAAM,CAAC,UAAU;oBAC9B,SAAS,EAAE,MAAM;iBAClB;aACF,CAAC;YACF,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,gDAAgD;YAC3D,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAA,4BAAa,EAAC;gBACrB,GAAG,mBAAS,CAAC,MAAM;gBACnB,UAAU,EAAE;oBACV,GAAG,mBAAS,CAAC,MAAM,CAAC,UAAU;oBAC9B,SAAS,EAAE,eAAe;iBAC3B;aACF,CAAC;YACF,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,2GAA2G;YACtH,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAA,4BAAa,EAAC,mBAAS,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,WAAW;SAClB;QACD;YACE,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,eAAe;YAC1B,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAA,4BAAa,EAAC;gBACrB,GAAG,mBAAS,CAAC,MAAM;gBACnB,IAAI,EAAE;oBACJ,GAAG,mBAAS,CAAC,MAAM,CAAC,IAAI;oBACxB,SAAS,EAAE,UAAU;iBACtB;aACF,CAAC;YACF,IAAI,EAAE,WAAW;SAClB;KACF;IACD,OAAO,EAAE;QACP,SAAS,EAAT,mBAAS;KACV;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/destinations/ms-bing-capi/sendEvent/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,oCAAoC,CAAA;AAE9C,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACxC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC,CAAA"}
@@ -4,3 +4,6 @@ export declare const data: InputField;
4
4
  export declare const items: InputField;
5
5
  export declare const hotelData: InputField;
6
6
  export declare const customData: InputField;
7
+ export declare const timestamp: InputField;
8
+ export declare const enable_batching: InputField;
9
+ export declare const batch_size: InputField;