@walkeros/cli 4.7.2-next-1791147139360 → 4.7.2
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/CHANGELOG.md +24 -6
- package/dist/cli.js +1457 -1374
- package/dist/examples/flow-complete.json +52 -37
- package/dist/examples/flow-complete.md +19 -8
- package/dist/examples/index.d.ts +27 -8
- package/dist/examples/index.js +73 -47
- package/dist/examples/index.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.js +22 -7
- package/dist/index.js.map +1 -1
- package/examples/flow-complete.json +52 -37
- package/examples/flow-complete.md +19 -8
- package/package.json +29 -29
|
@@ -241,25 +241,25 @@
|
|
|
241
241
|
"bundle": {
|
|
242
242
|
"packages": {
|
|
243
243
|
"@walkeros/collector": {
|
|
244
|
-
"version": "4.7.2
|
|
244
|
+
"version": "4.7.2"
|
|
245
245
|
},
|
|
246
246
|
"@walkeros/web-source-cmp-usercentrics": {
|
|
247
|
-
"version": "4.7.2
|
|
247
|
+
"version": "4.7.2"
|
|
248
248
|
},
|
|
249
249
|
"@walkeros/web-source-session": {
|
|
250
|
-
"version": "4.7.2
|
|
250
|
+
"version": "4.7.2"
|
|
251
251
|
},
|
|
252
252
|
"@walkeros/web-source-datalayer": {
|
|
253
|
-
"version": "4.7.2
|
|
253
|
+
"version": "4.7.2"
|
|
254
254
|
},
|
|
255
255
|
"@walkeros/web-source-browser": {
|
|
256
|
-
"version": "4.7.2
|
|
256
|
+
"version": "4.7.2"
|
|
257
257
|
},
|
|
258
258
|
"@walkeros/web-destination-gtag": {
|
|
259
|
-
"version": "4.7.2
|
|
259
|
+
"version": "4.7.2"
|
|
260
260
|
},
|
|
261
261
|
"@walkeros/web-destination-api": {
|
|
262
|
-
"version": "4.7.2
|
|
262
|
+
"version": "4.7.2"
|
|
263
263
|
}
|
|
264
264
|
},
|
|
265
265
|
"env": {
|
|
@@ -277,7 +277,17 @@
|
|
|
277
277
|
"custom": {
|
|
278
278
|
"environment": "$env.ENVIRONMENT"
|
|
279
279
|
},
|
|
280
|
-
"next":
|
|
280
|
+
"next": [
|
|
281
|
+
{
|
|
282
|
+
"match": {
|
|
283
|
+
"key": "event.user.optout",
|
|
284
|
+
"operator": "eq",
|
|
285
|
+
"value": "true"
|
|
286
|
+
},
|
|
287
|
+
"stop": true
|
|
288
|
+
},
|
|
289
|
+
"pageGroup"
|
|
290
|
+
]
|
|
281
291
|
},
|
|
282
292
|
"sources": {
|
|
283
293
|
"usercentrics": {
|
|
@@ -991,9 +1001,6 @@
|
|
|
991
1001
|
]
|
|
992
1002
|
}
|
|
993
1003
|
}
|
|
994
|
-
},
|
|
995
|
-
"consent": {
|
|
996
|
-
"functional": true
|
|
997
1004
|
}
|
|
998
1005
|
}
|
|
999
1006
|
}
|
|
@@ -1041,9 +1048,6 @@
|
|
|
1041
1048
|
]
|
|
1042
1049
|
}
|
|
1043
1050
|
}
|
|
1044
|
-
},
|
|
1045
|
-
"consent": {
|
|
1046
|
-
"functional": true
|
|
1047
1051
|
}
|
|
1048
1052
|
},
|
|
1049
1053
|
"in": {
|
|
@@ -1181,9 +1185,6 @@
|
|
|
1181
1185
|
]
|
|
1182
1186
|
}
|
|
1183
1187
|
}
|
|
1184
|
-
},
|
|
1185
|
-
"consent": {
|
|
1186
|
-
"functional": true
|
|
1187
1188
|
}
|
|
1188
1189
|
},
|
|
1189
1190
|
"in": {
|
|
@@ -1764,40 +1765,40 @@
|
|
|
1764
1765
|
"bundle": {
|
|
1765
1766
|
"packages": {
|
|
1766
1767
|
"@walkeros/collector": {
|
|
1767
|
-
"version": "4.7.2
|
|
1768
|
+
"version": "4.7.2"
|
|
1768
1769
|
},
|
|
1769
1770
|
"@walkeros/server-source-express": {
|
|
1770
|
-
"version": "4.7.2
|
|
1771
|
+
"version": "4.7.2"
|
|
1771
1772
|
},
|
|
1772
1773
|
"@walkeros/transformer-ga4": {
|
|
1773
|
-
"version": "4.7.2
|
|
1774
|
+
"version": "4.7.2"
|
|
1774
1775
|
},
|
|
1775
1776
|
"@walkeros/transformer-validate": {
|
|
1776
|
-
"version": "4.7.2
|
|
1777
|
+
"version": "4.7.2"
|
|
1777
1778
|
},
|
|
1778
1779
|
"@walkeros/server-transformer-bot": {
|
|
1779
|
-
"version": "4.7.2
|
|
1780
|
+
"version": "4.7.2"
|
|
1780
1781
|
},
|
|
1781
1782
|
"@walkeros/server-transformer-fingerprint": {
|
|
1782
|
-
"version": "4.7.2
|
|
1783
|
+
"version": "4.7.2"
|
|
1783
1784
|
},
|
|
1784
1785
|
"@walkeros/server-transformer-file": {
|
|
1785
|
-
"version": "4.7.2
|
|
1786
|
+
"version": "4.7.2"
|
|
1786
1787
|
},
|
|
1787
1788
|
"@walkeros/server-store-fs": {
|
|
1788
|
-
"version": "4.7.2
|
|
1789
|
+
"version": "4.7.2"
|
|
1789
1790
|
},
|
|
1790
1791
|
"@walkeros/server-destination-gcp": {
|
|
1791
|
-
"version": "4.7.2
|
|
1792
|
+
"version": "4.7.2"
|
|
1792
1793
|
},
|
|
1793
1794
|
"@walkeros/server-destination-meta": {
|
|
1794
|
-
"version": "4.7.2
|
|
1795
|
+
"version": "4.7.2"
|
|
1795
1796
|
},
|
|
1796
1797
|
"@walkeros/server-destination-piwikpro": {
|
|
1797
|
-
"version": "4.7.2
|
|
1798
|
+
"version": "4.7.2"
|
|
1798
1799
|
},
|
|
1799
1800
|
"@walkeros/server-destination-datamanager": {
|
|
1800
|
-
"version": "4.7.2
|
|
1801
|
+
"version": "4.7.2"
|
|
1801
1802
|
}
|
|
1802
1803
|
}
|
|
1803
1804
|
}
|
|
@@ -1932,7 +1933,17 @@
|
|
|
1932
1933
|
}
|
|
1933
1934
|
]
|
|
1934
1935
|
},
|
|
1935
|
-
"next":
|
|
1936
|
+
"next": [
|
|
1937
|
+
{
|
|
1938
|
+
"match": {
|
|
1939
|
+
"key": "event.user.optout",
|
|
1940
|
+
"operator": "eq",
|
|
1941
|
+
"value": "true"
|
|
1942
|
+
},
|
|
1943
|
+
"stop": true
|
|
1944
|
+
},
|
|
1945
|
+
"dedup"
|
|
1946
|
+
],
|
|
1936
1947
|
"examples": {
|
|
1937
1948
|
"postCollect": {
|
|
1938
1949
|
"title": "Event from the web flow",
|
|
@@ -4499,7 +4510,10 @@
|
|
|
4499
4510
|
"event.user.device",
|
|
4500
4511
|
"event.user.session",
|
|
4501
4512
|
"event.user.hash"
|
|
4502
|
-
]
|
|
4513
|
+
],
|
|
4514
|
+
"customDimensions": {
|
|
4515
|
+
"1": "user.segment"
|
|
4516
|
+
}
|
|
4503
4517
|
},
|
|
4504
4518
|
"mapping": {
|
|
4505
4519
|
"page": {
|
|
@@ -4594,7 +4608,7 @@
|
|
|
4594
4608
|
"examples": {
|
|
4595
4609
|
"orderWithGoal": {
|
|
4596
4610
|
"title": "Order with goal",
|
|
4597
|
-
"description": "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash.",
|
|
4611
|
+
"description": "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash, and both hits carry the customer segment as custom dimension 1.",
|
|
4598
4612
|
"public": true,
|
|
4599
4613
|
"mapping": {
|
|
4600
4614
|
"name": "ecommerceOrder",
|
|
@@ -4658,7 +4672,8 @@
|
|
|
4658
4672
|
"hash": "5f1c0a9e7d3b2c41",
|
|
4659
4673
|
"botScore": 0,
|
|
4660
4674
|
"botCategory": "human",
|
|
4661
|
-
"ltv": 420
|
|
4675
|
+
"ltv": 420,
|
|
4676
|
+
"segment": "loyal"
|
|
4662
4677
|
},
|
|
4663
4678
|
"source": {
|
|
4664
4679
|
"type": "express",
|
|
@@ -4691,7 +4706,7 @@
|
|
|
4691
4706
|
[
|
|
4692
4707
|
"sendServer",
|
|
4693
4708
|
"https://example.piwik.pro/ppms.php",
|
|
4694
|
-
"{\"requests\":[\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\",\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\"]}",
|
|
4709
|
+
"{\"requests\":[\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\",\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\"]}",
|
|
4695
4710
|
{
|
|
4696
4711
|
"timeout": 5000
|
|
4697
4712
|
}
|
|
@@ -4858,13 +4873,13 @@
|
|
|
4858
4873
|
"bundle": {
|
|
4859
4874
|
"packages": {
|
|
4860
4875
|
"@walkeros/collector": {
|
|
4861
|
-
"version": "4.7.2
|
|
4876
|
+
"version": "4.7.2"
|
|
4862
4877
|
},
|
|
4863
4878
|
"@walkeros/server-source-gcp": {
|
|
4864
|
-
"version": "4.7.2
|
|
4879
|
+
"version": "4.7.2"
|
|
4865
4880
|
},
|
|
4866
4881
|
"@walkeros/server-destination-gcp": {
|
|
4867
|
-
"version": "4.7.2
|
|
4882
|
+
"version": "4.7.2"
|
|
4868
4883
|
}
|
|
4869
4884
|
}
|
|
4870
4885
|
}
|
|
@@ -36,12 +36,12 @@ export GCP_SA="$(node -e "const { generateKeyPairSync } = require('crypto'); con
|
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
38
|
web usercentrics, session, dataLayer, browser
|
|
39
|
-
-> collector.next: pageGroup
|
|
39
|
+
-> collector.next: opt-out stop, pageGroup
|
|
40
40
|
-> ga4 (to Google, main property) gtm (dataLayer) collect (to server)
|
|
41
41
|
|
|
42
42
|
server express /collect /g/collect /walker.js
|
|
43
43
|
before: one [ G-SUBSITE hit -> ga4Decode -> ga4Consent | *.js -> file (stop) | other /g/collect (stop) ]
|
|
44
|
-
next: dedup
|
|
44
|
+
next: opt-out stop, dedup
|
|
45
45
|
-> collector.next: fingerprint, bot, not impression -> enrich [ loadUser, sessionSave, sessionLoad, validate ]
|
|
46
46
|
-> pubsub (every event, email pseudonymized)
|
|
47
47
|
-> meta, piwikpro, datamanager (each behind eventFilter)
|
|
@@ -365,10 +365,10 @@ walkeros push packages/cli/examples/flow-complete.json -f web -e '{"name":"order
|
|
|
365
365
|
refused pings stay functional false and fail the contract.
|
|
366
366
|
- `destination-consent` at `/flows/server/destinations/meta/config/consent`:
|
|
367
367
|
Destination consent: Meta only gets events with marketing consent.
|
|
368
|
-
- `
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
368
|
+
- `user-optout` at `/flows/server/sources/express/next/0`: An opted-out user
|
|
369
|
+
(user.optout true) is stopped first: on the server before dedup, so no dedup
|
|
370
|
+
entry, hash or delivery; on the web first in collector.next, so the browser
|
|
371
|
+
sends nothing.
|
|
372
372
|
- `value-consent` at
|
|
373
373
|
`/flows/web/destinations/collect/config/policy/user.email/consent`: Field
|
|
374
374
|
consent: the email is only kept with marketing consent.
|
|
@@ -397,6 +397,12 @@ walkeros push packages/cli/examples/flow-complete.json -f web -e '{"name":"order
|
|
|
397
397
|
- **Consent keys:** there are no collector consent defaults, only granted keys
|
|
398
398
|
travel. `consent.functional` is set only by Usercentrics with `explicitOnly`,
|
|
399
399
|
so its presence means the user decided.
|
|
400
|
+
- **Opt-out beats consent:** the site sets the flag before the first event. With
|
|
401
|
+
`elbLayer.push(['walker user', { optout: true }])` before walker.js loads, the
|
|
402
|
+
browser sends nothing. `data-elbuser="optout:true"` holds back the page view
|
|
403
|
+
and every later event, but events queued in `elbLayer` before walker.js loads
|
|
404
|
+
are still sent. An opted-out event that reaches the server from another client
|
|
405
|
+
stops before dedup.
|
|
400
406
|
- **Meta hashes `user_data` itself:** `em` is the raw email; the Meta package
|
|
401
407
|
normalizes and hashes it before sending, the flow never builds a hash for
|
|
402
408
|
Meta.
|
|
@@ -514,7 +520,8 @@ runneros start dist/server.mjs -p 8080 --env-file .env
|
|
|
514
520
|
per destination (London prompt 3).
|
|
515
521
|
- **Features:**
|
|
516
522
|
- `web-collector-next` at `/flows/web/collector/next`: On the web
|
|
517
|
-
collector.next runs the inline pageGroup
|
|
523
|
+
collector.next stops an opted-out user first, then runs the inline pageGroup
|
|
524
|
+
step once per event.
|
|
518
525
|
- `ga4-other-dropped` at `/flows/server/sources/express/before/one/2`: GA4
|
|
519
526
|
hits for any other property stop at the route instead of reaching the
|
|
520
527
|
collector undecoded.
|
|
@@ -533,7 +540,7 @@ runneros start dist/server.mjs -p 8080 --env-file .env
|
|
|
533
540
|
- `op-suffix` at `/flows/server/sources/express/before/one/1/match/operator`:
|
|
534
541
|
suffix matches the end of a value: script requests end in .js.
|
|
535
542
|
- `source-next` at `/flows/server/sources/express/next`: source.next names the
|
|
536
|
-
|
|
543
|
+
hops after the source: the opt-out stop, then dedup.
|
|
537
544
|
- `collector-next` at `/flows/server/collector/next`: collector.next runs once
|
|
538
545
|
per event before the fan-out: fingerprint and bot for all, enrich for all
|
|
539
546
|
but impressions.
|
|
@@ -713,6 +720,10 @@ walkeros push packages/cli/examples/flow-complete.json -f server -e '{"name":"pa
|
|
|
713
720
|
mapping picks fields from the stored row and merges them into the target.
|
|
714
721
|
- `load-user` at `/flows/server/transformers/loadUser`: loadUser puts the
|
|
715
722
|
customer lifetime value and segment on logged-in events.
|
|
723
|
+
- `piwik-segment` at
|
|
724
|
+
`/flows/server/destinations/piwikpro/config/settings/customDimensions`:
|
|
725
|
+
Piwik PRO gets the loaded segment as custom dimension 1; the path is
|
|
726
|
+
relative to the event, so user.segment.
|
|
716
727
|
- `store-fs` at `/flows/server/stores/assets`: An fs store serves files from a
|
|
717
728
|
folder.
|
|
718
729
|
- `store-file` at `/flows/server/stores/assets/config/file`: file: true
|
package/dist/examples/index.d.ts
CHANGED
|
@@ -753,13 +753,16 @@ declare const teaching: {
|
|
|
753
753
|
note: string;
|
|
754
754
|
docs: never[];
|
|
755
755
|
};
|
|
756
|
-
'
|
|
756
|
+
'user-optout': {
|
|
757
757
|
pointer: string;
|
|
758
758
|
chapter: "consent-privacy";
|
|
759
|
-
level: "
|
|
760
|
-
useCases: "consent"[];
|
|
759
|
+
level: "beginner";
|
|
760
|
+
useCases: ("consent" | "privacy-analytics")[];
|
|
761
761
|
note: string;
|
|
762
|
-
docs:
|
|
762
|
+
docs: {
|
|
763
|
+
page: string;
|
|
764
|
+
anchor: string;
|
|
765
|
+
}[];
|
|
763
766
|
};
|
|
764
767
|
'value-consent': {
|
|
765
768
|
pointer: string;
|
|
@@ -1638,6 +1641,18 @@ declare const teaching: {
|
|
|
1638
1641
|
name: string;
|
|
1639
1642
|
};
|
|
1640
1643
|
};
|
|
1644
|
+
'piwik-segment': {
|
|
1645
|
+
pointer: string;
|
|
1646
|
+
chapter: "state-stores";
|
|
1647
|
+
level: "intermediate";
|
|
1648
|
+
useCases: "privacy-analytics"[];
|
|
1649
|
+
note: string;
|
|
1650
|
+
docs: never[];
|
|
1651
|
+
example: {
|
|
1652
|
+
step: string;
|
|
1653
|
+
name: string;
|
|
1654
|
+
};
|
|
1655
|
+
};
|
|
1641
1656
|
'store-fs': {
|
|
1642
1657
|
pointer: string;
|
|
1643
1658
|
chapter: "state-stores";
|
|
@@ -2204,7 +2219,9 @@ declare const flowCompleteCoverage: {
|
|
|
2204
2219
|
mappingRule: {
|
|
2205
2220
|
batch: "rule-batch";
|
|
2206
2221
|
condition: "rule-condition";
|
|
2207
|
-
consent:
|
|
2222
|
+
consent: {
|
|
2223
|
+
excluded: string;
|
|
2224
|
+
};
|
|
2208
2225
|
settings: "rule-settings";
|
|
2209
2226
|
data: "rule-data";
|
|
2210
2227
|
include: {
|
|
@@ -2284,7 +2301,7 @@ declare const flowCompleteCoverage: {
|
|
|
2284
2301
|
excluded: string;
|
|
2285
2302
|
};
|
|
2286
2303
|
sequence: "route-sequence";
|
|
2287
|
-
id: "
|
|
2304
|
+
id: "destination-before";
|
|
2288
2305
|
};
|
|
2289
2306
|
combinator: {
|
|
2290
2307
|
and: "match-and";
|
|
@@ -2577,7 +2594,9 @@ declare const flowCompleteManifest: {
|
|
|
2577
2594
|
mappingRule: {
|
|
2578
2595
|
batch: "rule-batch";
|
|
2579
2596
|
condition: "rule-condition";
|
|
2580
|
-
consent:
|
|
2597
|
+
consent: {
|
|
2598
|
+
excluded: string;
|
|
2599
|
+
};
|
|
2581
2600
|
settings: "rule-settings";
|
|
2582
2601
|
data: "rule-data";
|
|
2583
2602
|
include: {
|
|
@@ -2657,7 +2676,7 @@ declare const flowCompleteManifest: {
|
|
|
2657
2676
|
excluded: string;
|
|
2658
2677
|
};
|
|
2659
2678
|
sequence: "route-sequence";
|
|
2660
|
-
id: "
|
|
2679
|
+
id: "destination-before";
|
|
2661
2680
|
};
|
|
2662
2681
|
combinator: {
|
|
2663
2682
|
and: "match-and";
|
package/dist/examples/index.js
CHANGED
|
@@ -264,25 +264,25 @@ var flow_complete_default = {
|
|
|
264
264
|
bundle: {
|
|
265
265
|
packages: {
|
|
266
266
|
"@walkeros/collector": {
|
|
267
|
-
version: "4.7.2
|
|
267
|
+
version: "4.7.2"
|
|
268
268
|
},
|
|
269
269
|
"@walkeros/web-source-cmp-usercentrics": {
|
|
270
|
-
version: "4.7.2
|
|
270
|
+
version: "4.7.2"
|
|
271
271
|
},
|
|
272
272
|
"@walkeros/web-source-session": {
|
|
273
|
-
version: "4.7.2
|
|
273
|
+
version: "4.7.2"
|
|
274
274
|
},
|
|
275
275
|
"@walkeros/web-source-datalayer": {
|
|
276
|
-
version: "4.7.2
|
|
276
|
+
version: "4.7.2"
|
|
277
277
|
},
|
|
278
278
|
"@walkeros/web-source-browser": {
|
|
279
|
-
version: "4.7.2
|
|
279
|
+
version: "4.7.2"
|
|
280
280
|
},
|
|
281
281
|
"@walkeros/web-destination-gtag": {
|
|
282
|
-
version: "4.7.2
|
|
282
|
+
version: "4.7.2"
|
|
283
283
|
},
|
|
284
284
|
"@walkeros/web-destination-api": {
|
|
285
|
-
version: "4.7.2
|
|
285
|
+
version: "4.7.2"
|
|
286
286
|
}
|
|
287
287
|
},
|
|
288
288
|
env: {
|
|
@@ -300,7 +300,17 @@ var flow_complete_default = {
|
|
|
300
300
|
custom: {
|
|
301
301
|
environment: "$env.ENVIRONMENT"
|
|
302
302
|
},
|
|
303
|
-
next:
|
|
303
|
+
next: [
|
|
304
|
+
{
|
|
305
|
+
match: {
|
|
306
|
+
key: "event.user.optout",
|
|
307
|
+
operator: "eq",
|
|
308
|
+
value: "true"
|
|
309
|
+
},
|
|
310
|
+
stop: true
|
|
311
|
+
},
|
|
312
|
+
"pageGroup"
|
|
313
|
+
]
|
|
304
314
|
},
|
|
305
315
|
sources: {
|
|
306
316
|
usercentrics: {
|
|
@@ -1014,9 +1024,6 @@ var flow_complete_default = {
|
|
|
1014
1024
|
]
|
|
1015
1025
|
}
|
|
1016
1026
|
}
|
|
1017
|
-
},
|
|
1018
|
-
consent: {
|
|
1019
|
-
functional: true
|
|
1020
1027
|
}
|
|
1021
1028
|
}
|
|
1022
1029
|
}
|
|
@@ -1064,9 +1071,6 @@ var flow_complete_default = {
|
|
|
1064
1071
|
]
|
|
1065
1072
|
}
|
|
1066
1073
|
}
|
|
1067
|
-
},
|
|
1068
|
-
consent: {
|
|
1069
|
-
functional: true
|
|
1070
1074
|
}
|
|
1071
1075
|
},
|
|
1072
1076
|
in: {
|
|
@@ -1204,9 +1208,6 @@ var flow_complete_default = {
|
|
|
1204
1208
|
]
|
|
1205
1209
|
}
|
|
1206
1210
|
}
|
|
1207
|
-
},
|
|
1208
|
-
consent: {
|
|
1209
|
-
functional: true
|
|
1210
1211
|
}
|
|
1211
1212
|
},
|
|
1212
1213
|
in: {
|
|
@@ -1787,40 +1788,40 @@ var flow_complete_default = {
|
|
|
1787
1788
|
bundle: {
|
|
1788
1789
|
packages: {
|
|
1789
1790
|
"@walkeros/collector": {
|
|
1790
|
-
version: "4.7.2
|
|
1791
|
+
version: "4.7.2"
|
|
1791
1792
|
},
|
|
1792
1793
|
"@walkeros/server-source-express": {
|
|
1793
|
-
version: "4.7.2
|
|
1794
|
+
version: "4.7.2"
|
|
1794
1795
|
},
|
|
1795
1796
|
"@walkeros/transformer-ga4": {
|
|
1796
|
-
version: "4.7.2
|
|
1797
|
+
version: "4.7.2"
|
|
1797
1798
|
},
|
|
1798
1799
|
"@walkeros/transformer-validate": {
|
|
1799
|
-
version: "4.7.2
|
|
1800
|
+
version: "4.7.2"
|
|
1800
1801
|
},
|
|
1801
1802
|
"@walkeros/server-transformer-bot": {
|
|
1802
|
-
version: "4.7.2
|
|
1803
|
+
version: "4.7.2"
|
|
1803
1804
|
},
|
|
1804
1805
|
"@walkeros/server-transformer-fingerprint": {
|
|
1805
|
-
version: "4.7.2
|
|
1806
|
+
version: "4.7.2"
|
|
1806
1807
|
},
|
|
1807
1808
|
"@walkeros/server-transformer-file": {
|
|
1808
|
-
version: "4.7.2
|
|
1809
|
+
version: "4.7.2"
|
|
1809
1810
|
},
|
|
1810
1811
|
"@walkeros/server-store-fs": {
|
|
1811
|
-
version: "4.7.2
|
|
1812
|
+
version: "4.7.2"
|
|
1812
1813
|
},
|
|
1813
1814
|
"@walkeros/server-destination-gcp": {
|
|
1814
|
-
version: "4.7.2
|
|
1815
|
+
version: "4.7.2"
|
|
1815
1816
|
},
|
|
1816
1817
|
"@walkeros/server-destination-meta": {
|
|
1817
|
-
version: "4.7.2
|
|
1818
|
+
version: "4.7.2"
|
|
1818
1819
|
},
|
|
1819
1820
|
"@walkeros/server-destination-piwikpro": {
|
|
1820
|
-
version: "4.7.2
|
|
1821
|
+
version: "4.7.2"
|
|
1821
1822
|
},
|
|
1822
1823
|
"@walkeros/server-destination-datamanager": {
|
|
1823
|
-
version: "4.7.2
|
|
1824
|
+
version: "4.7.2"
|
|
1824
1825
|
}
|
|
1825
1826
|
}
|
|
1826
1827
|
}
|
|
@@ -1955,7 +1956,17 @@ var flow_complete_default = {
|
|
|
1955
1956
|
}
|
|
1956
1957
|
]
|
|
1957
1958
|
},
|
|
1958
|
-
next:
|
|
1959
|
+
next: [
|
|
1960
|
+
{
|
|
1961
|
+
match: {
|
|
1962
|
+
key: "event.user.optout",
|
|
1963
|
+
operator: "eq",
|
|
1964
|
+
value: "true"
|
|
1965
|
+
},
|
|
1966
|
+
stop: true
|
|
1967
|
+
},
|
|
1968
|
+
"dedup"
|
|
1969
|
+
],
|
|
1959
1970
|
examples: {
|
|
1960
1971
|
postCollect: {
|
|
1961
1972
|
title: "Event from the web flow",
|
|
@@ -4522,7 +4533,10 @@ var flow_complete_default = {
|
|
|
4522
4533
|
"event.user.device",
|
|
4523
4534
|
"event.user.session",
|
|
4524
4535
|
"event.user.hash"
|
|
4525
|
-
]
|
|
4536
|
+
],
|
|
4537
|
+
customDimensions: {
|
|
4538
|
+
"1": "user.segment"
|
|
4539
|
+
}
|
|
4526
4540
|
},
|
|
4527
4541
|
mapping: {
|
|
4528
4542
|
page: {
|
|
@@ -4617,7 +4631,7 @@ var flow_complete_default = {
|
|
|
4617
4631
|
examples: {
|
|
4618
4632
|
orderWithGoal: {
|
|
4619
4633
|
title: "Order with goal",
|
|
4620
|
-
description: "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash.",
|
|
4634
|
+
description: "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash, and both hits carry the customer segment as custom dimension 1.",
|
|
4621
4635
|
public: true,
|
|
4622
4636
|
mapping: {
|
|
4623
4637
|
name: "ecommerceOrder",
|
|
@@ -4681,7 +4695,8 @@ var flow_complete_default = {
|
|
|
4681
4695
|
hash: "5f1c0a9e7d3b2c41",
|
|
4682
4696
|
botScore: 0,
|
|
4683
4697
|
botCategory: "human",
|
|
4684
|
-
ltv: 420
|
|
4698
|
+
ltv: 420,
|
|
4699
|
+
segment: "loyal"
|
|
4685
4700
|
},
|
|
4686
4701
|
source: {
|
|
4687
4702
|
type: "express",
|
|
@@ -4714,7 +4729,7 @@ var flow_complete_default = {
|
|
|
4714
4729
|
[
|
|
4715
4730
|
"sendServer",
|
|
4716
4731
|
"https://example.piwik.pro/ppms.php",
|
|
4717
|
-
'{"requests":["?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000","?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000"]}',
|
|
4732
|
+
'{"requests":["?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000","?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000"]}',
|
|
4718
4733
|
{
|
|
4719
4734
|
timeout: 5e3
|
|
4720
4735
|
}
|
|
@@ -4881,13 +4896,13 @@ var flow_complete_default = {
|
|
|
4881
4896
|
bundle: {
|
|
4882
4897
|
packages: {
|
|
4883
4898
|
"@walkeros/collector": {
|
|
4884
|
-
version: "4.7.2
|
|
4899
|
+
version: "4.7.2"
|
|
4885
4900
|
},
|
|
4886
4901
|
"@walkeros/server-source-gcp": {
|
|
4887
|
-
version: "4.7.2
|
|
4902
|
+
version: "4.7.2"
|
|
4888
4903
|
},
|
|
4889
4904
|
"@walkeros/server-destination-gcp": {
|
|
4890
|
-
version: "4.7.2
|
|
4905
|
+
version: "4.7.2"
|
|
4891
4906
|
}
|
|
4892
4907
|
}
|
|
4893
4908
|
}
|
|
@@ -5381,7 +5396,7 @@ var teaching = {
|
|
|
5381
5396
|
chapter: "chains-routing",
|
|
5382
5397
|
level: "intermediate",
|
|
5383
5398
|
useCases: [],
|
|
5384
|
-
note: "On the web collector.next runs the inline pageGroup step once per event.",
|
|
5399
|
+
note: "On the web collector.next stops an opted-out user first, then runs the inline pageGroup step once per event.",
|
|
5385
5400
|
docs: [{ page: "getting-started/flow/routing" }],
|
|
5386
5401
|
example: { step: "pageGroup", name: "checkout" }
|
|
5387
5402
|
},
|
|
@@ -5788,13 +5803,13 @@ var teaching = {
|
|
|
5788
5803
|
note: "Destination consent: Meta only gets events with marketing consent.",
|
|
5789
5804
|
docs: []
|
|
5790
5805
|
},
|
|
5791
|
-
"
|
|
5792
|
-
pointer: "/flows/
|
|
5806
|
+
"user-optout": {
|
|
5807
|
+
pointer: "/flows/server/sources/express/next/0",
|
|
5793
5808
|
chapter: "consent-privacy",
|
|
5794
|
-
level: "
|
|
5795
|
-
useCases: ["consent"],
|
|
5796
|
-
note: "
|
|
5797
|
-
docs: []
|
|
5809
|
+
level: "beginner",
|
|
5810
|
+
useCases: ["consent", "privacy-analytics"],
|
|
5811
|
+
note: "An opted-out user (user.optout true) is stopped first: on the server before dedup, so no dedup entry, hash or delivery; on the web first in collector.next, so the browser sends nothing.",
|
|
5812
|
+
docs: [{ page: "guides/consent/index", anchor: "opt-out" }]
|
|
5798
5813
|
},
|
|
5799
5814
|
"value-consent": {
|
|
5800
5815
|
pointer: "/flows/web/destinations/collect/config/policy/user.email/consent",
|
|
@@ -6092,7 +6107,7 @@ var teaching = {
|
|
|
6092
6107
|
chapter: "chains-routing",
|
|
6093
6108
|
level: "beginner",
|
|
6094
6109
|
useCases: [],
|
|
6095
|
-
note: "source.next names the
|
|
6110
|
+
note: "source.next names the hops after the source: the opt-out stop, then dedup.",
|
|
6096
6111
|
docs: [{ page: "getting-started/flow/routing" }]
|
|
6097
6112
|
},
|
|
6098
6113
|
"collector-next": {
|
|
@@ -6492,6 +6507,15 @@ var teaching = {
|
|
|
6492
6507
|
docs: [{ page: "collector/state" }],
|
|
6493
6508
|
example: { step: "loadUser", name: "knownCustomer" }
|
|
6494
6509
|
},
|
|
6510
|
+
"piwik-segment": {
|
|
6511
|
+
pointer: "/flows/server/destinations/piwikpro/config/settings/customDimensions",
|
|
6512
|
+
chapter: "state-stores",
|
|
6513
|
+
level: "intermediate",
|
|
6514
|
+
useCases: ["privacy-analytics"],
|
|
6515
|
+
note: "Piwik PRO gets the loaded segment as custom dimension 1; the path is relative to the event, so user.segment.",
|
|
6516
|
+
docs: [],
|
|
6517
|
+
example: { step: "piwikpro", name: "orderWithGoal" }
|
|
6518
|
+
},
|
|
6495
6519
|
"store-fs": {
|
|
6496
6520
|
pointer: "/flows/server/stores/assets",
|
|
6497
6521
|
chapter: "state-stores",
|
|
@@ -7031,7 +7055,9 @@ var flowCompleteCoverage = {
|
|
|
7031
7055
|
mappingRule: {
|
|
7032
7056
|
batch: "rule-batch",
|
|
7033
7057
|
condition: "rule-condition",
|
|
7034
|
-
consent:
|
|
7058
|
+
consent: {
|
|
7059
|
+
excluded: "rule consent is not enforced yet; destination consent is the gate in this file"
|
|
7060
|
+
},
|
|
7035
7061
|
settings: "rule-settings",
|
|
7036
7062
|
data: "rule-data",
|
|
7037
7063
|
include: {
|
|
@@ -7101,7 +7127,7 @@ var flowCompleteCoverage = {
|
|
|
7101
7127
|
stop: "route-stop",
|
|
7102
7128
|
gate: { excluded: ROUTE_CASES },
|
|
7103
7129
|
sequence: "route-sequence",
|
|
7104
|
-
id: "
|
|
7130
|
+
id: "destination-before"
|
|
7105
7131
|
},
|
|
7106
7132
|
combinator: {
|
|
7107
7133
|
and: "match-and",
|