@segment/action-destinations 3.327.0 → 3.329.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/accoil-analytics/group/generated-types.d.ts +2 -0
- package/dist/destinations/accoil-analytics/group/index.js +14 -0
- package/dist/destinations/accoil-analytics/group/index.js.map +1 -1
- package/dist/destinations/braze/trackEvent2/index.js +1 -1
- package/dist/destinations/braze/trackEvent2/index.js.map +1 -1
- package/dist/destinations/braze/trackPurchase2/index.js +1 -1
- package/dist/destinations/braze/trackPurchase2/index.js.map +1 -1
- package/dist/destinations/braze/updateUserProfile2/index.js +1 -1
- package/dist/destinations/braze/updateUserProfile2/index.js.map +1 -1
- package/dist/destinations/braze/utils.d.ts +19 -6
- package/dist/destinations/braze/utils.js +156 -32
- package/dist/destinations/braze/utils.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/addToCart/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/addToCart2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/custom/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/custom2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js +20 -2
- package/dist/destinations/facebook-conversions-api/fb-capi-app-data.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js +6 -0
- package/dist/destinations/facebook-conversions-api/fb-capi-user-data.js.map +1 -1
- package/dist/destinations/facebook-conversions-api/initiateCheckout/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/initiateCheckout2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/pageView/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/pageView2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/purchase/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/purchase2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/search/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/search2/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/viewContent/generated-types.d.ts +3 -0
- package/dist/destinations/facebook-conversions-api/viewContent2/generated-types.d.ts +3 -0
- package/dist/destinations/google-enhanced-conversions/userList/index.js +1 -1
- package/dist/destinations/google-enhanced-conversions/userList/index.js.map +1 -1
- package/dist/destinations/index.js +2 -0
- package/dist/destinations/index.js.map +1 -1
- package/dist/destinations/optimizely-web/generated-types.d.ts +5 -0
- package/dist/destinations/optimizely-web/generated-types.js +3 -0
- package/dist/destinations/optimizely-web/generated-types.js.map +1 -0
- package/dist/destinations/optimizely-web/index.d.ts +4 -0
- package/dist/destinations/optimizely-web/index.js +49 -0
- package/dist/destinations/optimizely-web/index.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/client.d.ts +11 -0
- package/dist/destinations/optimizely-web/trackEvent/client.js +61 -0
- package/dist/destinations/optimizely-web/trackEvent/client.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/constants.d.ts +3 -0
- package/dist/destinations/optimizely-web/trackEvent/constants.js +7 -0
- package/dist/destinations/optimizely-web/trackEvent/constants.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/fields.d.ts +2 -0
- package/dist/destinations/optimizely-web/trackEvent/fields.js +193 -0
- package/dist/destinations/optimizely-web/trackEvent/fields.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/generated-types.d.ts +26 -0
- package/dist/destinations/optimizely-web/trackEvent/generated-types.js +3 -0
- package/dist/destinations/optimizely-web/trackEvent/generated-types.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/index.d.ts +5 -0
- package/dist/destinations/optimizely-web/trackEvent/index.js +15 -0
- package/dist/destinations/optimizely-web/trackEvent/index.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/types.d.ts +59 -0
- package/dist/destinations/optimizely-web/trackEvent/types.js +3 -0
- package/dist/destinations/optimizely-web/trackEvent/types.js.map +1 -0
- package/dist/destinations/optimizely-web/trackEvent/utils.d.ts +25 -0
- package/dist/destinations/optimizely-web/trackEvent/utils.js +156 -0
- package/dist/destinations/optimizely-web/trackEvent/utils.js.map +1 -0
- package/dist/destinations/s3/fields.js +9 -1
- package/dist/destinations/s3/fields.js.map +1 -1
- package/dist/destinations/s3/functions.d.ts +1 -1
- package/dist/destinations/s3/functions.js +13 -5
- package/dist/destinations/s3/functions.js.map +1 -1
- package/dist/destinations/s3/index.js +6 -0
- package/dist/destinations/s3/index.js.map +1 -1
- package/dist/destinations/s3/syncToS3/generated-types.d.ts +1 -0
- package/dist/destinations/snap-audiences/generated-types.d.ts +8 -0
- package/dist/destinations/snap-audiences/generated-types.js +3 -0
- package/dist/destinations/snap-audiences/generated-types.js.map +1 -0
- package/dist/destinations/snap-audiences/index.d.ts +4 -0
- package/dist/destinations/snap-audiences/index.js +139 -0
- package/dist/destinations/snap-audiences/index.js.map +1 -0
- package/dist/destinations/snap-audiences/syncAudience/generated-types.d.ts +12 -0
- package/dist/destinations/snap-audiences/syncAudience/generated-types.js +3 -0
- package/dist/destinations/snap-audiences/syncAudience/generated-types.js.map +1 -0
- package/dist/destinations/snap-audiences/syncAudience/index.d.ts +5 -0
- package/dist/destinations/snap-audiences/syncAudience/index.js +156 -0
- package/dist/destinations/snap-audiences/syncAudience/index.js.map +1 -0
- package/dist/destinations/snap-audiences/syncAudience/utils.d.ts +8 -0
- package/dist/destinations/snap-audiences/syncAudience/utils.js +73 -0
- package/dist/destinations/snap-audiences/syncAudience/utils.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fields = void 0;
|
|
4
|
+
exports.fields = {
|
|
5
|
+
uuid: {
|
|
6
|
+
label: 'UUID',
|
|
7
|
+
description: 'Unique message UUID to send with the event',
|
|
8
|
+
type: 'string',
|
|
9
|
+
required: true,
|
|
10
|
+
default: { '@path': '$.messageId' }
|
|
11
|
+
},
|
|
12
|
+
endUserId: {
|
|
13
|
+
label: 'Optimizely End User ID',
|
|
14
|
+
description: "The unique identifier for the user. The value should be taken from the optimizelyEndUserId cookie, or it can be collected using window.optimizely.get('visitor').visitorId. If using the BYOID feature pass in the value of the ID for your user.",
|
|
15
|
+
type: 'string',
|
|
16
|
+
required: true,
|
|
17
|
+
default: {
|
|
18
|
+
'@if': {
|
|
19
|
+
exists: { '@path': '$.integrations.actions-optimizely-web.end_user_id' },
|
|
20
|
+
then: { '@path': '$.integrations.actions-optimizely-web.end_user_id' },
|
|
21
|
+
else: { '@path': '$.properties.end_user_id' }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
anonymizeIP: {
|
|
26
|
+
label: 'Anonymize IP',
|
|
27
|
+
description: 'Anonymize the IP address of the user.',
|
|
28
|
+
type: 'boolean',
|
|
29
|
+
required: true,
|
|
30
|
+
default: true,
|
|
31
|
+
disabledInputMethods: ['enrichment', 'freeform', 'function', 'literal', 'variable']
|
|
32
|
+
},
|
|
33
|
+
eventMatching: {
|
|
34
|
+
label: 'Event Matching',
|
|
35
|
+
description: "Specify how Segment should match the Segment event to an Optimizely event, as well as specify if Segment should create new Custom Events and Pages in Optimizely if they don't exist.",
|
|
36
|
+
type: 'object',
|
|
37
|
+
required: true,
|
|
38
|
+
properties: {
|
|
39
|
+
createEventIfNotFound: {
|
|
40
|
+
label: 'Create If Not Found',
|
|
41
|
+
description: 'If needed, Segment can define new Custom Events and Pages in Optimizely. If you do not want Segment to create new events, select "Do not create".',
|
|
42
|
+
type: 'string',
|
|
43
|
+
required: true,
|
|
44
|
+
choices: [
|
|
45
|
+
{ label: 'Do not create', value: 'DO_NOT_CREATE' },
|
|
46
|
+
{ label: 'Create Custom Event', value: 'CREATE' }
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
shouldSnakeCaseEventKey: {
|
|
50
|
+
label: 'Should Snake Case Event Key',
|
|
51
|
+
description: 'If the event key should be converted to snake case before sending to Optimizely.',
|
|
52
|
+
type: 'boolean',
|
|
53
|
+
required: true
|
|
54
|
+
},
|
|
55
|
+
eventKey: {
|
|
56
|
+
label: 'Event Key',
|
|
57
|
+
description: 'Optimizely event or page key to record the event against.',
|
|
58
|
+
type: 'string',
|
|
59
|
+
required: false,
|
|
60
|
+
default: { '@path': '$.event' }
|
|
61
|
+
},
|
|
62
|
+
eventId: {
|
|
63
|
+
label: 'Event ID',
|
|
64
|
+
description: 'Optimizely event or page ID to record the event against. The ID can only be used when the event / page has already been created in Optimizely. Segment cannot create new events in Optimizely using the ID.',
|
|
65
|
+
type: 'string',
|
|
66
|
+
required: false
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
default: {
|
|
70
|
+
createEventIfNotFound: 'CREATE',
|
|
71
|
+
shouldSnakeCaseEventKey: false,
|
|
72
|
+
eventKey: {
|
|
73
|
+
'@if': {
|
|
74
|
+
exists: { '@path': '$.event' },
|
|
75
|
+
then: { '@path': '$.event' },
|
|
76
|
+
else: { '@path': '$.name' }
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
eventId: { '@path': '$.properties.event_id' }
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
pageUrl: {
|
|
83
|
+
label: 'Page URL',
|
|
84
|
+
description: 'The URL of the page where the event occurred. Used if Segment creates a Page in Optimizely.',
|
|
85
|
+
type: 'string',
|
|
86
|
+
required: false,
|
|
87
|
+
default: { '@path': '$.context.page.url' }
|
|
88
|
+
},
|
|
89
|
+
category: {
|
|
90
|
+
label: 'Event Category',
|
|
91
|
+
description: 'Event Category',
|
|
92
|
+
type: 'string',
|
|
93
|
+
required: true,
|
|
94
|
+
choices: [
|
|
95
|
+
{ label: 'add_to_cart', value: 'add_to_cart' },
|
|
96
|
+
{ label: 'save', value: 'save' },
|
|
97
|
+
{ label: 'search', value: 'search' },
|
|
98
|
+
{ label: 'share', value: 'share' },
|
|
99
|
+
{ label: 'purchase', value: 'purchase' },
|
|
100
|
+
{ label: 'convert', value: 'convert' },
|
|
101
|
+
{ label: 'sign_up', value: 'sign_up' },
|
|
102
|
+
{ label: 'subscribe', value: 'subscribe' },
|
|
103
|
+
{ label: 'other', value: 'other' }
|
|
104
|
+
],
|
|
105
|
+
default: 'other'
|
|
106
|
+
},
|
|
107
|
+
timestamp: {
|
|
108
|
+
label: 'Timestamp',
|
|
109
|
+
description: 'Timestampt for when the event took place',
|
|
110
|
+
type: 'datetime',
|
|
111
|
+
required: true,
|
|
112
|
+
default: { '@path': '$.timestamp' }
|
|
113
|
+
},
|
|
114
|
+
eventType: {
|
|
115
|
+
label: 'Event Type',
|
|
116
|
+
description: 'The type of Segment event',
|
|
117
|
+
type: 'string',
|
|
118
|
+
unsafe_hidden: true,
|
|
119
|
+
required: true,
|
|
120
|
+
default: { '@path': '$.type' }
|
|
121
|
+
},
|
|
122
|
+
tags: {
|
|
123
|
+
label: 'Tags',
|
|
124
|
+
description: 'Tags to send with the event',
|
|
125
|
+
type: 'object',
|
|
126
|
+
required: false,
|
|
127
|
+
additionalProperties: true,
|
|
128
|
+
defaultObjectUI: 'keyvalue'
|
|
129
|
+
},
|
|
130
|
+
properties: {
|
|
131
|
+
label: 'Properties',
|
|
132
|
+
description: 'Additional properties to send with the event. Properties must be defined in Optimizely before they can be sent.',
|
|
133
|
+
type: 'object',
|
|
134
|
+
required: false,
|
|
135
|
+
additionalProperties: true,
|
|
136
|
+
defaultObjectUI: 'keyvalue',
|
|
137
|
+
properties: {
|
|
138
|
+
revenue: {
|
|
139
|
+
label: 'Revenue',
|
|
140
|
+
description: 'The revenue amount associated with this event For example, to represent $23.42, this field would be set to 23.42.',
|
|
141
|
+
type: 'number',
|
|
142
|
+
required: false
|
|
143
|
+
},
|
|
144
|
+
value: {
|
|
145
|
+
label: 'Value',
|
|
146
|
+
description: 'A scalar value associated with an event. This should be some non-revenue number.',
|
|
147
|
+
type: 'number',
|
|
148
|
+
required: false
|
|
149
|
+
},
|
|
150
|
+
quantity: {
|
|
151
|
+
label: 'Quantity',
|
|
152
|
+
description: 'An aggregatable "count" associated with this event; for example, a number of video views or items in a shopping cart.',
|
|
153
|
+
type: 'integer',
|
|
154
|
+
required: false
|
|
155
|
+
},
|
|
156
|
+
currency: {
|
|
157
|
+
label: 'Currency',
|
|
158
|
+
description: 'Currency code for revenue. Defaults to USD.',
|
|
159
|
+
type: 'string',
|
|
160
|
+
required: false,
|
|
161
|
+
default: 'USD'
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
default: {
|
|
165
|
+
revenue: {
|
|
166
|
+
'@path': '$.properties.revenue'
|
|
167
|
+
},
|
|
168
|
+
value: {
|
|
169
|
+
'@path': '$.properties.value'
|
|
170
|
+
},
|
|
171
|
+
quantity: {
|
|
172
|
+
'@path': '$.properties.quantity'
|
|
173
|
+
},
|
|
174
|
+
currency: {
|
|
175
|
+
'@path': '$.properties.currency'
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
sessionId: {
|
|
180
|
+
label: 'Session ID',
|
|
181
|
+
description: 'A unique identifier that identifies the session context, if any, for these events. If omitted, the Optimizely backend will calculate session-based results by inferring sessions by opening a session when an event is first received from a given visitor_id, and closing the session after 30 minutes with no events received for that visitor, with a maximum session size of 24 hours.',
|
|
182
|
+
type: 'string',
|
|
183
|
+
required: false,
|
|
184
|
+
default: {
|
|
185
|
+
'@if': {
|
|
186
|
+
exists: { '@path': '$.integrations.actions-optimizely-web.session_id' },
|
|
187
|
+
then: { '@path': '$.integrations.actions-optimizely-web.session_id' },
|
|
188
|
+
else: { '@path': '$.properties.session_id' }
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface Payload {
|
|
2
|
+
uuid: string;
|
|
3
|
+
endUserId: string;
|
|
4
|
+
anonymizeIP: boolean;
|
|
5
|
+
eventMatching: {
|
|
6
|
+
createEventIfNotFound: string;
|
|
7
|
+
shouldSnakeCaseEventKey: boolean;
|
|
8
|
+
eventKey?: string;
|
|
9
|
+
eventId?: string;
|
|
10
|
+
};
|
|
11
|
+
pageUrl?: string;
|
|
12
|
+
category: string;
|
|
13
|
+
timestamp: string | number;
|
|
14
|
+
eventType: string;
|
|
15
|
+
tags?: {
|
|
16
|
+
[k: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
properties?: {
|
|
19
|
+
revenue?: number;
|
|
20
|
+
value?: number;
|
|
21
|
+
quantity?: number;
|
|
22
|
+
currency?: string;
|
|
23
|
+
[k: string]: unknown;
|
|
24
|
+
};
|
|
25
|
+
sessionId?: string;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/generated-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fields_1 = require("./fields");
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
const action = {
|
|
6
|
+
title: 'Track Event',
|
|
7
|
+
description: 'Send a Segment track or page event to Optimizely',
|
|
8
|
+
defaultSubscription: 'type = "track" or type = "page"',
|
|
9
|
+
fields: fields_1.fields,
|
|
10
|
+
perform: async (request, { payload, settings }) => {
|
|
11
|
+
return await utils_1.send(request, settings, payload);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.default = action;
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/index.ts"],"names":[],"mappings":";;AAGA,qCAAiC;AACjC,mCAA8B;AAE9B,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,kDAAkD;IAC/D,mBAAmB,EAAE,iCAAiC;IACtD,MAAM,EAAN,eAAM;IACN,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChD,OAAO,MAAM,YAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { TRACK, PAGE } from './constants';
|
|
2
|
+
export interface SendEventJSON {
|
|
3
|
+
account_id: string;
|
|
4
|
+
project_id?: number;
|
|
5
|
+
anonymize_ip: boolean;
|
|
6
|
+
client_name: 'Segment Optimizely Web Destination';
|
|
7
|
+
client_version: string;
|
|
8
|
+
enrich_decisions: true;
|
|
9
|
+
visitors: Array<Visitor>;
|
|
10
|
+
}
|
|
11
|
+
export interface Visitor {
|
|
12
|
+
visitor_id: string;
|
|
13
|
+
session_id?: string;
|
|
14
|
+
attributes: [];
|
|
15
|
+
snapshots: Array<Snapshot>;
|
|
16
|
+
}
|
|
17
|
+
export interface Snapshot {
|
|
18
|
+
decisions: [];
|
|
19
|
+
events: Array<Event>;
|
|
20
|
+
}
|
|
21
|
+
export interface Event {
|
|
22
|
+
entity_id: string;
|
|
23
|
+
key?: string;
|
|
24
|
+
timestamp: UnixTimestamp13;
|
|
25
|
+
uuid: string;
|
|
26
|
+
type: EventType;
|
|
27
|
+
revenue?: number;
|
|
28
|
+
value?: number;
|
|
29
|
+
tags: {
|
|
30
|
+
quantity?: number;
|
|
31
|
+
currency?: string;
|
|
32
|
+
$opt_event_properties?: {
|
|
33
|
+
[key: string]: string | number | boolean;
|
|
34
|
+
};
|
|
35
|
+
[key: string]: string | number | {
|
|
36
|
+
[key: string]: string | number | boolean;
|
|
37
|
+
} | undefined;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export declare type EventType = 'view_activated' | 'other';
|
|
41
|
+
export declare type UnixTimestamp13 = number & {
|
|
42
|
+
__type: 'UnixTimestamp13';
|
|
43
|
+
};
|
|
44
|
+
export interface EventItem {
|
|
45
|
+
id: number;
|
|
46
|
+
key: string;
|
|
47
|
+
name: string;
|
|
48
|
+
}
|
|
49
|
+
export interface CreateEventJSON {
|
|
50
|
+
category: string;
|
|
51
|
+
event_type: string;
|
|
52
|
+
key: string;
|
|
53
|
+
name?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface CreatePageJSON extends CreateEventJSON {
|
|
56
|
+
edit_url: string;
|
|
57
|
+
project_id: number;
|
|
58
|
+
}
|
|
59
|
+
export declare type Type = typeof TRACK | typeof PAGE;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Payload } from './generated-types';
|
|
2
|
+
import { Settings } from '../generated-types';
|
|
3
|
+
import { RequestClient } from '@segment/actions-core';
|
|
4
|
+
import { UnixTimestamp13, EventItem, Type } from './types';
|
|
5
|
+
import { OptimizelyWebClient } from './client';
|
|
6
|
+
export declare function send(request: RequestClient, settings: Settings, payload: Payload): Promise<import("@segment/actions-core").ModifiedResponse<unknown>>;
|
|
7
|
+
export declare function validate(payload: Payload): {
|
|
8
|
+
unixTimestamp13: UnixTimestamp13;
|
|
9
|
+
restProperties: {
|
|
10
|
+
[k: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
value: number | undefined;
|
|
13
|
+
revenue: number | undefined;
|
|
14
|
+
quantity: number | undefined;
|
|
15
|
+
currency: string | undefined;
|
|
16
|
+
tags: {
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
} | undefined;
|
|
19
|
+
};
|
|
20
|
+
export declare function areAllPropertiesPrimitive(obj: Record<string, unknown> | undefined, typesToCheck?: Array<'string' | 'boolean' | 'number'>): boolean;
|
|
21
|
+
export declare function getEventid(client: OptimizelyWebClient, payload: Payload): Promise<string>;
|
|
22
|
+
export declare function cleanKey(eventType: Type, shouldSnakeCaseEventKey: boolean, key?: string): string | undefined;
|
|
23
|
+
export declare function getEventFromCache(key: string): EventItem | undefined;
|
|
24
|
+
export declare function getEventsFromCache(): EventItem[];
|
|
25
|
+
export declare function ensureEventSchema(client: OptimizelyWebClient, key: string, name: string, category: string, type: Type, pageUrl?: string): Promise<EventItem>;
|
|
@@ -0,0 +1,156 @@
|
|
|
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
|
+
exports.ensureEventSchema = exports.getEventsFromCache = exports.getEventFromCache = exports.cleanKey = exports.getEventid = exports.areAllPropertiesPrimitive = exports.validate = exports.send = void 0;
|
|
7
|
+
const actions_core_1 = require("@segment/actions-core");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const client_1 = require("./client");
|
|
10
|
+
const snakeCase_1 = __importDefault(require("lodash/snakeCase"));
|
|
11
|
+
async function send(request, settings, payload) {
|
|
12
|
+
const { unixTimestamp13, restProperties, value, revenue, quantity, currency, tags } = validate(payload);
|
|
13
|
+
const { endUserId, sessionId: session_id, uuid, eventMatching: { eventId, eventKey, shouldSnakeCaseEventKey }, eventType } = payload;
|
|
14
|
+
const client = new client_1.OptimizelyWebClient(request, settings);
|
|
15
|
+
const entity_id = eventId ?? (await getEventid(client, payload));
|
|
16
|
+
const body = {
|
|
17
|
+
account_id: settings.optimizelyAccountId,
|
|
18
|
+
project_id: settings.projectID,
|
|
19
|
+
anonymize_ip: payload.anonymizeIP,
|
|
20
|
+
client_name: 'Segment Optimizely Web Destination',
|
|
21
|
+
client_version: '1.0.0',
|
|
22
|
+
enrich_decisions: true,
|
|
23
|
+
visitors: [
|
|
24
|
+
{
|
|
25
|
+
visitor_id: endUserId,
|
|
26
|
+
session_id,
|
|
27
|
+
attributes: [],
|
|
28
|
+
snapshots: [
|
|
29
|
+
{
|
|
30
|
+
decisions: [],
|
|
31
|
+
events: [
|
|
32
|
+
{
|
|
33
|
+
entity_id,
|
|
34
|
+
key: cleanKey(eventType, shouldSnakeCaseEventKey, eventKey),
|
|
35
|
+
timestamp: unixTimestamp13,
|
|
36
|
+
uuid,
|
|
37
|
+
type: eventType === constants_1.PAGE ? 'view_activated' : 'other',
|
|
38
|
+
revenue: revenue ? revenue * 100 : undefined,
|
|
39
|
+
value,
|
|
40
|
+
tags: {
|
|
41
|
+
quantity,
|
|
42
|
+
currency,
|
|
43
|
+
$opt_event_properties: restProperties,
|
|
44
|
+
...tags
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
return await client.sendEvent(body);
|
|
54
|
+
}
|
|
55
|
+
exports.send = send;
|
|
56
|
+
function validate(payload) {
|
|
57
|
+
const { eventMatching: { eventKey, eventId }, eventType, tags, timestamp, properties: { value, revenue, quantity, currency, ...restProperties } = {} } = payload;
|
|
58
|
+
if (!eventKey && !eventId) {
|
|
59
|
+
throw new actions_core_1.PayloadValidationError('One of "Event Key" or "Event Id" is required');
|
|
60
|
+
}
|
|
61
|
+
if (!constants_1.SUPPORTED_TYPES.includes(eventType)) {
|
|
62
|
+
throw new actions_core_1.PayloadValidationError(`Event type ${eventType} is not supported. Supported types are ${constants_1.SUPPORTED_TYPES.join(', ')}`);
|
|
63
|
+
}
|
|
64
|
+
const unixTimestamp13 = new Date(timestamp).getTime();
|
|
65
|
+
if (unixTimestamp13.toString().length !== 13) {
|
|
66
|
+
throw new actions_core_1.PayloadValidationError('Unable to convert timestamp into 13 digit Unix timestamp');
|
|
67
|
+
}
|
|
68
|
+
if (!areAllPropertiesPrimitive(restProperties, ['string', 'number', 'boolean'])) {
|
|
69
|
+
throw new actions_core_1.PayloadValidationError('Event properties must be of type string, number or boolean');
|
|
70
|
+
}
|
|
71
|
+
if (!areAllPropertiesPrimitive(tags, ['string', 'number'])) {
|
|
72
|
+
throw new actions_core_1.PayloadValidationError('Tags must be of type string or number');
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
unixTimestamp13,
|
|
76
|
+
restProperties,
|
|
77
|
+
value,
|
|
78
|
+
revenue,
|
|
79
|
+
quantity,
|
|
80
|
+
currency,
|
|
81
|
+
tags
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
exports.validate = validate;
|
|
85
|
+
function areAllPropertiesPrimitive(obj, typesToCheck = ['string', 'boolean', 'number']) {
|
|
86
|
+
if (obj === undefined || Object.keys(obj).length === 0) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return Object.values(obj).every((value) => {
|
|
90
|
+
const type = typeof value;
|
|
91
|
+
return typesToCheck.includes(type);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.areAllPropertiesPrimitive = areAllPropertiesPrimitive;
|
|
95
|
+
async function getEventid(client, payload) {
|
|
96
|
+
const { category, eventMatching: { createEventIfNotFound, eventKey, shouldSnakeCaseEventKey }, eventType, pageUrl } = payload;
|
|
97
|
+
if (!eventKey) {
|
|
98
|
+
throw new actions_core_1.PayloadValidationError('Event key is required to get the event id');
|
|
99
|
+
}
|
|
100
|
+
const key = cleanKey(eventType, shouldSnakeCaseEventKey, eventKey);
|
|
101
|
+
const name = eventKey;
|
|
102
|
+
let event = getEventFromCache(key);
|
|
103
|
+
if (event === undefined) {
|
|
104
|
+
if (createEventIfNotFound === 'CREATE') {
|
|
105
|
+
event = await ensureEventSchema(client, key, name, category, eventType, pageUrl);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
throw new actions_core_1.PayloadValidationError(`Event with key = ${key} not found in Optimizely. "Create If Not Found" field set to "Do not create" which prevents Segment from creating the event.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (!event) {
|
|
112
|
+
throw new actions_core_1.PayloadValidationError(`Error attempting to find event with key = ${key} in Optimizely`);
|
|
113
|
+
}
|
|
114
|
+
return event.id.toString();
|
|
115
|
+
}
|
|
116
|
+
exports.getEventid = getEventid;
|
|
117
|
+
function cleanKey(eventType, shouldSnakeCaseEventKey, key) {
|
|
118
|
+
if (!key) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
const maybeSnakeKey = shouldSnakeCaseEventKey ? snakeCase_1.default(key) : key;
|
|
122
|
+
return eventType === constants_1.PAGE ? maybeSnakeKey.replace(/[^a-zA-Z0-9_]/g, '_') : maybeSnakeKey;
|
|
123
|
+
}
|
|
124
|
+
exports.cleanKey = cleanKey;
|
|
125
|
+
function getEventFromCache(key) {
|
|
126
|
+
return getEventsFromCache().find((event) => {
|
|
127
|
+
return event.key === key;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
exports.getEventFromCache = getEventFromCache;
|
|
131
|
+
function getEventsFromCache() {
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
exports.getEventsFromCache = getEventsFromCache;
|
|
135
|
+
async function ensureEventSchema(client, key, name, category, type, pageUrl) {
|
|
136
|
+
let event = await (async () => {
|
|
137
|
+
const response = await client.getCustomEvents(type);
|
|
138
|
+
const eventItems = await response.json();
|
|
139
|
+
return eventItems.find((event) => {
|
|
140
|
+
return event.key === key;
|
|
141
|
+
});
|
|
142
|
+
})();
|
|
143
|
+
if (event === undefined) {
|
|
144
|
+
event = await (async () => {
|
|
145
|
+
const response = await client.createCustomEvent(key, name, category, type, pageUrl);
|
|
146
|
+
const event = await response.json();
|
|
147
|
+
return event;
|
|
148
|
+
})();
|
|
149
|
+
}
|
|
150
|
+
if (!event) {
|
|
151
|
+
throw new actions_core_1.IntegrationError(`Unable to create event with key ${key} in Optimizely`, 'EVENT_CREATION_ERROR', 400);
|
|
152
|
+
}
|
|
153
|
+
return event;
|
|
154
|
+
}
|
|
155
|
+
exports.ensureEventSchema = ensureEventSchema;
|
|
156
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/destinations/optimizely-web/trackEvent/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -142,6 +142,14 @@ exports.commonFields = {
|
|
|
142
142
|
disabledInputMethods: ['variable', 'function', 'enrichment'],
|
|
143
143
|
default: 'audience_action'
|
|
144
144
|
},
|
|
145
|
+
batch_size_column_name: {
|
|
146
|
+
label: 'Batch Size Column Name',
|
|
147
|
+
description: 'Specify the column name to store the batch size when the event is sent to S3. Leave blank if no column is required',
|
|
148
|
+
type: 'string',
|
|
149
|
+
required: false,
|
|
150
|
+
disabledInputMethods: ['variable', 'function', 'enrichment'],
|
|
151
|
+
default: 'batch_size'
|
|
152
|
+
},
|
|
145
153
|
traits_or_props: {
|
|
146
154
|
label: 'Traits or Props - Hidden Field',
|
|
147
155
|
description: 'Field used to retrieve Audience value',
|
|
@@ -174,7 +182,7 @@ exports.commonFields = {
|
|
|
174
182
|
},
|
|
175
183
|
batch_size: {
|
|
176
184
|
label: 'Batch Size',
|
|
177
|
-
description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower. Max batch size is
|
|
185
|
+
description: 'Maximum number of events to include in each batch. Actual batch sizes may be lower. Max batch size is 10000.',
|
|
178
186
|
type: 'number',
|
|
179
187
|
required: false,
|
|
180
188
|
default: 5000
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/destinations/s3/fields.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/destinations/s3/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,6 @@ import { Settings } from './generated-types';
|
|
|
3
3
|
import { RawMapping, ColumnHeader } from './types';
|
|
4
4
|
export declare function send(payloads: Payload[], settings: Settings, rawMapping: RawMapping): Promise<void>;
|
|
5
5
|
export declare function clean(delimiter: string, str?: string): string;
|
|
6
|
-
export declare function generateFile(payloads: Payload[], headers: ColumnHeader[], delimiter: string, actionColName?: string): string;
|
|
6
|
+
export declare function generateFile(payloads: Payload[], headers: ColumnHeader[], delimiter: string, actionColName?: string, batchColName?: string): string;
|
|
7
7
|
export declare function encodeString(str: string): string;
|
|
8
8
|
export declare function getAudienceAction(payload: Payload): boolean | undefined;
|
|
@@ -7,8 +7,10 @@ async function send(payloads, settings, rawMapping) {
|
|
|
7
7
|
const batchSize = payloads[0] && typeof payloads[0].batch_size === 'number' ? payloads[0].batch_size : 0;
|
|
8
8
|
const delimiter = payloads[0]?.delimiter;
|
|
9
9
|
const actionColName = payloads[0]?.audience_action_column_name;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const batchColName = payloads[0]?.batch_size_column_name;
|
|
11
|
+
const maxBatchSize = 10000;
|
|
12
|
+
if (batchSize > maxBatchSize) {
|
|
13
|
+
throw new actions_core_1.IntegrationError(`Batch size cannot exceed ${maxBatchSize}`, 'Invalid Payload', 400);
|
|
12
14
|
}
|
|
13
15
|
const headers = Object.entries(rawMapping.columns)
|
|
14
16
|
.filter(([_, value]) => value !== '')
|
|
@@ -18,7 +20,10 @@ async function send(payloads, settings, rawMapping) {
|
|
|
18
20
|
if (actionColName) {
|
|
19
21
|
headers.push({ cleanName: clean(delimiter, actionColName), originalName: actionColName });
|
|
20
22
|
}
|
|
21
|
-
|
|
23
|
+
if (batchColName) {
|
|
24
|
+
headers.push({ cleanName: clean(delimiter, batchColName), originalName: batchColName });
|
|
25
|
+
}
|
|
26
|
+
const fileContent = generateFile(payloads, headers, delimiter, actionColName, batchColName);
|
|
22
27
|
const s3Client = new client_1.Client(settings.s3_aws_region, settings.iam_role_arn, settings.iam_external_id);
|
|
23
28
|
await s3Client.uploadS3(settings, fileContent, payloads[0]?.filename_prefix ?? '', payloads[0]?.s3_aws_folder_name ?? '', payloads[0]?.file_extension);
|
|
24
29
|
}
|
|
@@ -37,9 +42,9 @@ function processField(row, value) {
|
|
|
37
42
|
? String(JSON.stringify(value))
|
|
38
43
|
: String(value)));
|
|
39
44
|
}
|
|
40
|
-
function generateFile(payloads, headers, delimiter, actionColName) {
|
|
45
|
+
function generateFile(payloads, headers, delimiter, actionColName, batchColName) {
|
|
41
46
|
const rows = [];
|
|
42
|
-
rows.push(`${headers.map(header => header.cleanName).join(delimiter === 'tab' ? '\t' : delimiter)}\n`);
|
|
47
|
+
rows.push(`${headers.map((header) => header.cleanName).join(delimiter === 'tab' ? '\t' : delimiter)}\n`);
|
|
43
48
|
payloads.forEach((payload, index) => {
|
|
44
49
|
const isLastRow = index === payloads.length - 1;
|
|
45
50
|
const row = [];
|
|
@@ -47,6 +52,9 @@ function generateFile(payloads, headers, delimiter, actionColName) {
|
|
|
47
52
|
if (header.originalName === actionColName) {
|
|
48
53
|
processField(row, getAudienceAction(payload));
|
|
49
54
|
}
|
|
55
|
+
else if (header.originalName === batchColName) {
|
|
56
|
+
processField(row, payloads.length);
|
|
57
|
+
}
|
|
50
58
|
else {
|
|
51
59
|
processField(row, payload.columns[header.originalName]);
|
|
52
60
|
}
|