@walkeros/server-destination-linkedin 3.3.0-next-1776098542393

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.
@@ -0,0 +1,456 @@
1
+ {
2
+ "$meta": {
3
+ "package": "@walkeros/server-destination-linkedin",
4
+ "version": "3.2.0",
5
+ "type": "destination",
6
+ "platform": [
7
+ "server"
8
+ ],
9
+ "docs": "https://www.walkeros.io/docs/destinations/server/linkedin-capi",
10
+ "source": "https://github.com/elbwalker/walkerOS/tree/main/packages/server/destinations/linkedin/src"
11
+ },
12
+ "schemas": {
13
+ "mapping": {
14
+ "$schema": "http://json-schema.org/draft-07/schema#",
15
+ "type": "object",
16
+ "properties": {
17
+ "conversion": {
18
+ "type": "object",
19
+ "properties": {
20
+ "ruleId": {
21
+ "type": "string",
22
+ "description": "Override conversion rule ID for this event"
23
+ },
24
+ "value": {
25
+ "anyOf": [
26
+ {
27
+ "type": "string"
28
+ },
29
+ {
30
+ "type": "number"
31
+ }
32
+ ],
33
+ "description": "Conversion monetary value"
34
+ },
35
+ "currency": {
36
+ "type": "string",
37
+ "description": "ISO 4217 currency code (like USD, EUR)"
38
+ }
39
+ },
40
+ "additionalProperties": false,
41
+ "description": "Per-event conversion override with ruleId, value, and currency"
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ },
46
+ "settings": {
47
+ "$schema": "http://json-schema.org/draft-07/schema#",
48
+ "type": "object",
49
+ "properties": {
50
+ "accessToken": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "description": "LinkedIn OAuth 2.0 Bearer token for Conversions API authentication (like AQX...)"
54
+ },
55
+ "conversionRuleId": {
56
+ "type": "string",
57
+ "pattern": "^[0-9]+$",
58
+ "description": "Default LinkedIn conversion rule ID from Campaign Manager (like 12345678)"
59
+ },
60
+ "apiVersion": {
61
+ "type": "string",
62
+ "pattern": "^\\d{6}$",
63
+ "description": "Linkedin-Version header value in YYYYMM format (like 202604)"
64
+ },
65
+ "doNotHash": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "string"
69
+ },
70
+ "description": "Array of user data fields that should not be hashed (like ['email'])"
71
+ },
72
+ "url": {
73
+ "type": "string",
74
+ "format": "uri",
75
+ "description": "Custom URL for LinkedIn Conversions API endpoint (like https://api.linkedin.com/rest/)"
76
+ },
77
+ "user_data": {
78
+ "type": "object",
79
+ "propertyNames": {
80
+ "type": "string"
81
+ },
82
+ "additionalProperties": {
83
+ "type": "string"
84
+ },
85
+ "description": "Mapping configuration for user data fields (like { email: 'user.email', li_fat_id: 'context.li_fat_id' })"
86
+ }
87
+ },
88
+ "required": [
89
+ "accessToken",
90
+ "conversionRuleId"
91
+ ],
92
+ "additionalProperties": false
93
+ }
94
+ },
95
+ "examples": {
96
+ "env": {
97
+ "push": {
98
+ "sendServer": {
99
+ "$code": "async function(e,r,a){return{ok:!0,data:{}}}"
100
+ }
101
+ },
102
+ "simulation": [
103
+ "sendServer"
104
+ ]
105
+ },
106
+ "step": {
107
+ "lead": {
108
+ "in": {
109
+ "name": "form submit",
110
+ "data": {
111
+ "string": "foo",
112
+ "number": 1,
113
+ "boolean": true,
114
+ "array": [
115
+ 0,
116
+ "text",
117
+ false
118
+ ]
119
+ },
120
+ "context": {
121
+ "dev": [
122
+ "test",
123
+ 1
124
+ ]
125
+ },
126
+ "globals": {
127
+ "lang": "elb"
128
+ },
129
+ "custom": {
130
+ "completely": "random"
131
+ },
132
+ "user": {
133
+ "email": "user@example.com"
134
+ },
135
+ "nested": [
136
+ {
137
+ "entity": "child",
138
+ "data": {
139
+ "is": "subordinated"
140
+ },
141
+ "nested": [],
142
+ "context": {
143
+ "element": [
144
+ "child",
145
+ 0
146
+ ]
147
+ }
148
+ }
149
+ ],
150
+ "consent": {
151
+ "functional": true
152
+ },
153
+ "id": "1700000901000-gr0up-1",
154
+ "trigger": "test",
155
+ "entity": "form",
156
+ "action": "submit",
157
+ "timestamp": 1700000901000,
158
+ "timing": 3.14,
159
+ "group": "gr0up",
160
+ "count": 1,
161
+ "version": {
162
+ "source": "3.2.0",
163
+ "tagging": 1
164
+ },
165
+ "source": {
166
+ "type": "server",
167
+ "id": "https://example.com",
168
+ "previous_id": ""
169
+ }
170
+ },
171
+ "out": {
172
+ "elements": [
173
+ {
174
+ "conversion": "urn:lla:llaPartnerConversion:12345678",
175
+ "conversionHappenedAt": 1700000901000,
176
+ "user": {
177
+ "userIds": [
178
+ {
179
+ "idType": "SHA256_EMAIL",
180
+ "idValue": "b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
181
+ }
182
+ ]
183
+ },
184
+ "eventId": "1700000901000-gr0up-1"
185
+ }
186
+ ]
187
+ }
188
+ },
189
+ "purchase": {
190
+ "in": {
191
+ "name": "order complete",
192
+ "data": {
193
+ "total": 249.99,
194
+ "currency": "EUR"
195
+ },
196
+ "context": {
197
+ "shopping": [
198
+ "complete",
199
+ 0
200
+ ]
201
+ },
202
+ "globals": {
203
+ "pagegroup": "shop"
204
+ },
205
+ "custom": {
206
+ "completely": "random"
207
+ },
208
+ "user": {
209
+ "email": "jane@example.com"
210
+ },
211
+ "nested": [
212
+ {
213
+ "entity": "product",
214
+ "data": {
215
+ "id": "ers",
216
+ "name": "Everyday Ruck Snack",
217
+ "color": "black",
218
+ "size": "l",
219
+ "price": 420
220
+ },
221
+ "context": {
222
+ "shopping": [
223
+ "complete",
224
+ 0
225
+ ]
226
+ },
227
+ "nested": []
228
+ },
229
+ {
230
+ "entity": "product",
231
+ "data": {
232
+ "id": "cc",
233
+ "name": "Cool Cap",
234
+ "size": "one size",
235
+ "price": 42
236
+ },
237
+ "context": {
238
+ "shopping": [
239
+ "complete",
240
+ 0
241
+ ]
242
+ },
243
+ "nested": []
244
+ },
245
+ {
246
+ "entity": "gift",
247
+ "data": {
248
+ "name": "Surprise"
249
+ },
250
+ "context": {
251
+ "shopping": [
252
+ "complete",
253
+ 0
254
+ ]
255
+ },
256
+ "nested": []
257
+ }
258
+ ],
259
+ "consent": {
260
+ "functional": true
261
+ },
262
+ "id": "1700000900000-gr0up-1",
263
+ "trigger": "load",
264
+ "entity": "order",
265
+ "action": "complete",
266
+ "timestamp": 1700000900000,
267
+ "timing": 3.14,
268
+ "group": "gr0up",
269
+ "count": 1,
270
+ "version": {
271
+ "source": "3.2.0",
272
+ "tagging": 1
273
+ },
274
+ "source": {
275
+ "type": "server",
276
+ "id": "https://shop.example.com",
277
+ "previous_id": ""
278
+ }
279
+ },
280
+ "mapping": {
281
+ "settings": {
282
+ "conversion": {
283
+ "map": {
284
+ "value": "data.total",
285
+ "currency": {
286
+ "key": "data.currency",
287
+ "value": "EUR"
288
+ }
289
+ }
290
+ }
291
+ }
292
+ },
293
+ "out": {
294
+ "elements": [
295
+ {
296
+ "conversion": "urn:lla:llaPartnerConversion:12345678",
297
+ "conversionHappenedAt": 1700000900000,
298
+ "conversionValue": {
299
+ "currencyCode": "EUR",
300
+ "amount": "249.99"
301
+ },
302
+ "user": {
303
+ "userIds": [
304
+ {
305
+ "idType": "SHA256_EMAIL",
306
+ "idValue": "8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"
307
+ }
308
+ ]
309
+ },
310
+ "eventId": "1700000900000-gr0up-1"
311
+ }
312
+ ]
313
+ }
314
+ },
315
+ "purchaseWithLiFatId": {
316
+ "in": {
317
+ "name": "order complete",
318
+ "data": {
319
+ "total": 89.99,
320
+ "currency": "USD"
321
+ },
322
+ "context": {
323
+ "li_fat_id": [
324
+ "abc123-fat-id",
325
+ 0
326
+ ]
327
+ },
328
+ "globals": {
329
+ "pagegroup": "shop"
330
+ },
331
+ "custom": {
332
+ "completely": "random"
333
+ },
334
+ "user": {
335
+ "email": "buyer@co.com"
336
+ },
337
+ "nested": [
338
+ {
339
+ "entity": "product",
340
+ "data": {
341
+ "id": "ers",
342
+ "name": "Everyday Ruck Snack",
343
+ "color": "black",
344
+ "size": "l",
345
+ "price": 420
346
+ },
347
+ "context": {
348
+ "shopping": [
349
+ "complete",
350
+ 0
351
+ ]
352
+ },
353
+ "nested": []
354
+ },
355
+ {
356
+ "entity": "product",
357
+ "data": {
358
+ "id": "cc",
359
+ "name": "Cool Cap",
360
+ "size": "one size",
361
+ "price": 42
362
+ },
363
+ "context": {
364
+ "shopping": [
365
+ "complete",
366
+ 0
367
+ ]
368
+ },
369
+ "nested": []
370
+ },
371
+ {
372
+ "entity": "gift",
373
+ "data": {
374
+ "name": "Surprise"
375
+ },
376
+ "context": {
377
+ "shopping": [
378
+ "complete",
379
+ 0
380
+ ]
381
+ },
382
+ "nested": []
383
+ }
384
+ ],
385
+ "consent": {
386
+ "functional": true
387
+ },
388
+ "id": "1700000902000-gr0up-1",
389
+ "trigger": "load",
390
+ "entity": "order",
391
+ "action": "complete",
392
+ "timestamp": 1700000902000,
393
+ "timing": 3.14,
394
+ "group": "gr0up",
395
+ "count": 1,
396
+ "version": {
397
+ "source": "3.2.0",
398
+ "tagging": 1
399
+ },
400
+ "source": {
401
+ "type": "server",
402
+ "id": "https://shop.example.com",
403
+ "previous_id": ""
404
+ }
405
+ },
406
+ "mapping": {
407
+ "settings": {
408
+ "conversion": {
409
+ "map": {
410
+ "value": "data.total",
411
+ "currency": {
412
+ "key": "data.currency",
413
+ "value": "USD"
414
+ }
415
+ }
416
+ }
417
+ },
418
+ "data": {
419
+ "map": {
420
+ "user_data": {
421
+ "map": {
422
+ "li_fat_id": "context.li_fat_id"
423
+ }
424
+ }
425
+ }
426
+ }
427
+ },
428
+ "out": {
429
+ "elements": [
430
+ {
431
+ "conversion": "urn:lla:llaPartnerConversion:12345678",
432
+ "conversionHappenedAt": 1700000902000,
433
+ "conversionValue": {
434
+ "currencyCode": "USD",
435
+ "amount": "89.99"
436
+ },
437
+ "user": {
438
+ "userIds": [
439
+ {
440
+ "idType": "SHA256_EMAIL",
441
+ "idValue": "484c39bfb51212665d9673805c112b5ba04cbf0460b6d3f00bcdc18b92afed66"
442
+ },
443
+ {
444
+ "idType": "LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID",
445
+ "idValue": "abc123-fat-id"
446
+ }
447
+ ]
448
+ },
449
+ "eventId": "1700000902000-gr0up-1"
450
+ }
451
+ ]
452
+ }
453
+ }
454
+ }
455
+ }
456
+ }
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@walkeros/server-destination-linkedin",
3
+ "description": "LinkedIn Conversions API server destination for walkerOS",
4
+ "version": "3.3.0-next-1776098542393",
5
+ "license": "MIT",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.mjs",
10
+ "require": "./dist/index.js"
11
+ },
12
+ "./dev": {
13
+ "types": "./dist/dev.d.ts",
14
+ "import": "./dist/dev.mjs",
15
+ "require": "./dist/dev.js"
16
+ },
17
+ "./walkerOS.json": "./dist/walkerOS.json",
18
+ "./examples": {
19
+ "types": "./dist/examples/index.d.ts",
20
+ "import": "./dist/examples/index.mjs",
21
+ "require": "./dist/examples/index.js"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist/**"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsup --silent",
29
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
30
+ "dev": "jest --watchAll --colors",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "eslint \"**/*.ts*\"",
33
+ "test": "jest",
34
+ "update": "npx npm-check-updates -u && npm update"
35
+ },
36
+ "dependencies": {
37
+ "@walkeros/core": "3.3.0-next-1776098542393",
38
+ "@walkeros/server-core": "3.3.0-next-1776098542393"
39
+ },
40
+ "devDependencies": {
41
+ "@walkeros/collector": "3.3.0-next-1776098542393"
42
+ },
43
+ "repository": {
44
+ "url": "git+https://github.com/elbwalker/walkerOS.git",
45
+ "directory": "packages/server/destinations/linkedin"
46
+ },
47
+ "author": "elbwalker <hello@elbwalker.com>",
48
+ "homepage": "https://github.com/elbwalker/walkerOS#readme",
49
+ "bugs": {
50
+ "url": "https://github.com/elbwalker/walkerOS/issues"
51
+ },
52
+ "walkerOS": {
53
+ "type": "destination",
54
+ "platform": [
55
+ "server"
56
+ ],
57
+ "docs": "https://www.walkeros.io/docs/destinations/server/linkedin-capi"
58
+ },
59
+ "keywords": [
60
+ "walkerOS",
61
+ "walkerOS-destination",
62
+ "destination",
63
+ "server",
64
+ "linkedin",
65
+ "conversions-api",
66
+ "analytics"
67
+ ],
68
+ "funding": [
69
+ {
70
+ "type": "GitHub Sponsors",
71
+ "url": "https://github.com/sponsors/elbwalker"
72
+ }
73
+ ]
74
+ }