@segment/action-destinations 3.74.4-alpha.7 → 3.75.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 (71) hide show
  1. package/dist/destinations/google-analytics-4/addPaymentInfo/index.js +5 -5
  2. package/dist/destinations/google-analytics-4/addPaymentInfo/index.js.map +1 -1
  3. package/dist/destinations/google-analytics-4/addToCart/index.js +6 -3
  4. package/dist/destinations/google-analytics-4/addToCart/index.js.map +1 -1
  5. package/dist/destinations/google-analytics-4/addToWishlist/index.js +5 -5
  6. package/dist/destinations/google-analytics-4/addToWishlist/index.js.map +1 -1
  7. package/dist/destinations/google-analytics-4/beginCheckout/index.js +5 -5
  8. package/dist/destinations/google-analytics-4/beginCheckout/index.js.map +1 -1
  9. package/dist/destinations/google-analytics-4/ga4-functions.d.ts +1 -0
  10. package/dist/destinations/google-analytics-4/ga4-functions.js +12 -0
  11. package/dist/destinations/google-analytics-4/ga4-functions.js.map +1 -0
  12. package/dist/destinations/google-analytics-4/generateLead/index.js +3 -3
  13. package/dist/destinations/google-analytics-4/generateLead/index.js.map +1 -1
  14. package/dist/destinations/google-analytics-4/purchase/index.js +4 -6
  15. package/dist/destinations/google-analytics-4/purchase/index.js.map +1 -1
  16. package/dist/destinations/google-analytics-4/refund/index.js +5 -5
  17. package/dist/destinations/google-analytics-4/refund/index.js.map +1 -1
  18. package/dist/destinations/google-analytics-4/removeFromCart/index.js +5 -5
  19. package/dist/destinations/google-analytics-4/removeFromCart/index.js.map +1 -1
  20. package/dist/destinations/google-analytics-4/selectItem/index.js +3 -3
  21. package/dist/destinations/google-analytics-4/selectItem/index.js.map +1 -1
  22. package/dist/destinations/google-analytics-4/selectPromotion/index.js +3 -3
  23. package/dist/destinations/google-analytics-4/selectPromotion/index.js.map +1 -1
  24. package/dist/destinations/google-analytics-4/viewCart/index.js +5 -5
  25. package/dist/destinations/google-analytics-4/viewCart/index.js.map +1 -1
  26. package/dist/destinations/google-analytics-4/viewItem/index.js +5 -5
  27. package/dist/destinations/google-analytics-4/viewItem/index.js.map +1 -1
  28. package/dist/destinations/google-analytics-4/viewItemList/index.js +3 -3
  29. package/dist/destinations/google-analytics-4/viewItemList/index.js.map +1 -1
  30. package/dist/destinations/google-analytics-4/viewPromotion/index.js +3 -3
  31. package/dist/destinations/google-analytics-4/viewPromotion/index.js.map +1 -1
  32. package/dist/destinations/salesforce/account/generated-types.d.ts +1 -0
  33. package/dist/destinations/salesforce/account/index.js +2 -5
  34. package/dist/destinations/salesforce/account/index.js.map +1 -1
  35. package/dist/destinations/salesforce/cases/generated-types.d.ts +1 -0
  36. package/dist/destinations/salesforce/cases/index.js +2 -8
  37. package/dist/destinations/salesforce/cases/index.js.map +1 -1
  38. package/dist/destinations/salesforce/contact/generated-types.d.ts +1 -0
  39. package/dist/destinations/salesforce/contact/index.js +2 -5
  40. package/dist/destinations/salesforce/contact/index.js.map +1 -1
  41. package/dist/destinations/salesforce/customObject/generated-types.d.ts +1 -0
  42. package/dist/destinations/salesforce/customObject/index.js +2 -8
  43. package/dist/destinations/salesforce/customObject/index.js.map +1 -1
  44. package/dist/destinations/salesforce/index.js +2 -1
  45. package/dist/destinations/salesforce/index.js.map +1 -1
  46. package/dist/destinations/salesforce/lead/generated-types.d.ts +1 -0
  47. package/dist/destinations/salesforce/lead/index.js +2 -5
  48. package/dist/destinations/salesforce/lead/index.js.map +1 -1
  49. package/dist/destinations/salesforce/opportunity/generated-types.d.ts +1 -0
  50. package/dist/destinations/salesforce/opportunity/index.js +2 -5
  51. package/dist/destinations/salesforce/opportunity/index.js.map +1 -1
  52. package/dist/destinations/salesforce/sf-operations.d.ts +3 -1
  53. package/dist/destinations/salesforce/sf-operations.js +27 -3
  54. package/dist/destinations/salesforce/sf-operations.js.map +1 -1
  55. package/dist/destinations/salesforce/sf-properties.js +2 -1
  56. package/dist/destinations/salesforce/sf-properties.js.map +1 -1
  57. package/dist/destinations/salesforce/sf-utils.d.ts +1 -1
  58. package/dist/destinations/salesforce/sf-utils.js +22 -5
  59. package/dist/destinations/salesforce/sf-utils.js.map +1 -1
  60. package/dist/destinations/snap-conversions-api/_tests_/index.test.d.ts +1 -0
  61. package/dist/destinations/snap-conversions-api/_tests_/index.test.js +202 -0
  62. package/dist/destinations/snap-conversions-api/_tests_/index.test.js.map +1 -1
  63. package/dist/destinations/snap-conversions-api/index.js +147 -0
  64. package/dist/destinations/snap-conversions-api/index.js.map +1 -1
  65. package/dist/destinations/snap-conversions-api/reportConversionEvent/generated-types.d.ts +23 -0
  66. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +41 -3
  67. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -1
  68. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +30 -0
  69. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +308 -0
  70. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +1 -1
  71. package/package.json +2 -2
@@ -1,2 +1,204 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const nock_1 = __importDefault(require("nock"));
7
+ const actions_core_1 = require("@segment/actions-core");
8
+ const index_1 = __importDefault(require("../index"));
9
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
10
+ const timestamp = '2022-05-12T15:21:15.449Z';
11
+ const settings = {
12
+ snap_app_id: 'test123',
13
+ pixel_id: 'test123',
14
+ app_id: 'test123'
15
+ };
16
+ const accessToken = 'test123';
17
+ const refreshToken = 'test123';
18
+ const testEvent = actions_core_1.createTestEvent({
19
+ timestamp: timestamp,
20
+ messageId: 'test-message-rv4t40s898k',
21
+ event: 'PURCHASE',
22
+ type: 'track',
23
+ properties: {
24
+ email: 'test123@gmail.com',
25
+ phone: '+44 844 412 4653',
26
+ event_tag: 'back-to-school',
27
+ number_items: 10,
28
+ price: '15',
29
+ currency: 'USD',
30
+ level: 3
31
+ }
32
+ });
33
+ const conversionEventUrl = 'https://tr.snapchat.com/v2/conversion';
34
+ describe('Snap Conversions API ', () => {
35
+ describe('ReportConversionEvent', () => {
36
+ it('should handle a basic event', async () => {
37
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
38
+ const event = actions_core_1.createTestEvent(testEvent);
39
+ const responses = await testDestination.testAction('reportConversionEvent', {
40
+ event,
41
+ settings,
42
+ useDefaultMappings: true,
43
+ auth: {
44
+ accessToken,
45
+ refreshToken
46
+ },
47
+ mapping: {
48
+ event_type: 'PURCHASE',
49
+ event_conversion_type: 'WEB'
50
+ }
51
+ });
52
+ expect(responses).not.toBeNull();
53
+ expect(responses[0].status).toBe(200);
54
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"PURCHASE\\",\\"event_conversion_type\\":\\"WEB\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"pixel_id\\":\\"test123\\"}"`);
55
+ });
56
+ it('should fail web event without pixel_id', async () => {
57
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
58
+ const event = actions_core_1.createTestEvent(testEvent);
59
+ await expect(testDestination.testAction('reportConversionEvent', {
60
+ event,
61
+ settings: {
62
+ app_id: 'test123'
63
+ },
64
+ useDefaultMappings: true,
65
+ auth: {
66
+ accessToken,
67
+ refreshToken
68
+ },
69
+ mapping: {
70
+ event_type: 'PURCHASE',
71
+ event_conversion_type: 'WEB'
72
+ }
73
+ })).rejects.toThrowError('If event conversion type is "WEB" then pixel_id must be defined');
74
+ });
75
+ it('should fail web event without snap_app_id', async () => {
76
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
77
+ const event = actions_core_1.createTestEvent(testEvent);
78
+ await expect(testDestination.testAction('reportConversionEvent', {
79
+ event,
80
+ settings: {
81
+ pixel_id: 'test123',
82
+ app_id: 'test123'
83
+ },
84
+ useDefaultMappings: true,
85
+ auth: {
86
+ accessToken,
87
+ refreshToken
88
+ },
89
+ mapping: {
90
+ event_type: 'PURCHASE',
91
+ event_conversion_type: 'MOBILE_APP'
92
+ }
93
+ })).rejects.toThrowError('If event conversion type is "MOBILE_APP" then snap_app_id and app_id must be defined');
94
+ });
95
+ it('should handle an offline event conversion type', async () => {
96
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
97
+ const event = actions_core_1.createTestEvent(testEvent);
98
+ const responses = await testDestination.testAction('reportConversionEvent', {
99
+ event,
100
+ settings,
101
+ useDefaultMappings: true,
102
+ auth: {
103
+ accessToken,
104
+ refreshToken
105
+ },
106
+ mapping: {
107
+ event_type: 'SAVE',
108
+ event_conversion_type: 'OFFLINE'
109
+ }
110
+ });
111
+ expect(responses).not.toBeNull();
112
+ expect(responses[0].status).toBe(200);
113
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"SAVE\\",\\"event_conversion_type\\":\\"OFFLINE\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"pixel_id\\":\\"test123\\"}"`);
114
+ });
115
+ it('should handle a mobile app event conversion type', async () => {
116
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
117
+ const event = actions_core_1.createTestEvent(testEvent);
118
+ const responses = await testDestination.testAction('reportConversionEvent', {
119
+ event,
120
+ settings: {
121
+ snap_app_id: '123',
122
+ app_id: '123'
123
+ },
124
+ useDefaultMappings: true,
125
+ auth: {
126
+ accessToken,
127
+ refreshToken
128
+ },
129
+ mapping: {
130
+ event_type: 'SAVE',
131
+ event_conversion_type: 'MOBILE_APP'
132
+ }
133
+ });
134
+ expect(responses).not.toBeNull();
135
+ expect(responses[0].status).toBe(200);
136
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"SAVE\\",\\"event_conversion_type\\":\\"MOBILE_APP\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"snap_app_id\\":\\"123\\",\\"app_id\\":\\"123\\"}"`);
137
+ });
138
+ it('should fail invalid currency', async () => {
139
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
140
+ const event = actions_core_1.createTestEvent({
141
+ ...testEvent,
142
+ properties: {
143
+ currency: 'Galleon'
144
+ }
145
+ });
146
+ await expect(testDestination.testAction('reportConversionEvent', {
147
+ event,
148
+ settings,
149
+ useDefaultMappings: true,
150
+ auth: {
151
+ accessToken,
152
+ refreshToken
153
+ },
154
+ mapping: {
155
+ event_type: 'PURCHASE',
156
+ event_conversion_type: 'WEB'
157
+ }
158
+ })).rejects.toThrowError('Galleon is not a valid currency code.');
159
+ });
160
+ it('should fail missing event conversion type', async () => {
161
+ nock_1.default(conversionEventUrl).post('').reply(400, {});
162
+ const event = actions_core_1.createTestEvent(testEvent);
163
+ await expect(testDestination.testAction('reportConversionEvent', {
164
+ event,
165
+ settings,
166
+ useDefaultMappings: true,
167
+ auth: {
168
+ accessToken,
169
+ refreshToken
170
+ },
171
+ mapping: {
172
+ event_type: 'PURCHASE'
173
+ }
174
+ })).rejects.toThrowError("The root value is missing the required field 'event_conversion_type'.");
175
+ });
176
+ it('should handle a custom event', async () => {
177
+ nock_1.default(conversionEventUrl).post('').reply(200, {});
178
+ const event = actions_core_1.createTestEvent({
179
+ ...testEvent,
180
+ event: 'CUSTOM_EVENT_5'
181
+ });
182
+ const responses = await testDestination.testAction('reportConversionEvent', {
183
+ event,
184
+ settings: {
185
+ snap_app_id: '123',
186
+ app_id: '123'
187
+ },
188
+ useDefaultMappings: true,
189
+ auth: {
190
+ accessToken,
191
+ refreshToken
192
+ },
193
+ mapping: {
194
+ event_type: { '@path': '$.event' },
195
+ event_conversion_type: 'MOBILE_APP'
196
+ }
197
+ });
198
+ expect(responses).not.toBeNull();
199
+ expect(responses[0].status).toBe(200);
200
+ expect(responses[0].options.body).toMatchInlineSnapshot(`"{\\"event_type\\":\\"CUSTOM_EVENT_5\\",\\"event_conversion_type\\":\\"MOBILE_APP\\",\\"timestamp\\":1652368875449,\\"hashed_email\\":\\"cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9\\",\\"hashed_phone_number\\":\\"dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383\\",\\"user_agent\\":\\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\\",\\"hashed_ip_address\\":\\"838c4c2573848f58e74332341a7ca6bc5cd86a8aec7d644137d53b4d597f10f5\\",\\"price\\":15,\\"currency\\":\\"USD\\",\\"page_url\\":\\"https://segment.com/academy/\\",\\"snap_app_id\\":\\"123\\",\\"app_id\\":\\"123\\"}"`);
201
+ });
202
+ });
203
+ });
2
204
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/_tests_/index.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/_tests_/index.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,154 @@ 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 reportConversionEvent_1 = __importDefault(require("./reportConversionEvent"));
8
+ const DEFAULT_VALS = {
9
+ ...actions_core_1.defaultValues(reportConversionEvent_1.default.fields)
10
+ };
7
11
  const ACCESS_TOKEN_URL = 'https://accounts.snapchat.com/login/oauth2/access_token';
12
+ const presets = [
13
+ {
14
+ name: 'Add Billing',
15
+ subscribe: 'event = "Payment Info Entered"',
16
+ partnerAction: 'reportConversionEvent',
17
+ mapping: {
18
+ ...DEFAULT_VALS,
19
+ event_type: 'ADD_BILLING',
20
+ event_conversion_type: 'WEB'
21
+ }
22
+ },
23
+ {
24
+ name: 'Add to Cart',
25
+ subscribe: 'event = "Product Added"',
26
+ partnerAction: 'reportConversionEvent',
27
+ mapping: {
28
+ ...DEFAULT_VALS,
29
+ event_type: 'ADD_CART',
30
+ event_conversion_type: 'WEB'
31
+ }
32
+ },
33
+ {
34
+ name: 'Add to Wishlist',
35
+ subscribe: 'event = "Product Added to Wishlist"',
36
+ partnerAction: 'reportConversionEvent',
37
+ mapping: {
38
+ ...DEFAULT_VALS,
39
+ event_type: 'ADD_TO_WISHLIST',
40
+ event_conversion_type: 'WEB'
41
+ }
42
+ },
43
+ {
44
+ name: 'App Install',
45
+ subscribe: 'event = "Application Installed"',
46
+ partnerAction: 'reportConversionEvent',
47
+ mapping: {
48
+ ...DEFAULT_VALS,
49
+ event_type: 'APP_INSTALL',
50
+ event_conversion_type: 'WEB'
51
+ }
52
+ },
53
+ {
54
+ name: 'List View',
55
+ subscribe: 'event = "Product List Viewed"',
56
+ partnerAction: 'reportConversionEvent',
57
+ mapping: {
58
+ ...DEFAULT_VALS,
59
+ event_type: 'LIST_VIEW',
60
+ event_conversion_type: 'WEB'
61
+ }
62
+ },
63
+ {
64
+ name: 'App Open',
65
+ subscribe: 'event = "Application Opened"',
66
+ partnerAction: 'reportConversionEvent',
67
+ mapping: {
68
+ ...DEFAULT_VALS,
69
+ event_type: 'APP_OPEN',
70
+ event_conversion_type: 'WEB'
71
+ }
72
+ },
73
+ {
74
+ name: 'Login',
75
+ subscribe: 'event = "Signed In"',
76
+ partnerAction: 'reportConversionEvent',
77
+ mapping: {
78
+ ...DEFAULT_VALS,
79
+ event_type: 'LOGIN',
80
+ event_conversion_type: 'WEB'
81
+ }
82
+ },
83
+ {
84
+ name: 'Page View',
85
+ subscribe: 'type = "page"',
86
+ partnerAction: 'reportConversionEvent',
87
+ mapping: {
88
+ ...DEFAULT_VALS,
89
+ event_type: 'PAGE_VIEW',
90
+ event_conversion_type: 'WEB'
91
+ }
92
+ },
93
+ {
94
+ name: 'Purchase',
95
+ subscribe: 'event = "Order Completed"',
96
+ partnerAction: 'reportConversionEvent',
97
+ mapping: {
98
+ ...DEFAULT_VALS,
99
+ event_type: 'PURCHASE',
100
+ event_conversion_type: 'WEB'
101
+ }
102
+ },
103
+ {
104
+ name: 'Search',
105
+ subscribe: 'event = "Products Searched"',
106
+ partnerAction: 'reportConversionEvent',
107
+ mapping: {
108
+ ...DEFAULT_VALS,
109
+ event_type: 'SEARCH',
110
+ event_conversion_type: 'WEB'
111
+ }
112
+ },
113
+ {
114
+ name: 'Share',
115
+ subscribe: 'event = "Product Shared"',
116
+ partnerAction: 'reportConversionEvent',
117
+ mapping: {
118
+ ...DEFAULT_VALS,
119
+ event_type: 'SHARE',
120
+ event_conversion_type: 'WEB'
121
+ }
122
+ },
123
+ {
124
+ name: 'Sign Up',
125
+ subscribe: 'event = "Signed Up"',
126
+ partnerAction: 'reportConversionEvent',
127
+ mapping: {
128
+ ...DEFAULT_VALS,
129
+ event_type: 'SIGN_UP',
130
+ event_conversion_type: 'WEB'
131
+ }
132
+ },
133
+ {
134
+ name: 'Start Checkout',
135
+ subscribe: 'event = "Checkout Started"',
136
+ partnerAction: 'reportConversionEvent',
137
+ mapping: {
138
+ ...DEFAULT_VALS,
139
+ event_type: 'START_CHECKOUT',
140
+ event_conversion_type: 'WEB'
141
+ }
142
+ },
143
+ {
144
+ name: 'View Content',
145
+ subscribe: 'event = "Product Viewed"',
146
+ partnerAction: 'reportConversionEvent',
147
+ mapping: {
148
+ ...DEFAULT_VALS,
149
+ event_type: 'VIEW_CONTENT',
150
+ event_conversion_type: 'WEB'
151
+ }
152
+ }
153
+ ];
8
154
  const destination = {
9
155
  name: 'Snap Conversions Api',
10
156
  slug: 'actions-snap-conversions',
@@ -48,6 +194,7 @@ const destination = {
48
194
  }
49
195
  };
50
196
  },
197
+ presets,
51
198
  actions: {
52
199
  reportConversionEvent: reportConversionEvent_1.default
53
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/snap-conversions-api/index.ts"],"names":[],"mappings":";;;;;AAIA,oFAA2D;AAM3D,MAAM,gBAAgB,GAAG,yDAAyD,CAAA;AAuIlF,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,iFAAiF;gBAC9F,IAAI,EAAE,QAAQ;aACf;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,aAAa;gBACpB,WAAW,EACT,gKAAgK;gBAClK,IAAI,EAAE,QAAQ;aACf;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,QAAQ;gBACf,WAAW,EACT,wJAAwJ;gBAC1J,IAAI,EAAE,QAAQ;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAE9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,gBAAgB,EAAE;gBAChE,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,qBAAqB,EAArB,+BAAqB;KACtB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/snap-conversions-api/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,25 @@
1
1
  export interface Payload {
2
+ event_type: string;
3
+ event_conversion_type: string;
4
+ event_tag?: string;
5
+ timestamp: string;
6
+ email?: string;
7
+ mobile_ad_id?: string;
8
+ uuid_c1?: string;
9
+ idfv?: string;
10
+ phone_number?: string;
11
+ user_agent?: string;
12
+ ip_address?: string;
13
+ item_category?: string;
14
+ item_ids?: string;
15
+ description?: string;
16
+ number_items?: string;
17
+ price?: number;
18
+ currency?: string;
19
+ transaction_id?: string;
20
+ level?: string;
21
+ client_dedup_id?: string;
22
+ search_string?: string;
23
+ page_url?: string;
24
+ sign_up_method?: string;
2
25
  }
@@ -1,11 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actions_core_1 = require("@segment/actions-core");
4
+ const snap_capi_properties_1 = require("../snap-capi-properties");
5
+ const CONVERSION_EVENT_URL = 'https://tr.snapchat.com/v2/conversion';
3
6
  const action = {
4
7
  title: 'Report Conversion Event',
5
8
  description: 'Report events directly to Snapchat. Data shared can power Snap solutions such as custom audience targeting, campaign optimization, Dynamic Ads, and more.',
6
- fields: {},
7
- perform: () => {
8
- return;
9
+ fields: {
10
+ event_type: { ...snap_capi_properties_1.event_type, required: true },
11
+ event_conversion_type: { ...snap_capi_properties_1.event_conversion_type, required: true },
12
+ event_tag: snap_capi_properties_1.event_tag,
13
+ timestamp: { ...snap_capi_properties_1.timestamp, required: true },
14
+ email: snap_capi_properties_1.email,
15
+ mobile_ad_id: snap_capi_properties_1.mobile_ad_id,
16
+ uuid_c1: snap_capi_properties_1.uuid_c1,
17
+ idfv: snap_capi_properties_1.idfv,
18
+ phone_number: snap_capi_properties_1.phone_number,
19
+ user_agent: snap_capi_properties_1.user_agent,
20
+ ip_address: snap_capi_properties_1.ip_address,
21
+ item_category: snap_capi_properties_1.item_category,
22
+ item_ids: snap_capi_properties_1.item_ids,
23
+ description: snap_capi_properties_1.description,
24
+ number_items: snap_capi_properties_1.number_items,
25
+ price: snap_capi_properties_1.price,
26
+ currency: snap_capi_properties_1.currency,
27
+ transaction_id: snap_capi_properties_1.transaction_id,
28
+ level: snap_capi_properties_1.level,
29
+ client_dedup_id: snap_capi_properties_1.client_dedup_id,
30
+ search_string: snap_capi_properties_1.search_string,
31
+ page_url: snap_capi_properties_1.page_url,
32
+ sign_up_method: snap_capi_properties_1.sign_up_method
33
+ },
34
+ perform: (request, data) => {
35
+ const payload = snap_capi_properties_1.formatPayload(data.payload);
36
+ const settings = snap_capi_properties_1.conversionType(data.settings, data.payload.event_conversion_type);
37
+ if (data.payload.currency && !snap_capi_properties_1.CURRENCY_ISO_4217_CODES.has(data.payload.currency)) {
38
+ throw new actions_core_1.IntegrationError(`${data.payload.currency} is not a valid currency code.`, 'Misconfigured required field', 400);
39
+ }
40
+ return request(CONVERSION_EVENT_URL, {
41
+ method: 'post',
42
+ json: {
43
+ ...payload,
44
+ ...settings
45
+ }
46
+ });
9
47
  }
10
48
  };
11
49
  exports.default = action;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/reportConversionEvent/index.ts"],"names":[],"mappings":";;AAqFA,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,2JAA2J;IAC7J,MAAM,EAAE,EAAE;IAEV,OAAO,EAAE,GAAG,EAAE;QACZ,OAAM;IACR,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/reportConversionEvent/index.ts"],"names":[],"mappings":";;AAAA,wDAA0E;AAG1E,kEA2BgC;AAEhC,MAAM,oBAAoB,GAAG,uCAAuC,CAAA;AAEpE,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,2JAA2J;IAC7J,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,GAAG,iCAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,qBAAqB,EAAE,EAAE,GAAG,4CAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,SAAS,EAAE,gCAAS;QACpB,SAAS,EAAE,EAAE,GAAG,gCAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,KAAK,EAAE,4BAAK;QACZ,YAAY,EAAE,mCAAY;QAC1B,OAAO,EAAE,8BAAO;QAChB,IAAI,EAAE,2BAAI;QACV,YAAY,EAAE,mCAAY;QAC1B,UAAU,EAAE,iCAAU;QACtB,UAAU,EAAE,iCAAU;QACtB,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,WAAW,EAAE,kCAAW;QACxB,YAAY,EAAE,mCAAY;QAC1B,KAAK,EAAE,4BAAK;QACZ,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;QAC9B,KAAK,EAAE,4BAAK;QACZ,eAAe,EAAE,sCAAe;QAChC,aAAa,EAAE,oCAAa;QAC5B,QAAQ,EAAE,+BAAQ;QAClB,cAAc,EAAE,qCAAc;KAC/B;IACD,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,OAAO,GAAW,oCAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAa,qCAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAE5F,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,8CAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChF,MAAM,IAAI,+BAAgB,CACxB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,gCAAgC,EACxD,8BAA8B,EAC9B,GAAG,CACJ,CAAA;SACF;QAGD,OAAO,OAAO,CAAC,oBAAoB,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,GAAG,OAAO;gBACV,GAAG,QAAQ;aACZ;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { InputField } from '@segment/actions-core/src/destination-kit/types';
2
+ import { Settings } from '../snap-conversions-api/generated-types';
3
+ import { Payload } from './reportConversionEvent/generated-types';
4
+ export declare const CURRENCY_ISO_4217_CODES: Set<string>;
5
+ export declare const event_type: InputField;
6
+ export declare const event_conversion_type: InputField;
7
+ export declare const event_tag: InputField;
8
+ export declare const timestamp: InputField;
9
+ export declare const email: InputField;
10
+ export declare const mobile_ad_id: InputField;
11
+ export declare const uuid_c1: InputField;
12
+ export declare const idfv: InputField;
13
+ export declare const phone_number: InputField;
14
+ export declare const user_agent: InputField;
15
+ export declare const ip_address: InputField;
16
+ export declare const item_category: InputField;
17
+ export declare const item_ids: InputField;
18
+ export declare const description: InputField;
19
+ export declare const number_items: InputField;
20
+ export declare const price: InputField;
21
+ export declare const currency: InputField;
22
+ export declare const transaction_id: InputField;
23
+ export declare const level: InputField;
24
+ export declare const client_dedup_id: InputField;
25
+ export declare const search_string: InputField;
26
+ export declare const page_url: InputField;
27
+ export declare const sign_up_method: InputField;
28
+ export declare const conversionType: (settings: Settings, event_conversion_type: String) => Settings;
29
+ export declare const hash: (value: string | undefined) => string | undefined;
30
+ export declare const formatPayload: (payload: Payload) => Object;