@walkeros/web-destination-linkedin 3.4.2 → 4.0.0-next-1777463920154

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # LinkedIn Web Destination for walkerOS
2
2
 
3
3
  Forward walkerOS events as LinkedIn Insight Tag conversions
4
- (`window.lintrk('track', ...)`) — opt-in, per-event, with value + currency +
4
+ (`window.lintrk('track', ...)`) - opt-in, per-event, with value + currency +
5
5
  deduplication support.
6
6
 
7
7
  ## Source Code
@@ -18,22 +18,22 @@ deduplication support.
18
18
 
19
19
  ## Features
20
20
 
21
- - **Opt-in conversion forwarding** — only events with
21
+ - **Opt-in conversion forwarding** - only events with
22
22
  `mapping.settings.conversion` fire a `lintrk('track')` call. Unmapped events
23
23
  are silently ignored (Campaign Manager requires pre-registered conversion
24
24
  rules).
25
- - **Automatic page view + retargeting** — the Insight Tag script fires its own
25
+ - **Automatic page view + retargeting** - the Insight Tag script fires its own
26
26
  page view on load for audience building. The destination does not suppress or
27
27
  duplicate it.
28
- - **Conversion value + currency** — `data.total`-style mappings with a currency
28
+ - **Conversion value + currency** - `data.total`-style mappings with a currency
29
29
  fallback via `{ key, value }` syntax (defaults to `"EUR"`).
30
- - **Deduplication ready** — maps the walkerOS event `id` to LinkedIn's
30
+ - **Deduplication ready** - maps the walkerOS event `id` to LinkedIn's
31
31
  `event_id`, ready for cross-channel deduplication with a future server
32
32
  (Conversions API) destination.
33
- - **Consent-gated** — LinkedIn requires `marketing` consent. The collector's
33
+ - **Consent-gated** - LinkedIn requires `marketing` consent. The collector's
34
34
  `config.consent` gate blocks events until granted; deferred script injection
35
35
  is supported via `loadScript: true`.
36
- - **Script-tag loader** — no npm SDK dependency. The destination injects
36
+ - **Script-tag loader** - no npm SDK dependency. The destination injects
37
37
  `https://snap.licdn.com/li.lms-analytics/insight.min.js` at runtime (opt-in
38
38
  via `loadScript: true`), or you can embed the Insight Tag snippet in your HTML
39
39
  and leave `loadScript: false`.
@@ -86,7 +86,7 @@ npm install @walkeros/web-destination-linkedin
86
86
  | Key | Type | Required | Notes |
87
87
  | --------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
88
88
  | `apiKey` | `string` | yes | LinkedIn Partner ID (numeric string, e.g. `"123456"`). Find it in Campaign Manager → Insight Tag → Manage Insight Tag. |
89
- | `include` | `string[]` | no | Event sections made available for mapping resolution. Present for consistency with other destinations — `lintrk()` only accepts four fixed fields, so included data is not automatically sent. |
89
+ | `include` | `string[]` | no | Event sections made available for mapping resolution. Present for consistency with other destinations - `lintrk()` only accepts four fixed fields, so included data is not automatically sent. |
90
90
 
91
91
  ### Mapping (per-event)
92
92
 
@@ -108,7 +108,7 @@ npm install @walkeros/web-destination-linkedin
108
108
  LinkedIn is an **opt-in conversion platform**. Every tracked event must
109
109
  reference a pre-created Conversion Rule in Campaign Manager via its numeric
110
110
  `conversion_id`. Events without an explicit `mapping.settings.conversion` are
111
- silently ignored — they produce zero `lintrk` calls.
111
+ silently ignored - they produce zero `lintrk` calls.
112
112
 
113
113
  This is the opposite of analytics destinations (Amplitude, Clarity, PostHog)
114
114
  which forward every event by default.
@@ -137,13 +137,13 @@ which forward every event by default.
137
137
  Resolves to:
138
138
  `lintrk('track', { conversion_id: 67890, conversion_value: 555, currency: 'EUR', event_id: '<walker-event-id>' })`.
139
139
 
140
- ### Skipping a fully configured rule
140
+ ### Suppressing a fully configured rule
141
141
 
142
142
  ```json
143
143
  "mapping": {
144
144
  "form": {
145
145
  "submit": {
146
- "skip": true,
146
+ "silent": true,
147
147
  "settings": {
148
148
  "conversion": { "map": { "id": { "value": 12345 } } }
149
149
  }
@@ -152,8 +152,8 @@ Resolves to:
152
152
  }
153
153
  ```
154
154
 
155
- `mapping.skip: true` suppresses the call while keeping the rule on disk for
156
- quick reactivation. Alternatively, simply omit `settings.conversion` —
155
+ `mapping.silent: true` suppresses the call while keeping the rule on disk for
156
+ quick reactivation. Alternatively, simply omit `settings.conversion` -
157
157
  LinkedIn's opt-in model makes that equivalent.
158
158
 
159
159
  ## Consent
@@ -168,7 +168,7 @@ consent (not analytics):
168
168
  ```
169
169
 
170
170
  walkerOS's collector blocks all events to this destination until `marketing` is
171
- granted. When consent is later revoked, walkerOS stops sending events — the
171
+ granted. When consent is later revoked, walkerOS stops sending events - the
172
172
  LinkedIn Insight Tag itself has no `opt_out()` API, so the tag remains loaded
173
173
  but receives no further calls.
174
174
 
@@ -181,7 +181,7 @@ when an `on('consent')` event grants marketing.
181
181
 
182
182
  ## No identity tracking
183
183
 
184
- LinkedIn identity on the web is cookie-based — the Insight Tag manages its own
184
+ LinkedIn identity on the web is cookie-based - the Insight Tag manages its own
185
185
  first-party cookies and matches visitors against LinkedIn member profiles
186
186
  server-side. There is no `lintrk('identify', ...)` API. The destination does
187
187
  **not** forward user IDs, emails, phone numbers, or the `li_fat_id` click ID.
package/dist/dev.d.mts CHANGED
@@ -120,7 +120,7 @@ declare namespace env {
120
120
  * Examples may optionally override destination-level settings for a test.
121
121
  * The test runner reads `settings` from the example and merges it into the
122
122
  * base destination settings (on top of the fixed `apiKey`). Rarely needed
123
- * for LinkedIn — conversion config lives on the rule, not destination-level.
123
+ * for LinkedIn - conversion config lives on the rule, not destination-level.
124
124
  */
125
125
  type LinkedInStepExample = Flow.StepExample & {
126
126
  settings?: Partial<Settings>;
@@ -130,12 +130,12 @@ type LinkedInStepExample = Flow.StepExample & {
130
130
  *
131
131
  * LinkedIn's core behavioral difference from analytics destinations: events
132
132
  * without `mapping.settings.conversion` produce ZERO lintrk() calls. The
133
- * destination is opt-in — each conversion must reference a pre-created
133
+ * destination is opt-in - each conversion must reference a pre-created
134
134
  * Conversion Rule from Campaign Manager.
135
135
  */
136
136
  declare const unmappedEventIgnored: LinkedInStepExample;
137
137
  /**
138
- * Simplest possible conversion — just a `conversion_id` from Campaign Manager.
138
+ * Simplest possible conversion - just a `conversion_id` from Campaign Manager.
139
139
  *
140
140
  * Form submission → LinkedIn Lead conversion. The mapping resolves `id` as a
141
141
  * literal value (no walker event field needed). The destination translates
@@ -143,18 +143,18 @@ declare const unmappedEventIgnored: LinkedInStepExample;
143
143
  */
144
144
  declare const simpleConversionId: LinkedInStepExample;
145
145
  /**
146
- * Full e-commerce conversion — every supported lintrk field populated.
146
+ * Full e-commerce conversion - every supported lintrk field populated.
147
147
  *
148
148
  * mapping config uses short walkerOS keys (`id`, `value`, `currency`, `eventId`);
149
149
  * the destination translates them to the vendor parameter names
150
150
  * (`conversion_id`, `conversion_value`, `currency`, `event_id`).
151
151
  *
152
- * Currency uses the walkerOS fallback syntax: `{ key, value }` — pull from
152
+ * Currency uses the walkerOS fallback syntax: `{ key, value }` - pull from
153
153
  * `data.currency` first, fall back to `"EUR"` if absent. The default
154
154
  * `order complete` fixture from `getEvent` already sets `data.currency: "EUR"`,
155
155
  * so the resolved value is "EUR" here.
156
156
  *
157
- * `eventId` maps from the walkerOS event.id — stable per event, unique, and
157
+ * `eventId` maps from the walkerOS event.id - stable per event, unique, and
158
158
  * ready for deduplication with a future server (Conversions API) destination.
159
159
  */
160
160
  declare const orderCompleteFullConversion: LinkedInStepExample;
@@ -162,7 +162,7 @@ declare const orderCompleteFullConversion: LinkedInStepExample;
162
162
  * Page view as an explicit conversion.
163
163
  *
164
164
  * LinkedIn's Insight Tag automatically fires a page view on load for
165
- * retargeting / audience building — that call is NOT something the
165
+ * retargeting / audience building - that call is NOT something the
166
166
  * destination controls. This example tests the OTHER case: mapping a
167
167
  * specific walkerOS `page view` event to a Campaign Manager KEY_PAGE_VIEW
168
168
  * conversion rule, which fires an EXPLICIT lintrk('track') call in addition
@@ -170,23 +170,23 @@ declare const orderCompleteFullConversion: LinkedInStepExample;
170
170
  */
171
171
  declare const pageViewConversion: LinkedInStepExample;
172
172
  /**
173
- * Middle-funnel LEAD conversion — demo request without monetary value.
173
+ * Middle-funnel LEAD conversion - demo request without monetary value.
174
174
  *
175
175
  * LinkedIn's conversion types include LEAD, CONTACT, SIGN_UP, etc. The
176
176
  * destination is agnostic to the type (set in Campaign Manager, not at call
177
- * time) — all we forward is the conversion_id. This fixture exercises the
177
+ * time) - all we forward is the conversion_id. This fixture exercises the
178
178
  * "id + eventId only" shape.
179
179
  */
180
180
  declare const demoRequestLead: LinkedInStepExample;
181
181
  /**
182
- * rule.skip — fully-configured conversion rule temporarily disabled.
182
+ * rule.silent - fully-configured conversion rule temporarily disabled.
183
183
  *
184
- * The rule has a valid `conversion.map` but `skip: true` tells the destination
184
+ * The rule has a valid `conversion.map` but `silent: true` tells the destination
185
185
  * to produce zero calls. This is distinct from the opt-in default (no
186
- * `conversion` at all): skip explicitly keeps the rule on disk for quick
186
+ * `conversion` at all): silent explicitly keeps the rule on disk for quick
187
187
  * reactivation without deleting it.
188
188
  */
189
- declare const conversionSkipped: LinkedInStepExample;
189
+ declare const conversionSilenced: LinkedInStepExample;
190
190
  /**
191
191
  * Falsy `id` → entire lintrk call is skipped.
192
192
  *
@@ -194,21 +194,21 @@ declare const conversionSkipped: LinkedInStepExample;
194
194
  * NOT call lintrk at all. This protects against misconfigured mappings
195
195
  * (e.g. pulling id from a non-existent field).
196
196
  *
197
- * Here we map `id` from `data.nonexistentField` — it resolves to undefined,
197
+ * Here we map `id` from `data.nonexistentField` - it resolves to undefined,
198
198
  * so zero calls are produced.
199
199
  */
200
200
  declare const missingConversionIdIgnored: LinkedInStepExample;
201
201
  /**
202
- * Partial conversion — value missing → omitted from the lintrk call.
202
+ * Partial conversion - value missing → omitted from the lintrk call.
203
203
  *
204
204
  * The rule asks for `value: 'data.missingTotal'` (undefined), `currency`
205
205
  * (undefined), and `eventId: 'id'` (present). Only `conversion_id` and
206
- * `event_id` appear in the final call — no `conversion_value`, no `currency`.
206
+ * `event_id` appear in the final call - no `conversion_value`, no `currency`.
207
207
  */
208
208
  declare const partialFieldsOmitted: LinkedInStepExample;
209
209
 
210
210
  type step_LinkedInStepExample = LinkedInStepExample;
211
- declare const step_conversionSkipped: typeof conversionSkipped;
211
+ declare const step_conversionSilenced: typeof conversionSilenced;
212
212
  declare const step_demoRequestLead: typeof demoRequestLead;
213
213
  declare const step_missingConversionIdIgnored: typeof missingConversionIdIgnored;
214
214
  declare const step_orderCompleteFullConversion: typeof orderCompleteFullConversion;
@@ -217,7 +217,7 @@ declare const step_partialFieldsOmitted: typeof partialFieldsOmitted;
217
217
  declare const step_simpleConversionId: typeof simpleConversionId;
218
218
  declare const step_unmappedEventIgnored: typeof unmappedEventIgnored;
219
219
  declare namespace step {
220
- export { type step_LinkedInStepExample as LinkedInStepExample, step_conversionSkipped as conversionSkipped, step_demoRequestLead as demoRequestLead, step_missingConversionIdIgnored as missingConversionIdIgnored, step_orderCompleteFullConversion as orderCompleteFullConversion, step_pageViewConversion as pageViewConversion, step_partialFieldsOmitted as partialFieldsOmitted, step_simpleConversionId as simpleConversionId, step_unmappedEventIgnored as unmappedEventIgnored };
220
+ export { type step_LinkedInStepExample as LinkedInStepExample, step_conversionSilenced as conversionSilenced, step_demoRequestLead as demoRequestLead, step_missingConversionIdIgnored as missingConversionIdIgnored, step_orderCompleteFullConversion as orderCompleteFullConversion, step_pageViewConversion as pageViewConversion, step_partialFieldsOmitted as partialFieldsOmitted, step_simpleConversionId as simpleConversionId, step_unmappedEventIgnored as unmappedEventIgnored };
221
221
  }
222
222
 
223
223
  declare const index_env: typeof env;
package/dist/dev.d.ts CHANGED
@@ -120,7 +120,7 @@ declare namespace env {
120
120
  * Examples may optionally override destination-level settings for a test.
121
121
  * The test runner reads `settings` from the example and merges it into the
122
122
  * base destination settings (on top of the fixed `apiKey`). Rarely needed
123
- * for LinkedIn — conversion config lives on the rule, not destination-level.
123
+ * for LinkedIn - conversion config lives on the rule, not destination-level.
124
124
  */
125
125
  type LinkedInStepExample = Flow.StepExample & {
126
126
  settings?: Partial<Settings>;
@@ -130,12 +130,12 @@ type LinkedInStepExample = Flow.StepExample & {
130
130
  *
131
131
  * LinkedIn's core behavioral difference from analytics destinations: events
132
132
  * without `mapping.settings.conversion` produce ZERO lintrk() calls. The
133
- * destination is opt-in — each conversion must reference a pre-created
133
+ * destination is opt-in - each conversion must reference a pre-created
134
134
  * Conversion Rule from Campaign Manager.
135
135
  */
136
136
  declare const unmappedEventIgnored: LinkedInStepExample;
137
137
  /**
138
- * Simplest possible conversion — just a `conversion_id` from Campaign Manager.
138
+ * Simplest possible conversion - just a `conversion_id` from Campaign Manager.
139
139
  *
140
140
  * Form submission → LinkedIn Lead conversion. The mapping resolves `id` as a
141
141
  * literal value (no walker event field needed). The destination translates
@@ -143,18 +143,18 @@ declare const unmappedEventIgnored: LinkedInStepExample;
143
143
  */
144
144
  declare const simpleConversionId: LinkedInStepExample;
145
145
  /**
146
- * Full e-commerce conversion — every supported lintrk field populated.
146
+ * Full e-commerce conversion - every supported lintrk field populated.
147
147
  *
148
148
  * mapping config uses short walkerOS keys (`id`, `value`, `currency`, `eventId`);
149
149
  * the destination translates them to the vendor parameter names
150
150
  * (`conversion_id`, `conversion_value`, `currency`, `event_id`).
151
151
  *
152
- * Currency uses the walkerOS fallback syntax: `{ key, value }` — pull from
152
+ * Currency uses the walkerOS fallback syntax: `{ key, value }` - pull from
153
153
  * `data.currency` first, fall back to `"EUR"` if absent. The default
154
154
  * `order complete` fixture from `getEvent` already sets `data.currency: "EUR"`,
155
155
  * so the resolved value is "EUR" here.
156
156
  *
157
- * `eventId` maps from the walkerOS event.id — stable per event, unique, and
157
+ * `eventId` maps from the walkerOS event.id - stable per event, unique, and
158
158
  * ready for deduplication with a future server (Conversions API) destination.
159
159
  */
160
160
  declare const orderCompleteFullConversion: LinkedInStepExample;
@@ -162,7 +162,7 @@ declare const orderCompleteFullConversion: LinkedInStepExample;
162
162
  * Page view as an explicit conversion.
163
163
  *
164
164
  * LinkedIn's Insight Tag automatically fires a page view on load for
165
- * retargeting / audience building — that call is NOT something the
165
+ * retargeting / audience building - that call is NOT something the
166
166
  * destination controls. This example tests the OTHER case: mapping a
167
167
  * specific walkerOS `page view` event to a Campaign Manager KEY_PAGE_VIEW
168
168
  * conversion rule, which fires an EXPLICIT lintrk('track') call in addition
@@ -170,23 +170,23 @@ declare const orderCompleteFullConversion: LinkedInStepExample;
170
170
  */
171
171
  declare const pageViewConversion: LinkedInStepExample;
172
172
  /**
173
- * Middle-funnel LEAD conversion — demo request without monetary value.
173
+ * Middle-funnel LEAD conversion - demo request without monetary value.
174
174
  *
175
175
  * LinkedIn's conversion types include LEAD, CONTACT, SIGN_UP, etc. The
176
176
  * destination is agnostic to the type (set in Campaign Manager, not at call
177
- * time) — all we forward is the conversion_id. This fixture exercises the
177
+ * time) - all we forward is the conversion_id. This fixture exercises the
178
178
  * "id + eventId only" shape.
179
179
  */
180
180
  declare const demoRequestLead: LinkedInStepExample;
181
181
  /**
182
- * rule.skip — fully-configured conversion rule temporarily disabled.
182
+ * rule.silent - fully-configured conversion rule temporarily disabled.
183
183
  *
184
- * The rule has a valid `conversion.map` but `skip: true` tells the destination
184
+ * The rule has a valid `conversion.map` but `silent: true` tells the destination
185
185
  * to produce zero calls. This is distinct from the opt-in default (no
186
- * `conversion` at all): skip explicitly keeps the rule on disk for quick
186
+ * `conversion` at all): silent explicitly keeps the rule on disk for quick
187
187
  * reactivation without deleting it.
188
188
  */
189
- declare const conversionSkipped: LinkedInStepExample;
189
+ declare const conversionSilenced: LinkedInStepExample;
190
190
  /**
191
191
  * Falsy `id` → entire lintrk call is skipped.
192
192
  *
@@ -194,21 +194,21 @@ declare const conversionSkipped: LinkedInStepExample;
194
194
  * NOT call lintrk at all. This protects against misconfigured mappings
195
195
  * (e.g. pulling id from a non-existent field).
196
196
  *
197
- * Here we map `id` from `data.nonexistentField` — it resolves to undefined,
197
+ * Here we map `id` from `data.nonexistentField` - it resolves to undefined,
198
198
  * so zero calls are produced.
199
199
  */
200
200
  declare const missingConversionIdIgnored: LinkedInStepExample;
201
201
  /**
202
- * Partial conversion — value missing → omitted from the lintrk call.
202
+ * Partial conversion - value missing → omitted from the lintrk call.
203
203
  *
204
204
  * The rule asks for `value: 'data.missingTotal'` (undefined), `currency`
205
205
  * (undefined), and `eventId: 'id'` (present). Only `conversion_id` and
206
- * `event_id` appear in the final call — no `conversion_value`, no `currency`.
206
+ * `event_id` appear in the final call - no `conversion_value`, no `currency`.
207
207
  */
208
208
  declare const partialFieldsOmitted: LinkedInStepExample;
209
209
 
210
210
  type step_LinkedInStepExample = LinkedInStepExample;
211
- declare const step_conversionSkipped: typeof conversionSkipped;
211
+ declare const step_conversionSilenced: typeof conversionSilenced;
212
212
  declare const step_demoRequestLead: typeof demoRequestLead;
213
213
  declare const step_missingConversionIdIgnored: typeof missingConversionIdIgnored;
214
214
  declare const step_orderCompleteFullConversion: typeof orderCompleteFullConversion;
@@ -217,7 +217,7 @@ declare const step_partialFieldsOmitted: typeof partialFieldsOmitted;
217
217
  declare const step_simpleConversionId: typeof simpleConversionId;
218
218
  declare const step_unmappedEventIgnored: typeof unmappedEventIgnored;
219
219
  declare namespace step {
220
- export { type step_LinkedInStepExample as LinkedInStepExample, step_conversionSkipped as conversionSkipped, step_demoRequestLead as demoRequestLead, step_missingConversionIdIgnored as missingConversionIdIgnored, step_orderCompleteFullConversion as orderCompleteFullConversion, step_pageViewConversion as pageViewConversion, step_partialFieldsOmitted as partialFieldsOmitted, step_simpleConversionId as simpleConversionId, step_unmappedEventIgnored as unmappedEventIgnored };
220
+ export { type step_LinkedInStepExample as LinkedInStepExample, step_conversionSilenced as conversionSilenced, step_demoRequestLead as demoRequestLead, step_missingConversionIdIgnored as missingConversionIdIgnored, step_orderCompleteFullConversion as orderCompleteFullConversion, step_pageViewConversion as pageViewConversion, step_partialFieldsOmitted as partialFieldsOmitted, step_simpleConversionId as simpleConversionId, step_unmappedEventIgnored as unmappedEventIgnored };
221
221
  }
222
222
 
223
223
  declare const index_env: typeof env;