@walkeros/server-destination-pinterest 4.1.0-next-1778668930820 → 4.1.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/CHANGELOG.md +140 -0
- package/README.md +34 -110
- package/dist/walkerOS.json +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# @walkeros/server-destination-pinterest
|
|
2
|
+
|
|
3
|
+
## 4.1.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [e155ff8]
|
|
8
|
+
- Updated dependencies [e800974]
|
|
9
|
+
- Updated dependencies [e155ff8]
|
|
10
|
+
- Updated dependencies [1a8f2d7]
|
|
11
|
+
- Updated dependencies [1a8f2d7]
|
|
12
|
+
- Updated dependencies [b276173]
|
|
13
|
+
- Updated dependencies [dd9f5ad]
|
|
14
|
+
- Updated dependencies [c60ef35]
|
|
15
|
+
- Updated dependencies [adeebea]
|
|
16
|
+
- Updated dependencies [13aaeaa]
|
|
17
|
+
- Updated dependencies [e800974]
|
|
18
|
+
- Updated dependencies [adeebea]
|
|
19
|
+
- Updated dependencies [e800974]
|
|
20
|
+
- Updated dependencies [e800974]
|
|
21
|
+
- Updated dependencies [058f7ed]
|
|
22
|
+
- Updated dependencies [28a8ac2]
|
|
23
|
+
- Updated dependencies [fd6076e]
|
|
24
|
+
- @walkeros/core@4.1.0
|
|
25
|
+
- @walkeros/server-core@4.1.0
|
|
26
|
+
|
|
27
|
+
## 4.0.2
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [a6a0ea7]
|
|
32
|
+
- @walkeros/core@4.0.2
|
|
33
|
+
- @walkeros/server-core@4.0.2
|
|
34
|
+
|
|
35
|
+
## 4.0.1
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- Updated dependencies [381dfe7]
|
|
40
|
+
- Updated dependencies [1524275]
|
|
41
|
+
- Updated dependencies [03d7055]
|
|
42
|
+
- @walkeros/core@4.0.1
|
|
43
|
+
- @walkeros/server-core@4.0.1
|
|
44
|
+
|
|
45
|
+
## 4.0.0
|
|
46
|
+
|
|
47
|
+
### Major Changes
|
|
48
|
+
|
|
49
|
+
- 93ea9c4: Event model v4: breaking changes to the `Event`, `Source`, and
|
|
50
|
+
`Entity` shapes.
|
|
51
|
+
- `event.id` is now a W3C span_id (16 lowercase hex chars), generated by the
|
|
52
|
+
collector. Reference: W3C Trace Context (W3C Recommendation, January 2020).
|
|
53
|
+
- `event.version`, `event.group`, `event.count` are removed.
|
|
54
|
+
- `source.type` is now the source kind (e.g. `browser`, `gtag`, `mcp`, `cli`).
|
|
55
|
+
New `source.platform` holds the runtime (`web` | `server` | `app` | ...).
|
|
56
|
+
- `source.id` and `source.previous_id` are removed.
|
|
57
|
+
- Browser source now sets `source.url` and `source.referrer`.
|
|
58
|
+
- MCP source sets `source.tool` per emission. CLI source sets
|
|
59
|
+
`source.command`.
|
|
60
|
+
- `Entity.nested` and `Entity.context` are now optional. Root `event.nested`
|
|
61
|
+
and `event.context` remain required.
|
|
62
|
+
- Each source self-registers via TypeScript module augmentation of `SourceMap`
|
|
63
|
+
in `@walkeros/core`.
|
|
64
|
+
- App-side coordination (`/workspaces/developer/app`) is a follow-up plan, not
|
|
65
|
+
part of this release. Telemetry from v4 CLI/MCP will not validate against
|
|
66
|
+
the existing app schema until that follow-up ships.
|
|
67
|
+
- `Mapping.Rule.skip` is renamed to `Mapping.Rule.silent`. Customer flow.json
|
|
68
|
+
configs using `skip: true` in mapping rules must rename to `silent: true`.
|
|
69
|
+
Hard cut: no legacy alias, the field is gone.
|
|
70
|
+
|
|
71
|
+
### Patch Changes
|
|
72
|
+
|
|
73
|
+
- Updated dependencies [93ea9c4]
|
|
74
|
+
- Updated dependencies [465775c]
|
|
75
|
+
- Updated dependencies [942a7fe]
|
|
76
|
+
- Updated dependencies [cfc7469]
|
|
77
|
+
- Updated dependencies [8e06b1f]
|
|
78
|
+
- Updated dependencies [3d50dd6]
|
|
79
|
+
- Updated dependencies [1ef33d9]
|
|
80
|
+
- @walkeros/core@4.0.0
|
|
81
|
+
- @walkeros/server-core@4.0.0
|
|
82
|
+
|
|
83
|
+
## 3.4.2
|
|
84
|
+
|
|
85
|
+
### Patch Changes
|
|
86
|
+
|
|
87
|
+
- @walkeros/core@3.4.2
|
|
88
|
+
- @walkeros/server-core@3.4.2
|
|
89
|
+
|
|
90
|
+
## 3.4.1
|
|
91
|
+
|
|
92
|
+
### Patch Changes
|
|
93
|
+
|
|
94
|
+
- Updated dependencies [12adf24]
|
|
95
|
+
- Updated dependencies [75aa26b]
|
|
96
|
+
- @walkeros/core@3.4.1
|
|
97
|
+
- @walkeros/server-core@3.4.1
|
|
98
|
+
|
|
99
|
+
## 3.4.0
|
|
100
|
+
|
|
101
|
+
### Minor Changes
|
|
102
|
+
|
|
103
|
+
- 724f97e: Migrate every step example in every walkerOS package to the
|
|
104
|
+
standardized `[callable, ...args][]` shape introduced in `@walkeros/core`.
|
|
105
|
+
Every step example's `out` is now an array of effect tuples whose first
|
|
106
|
+
element is the callable's public SDK name (`'gtag'`, `'analytics.track'`,
|
|
107
|
+
`'fbq'`, `'dataLayer.push'`, `'sendServer'`, `'fetch'`, `'trackClient.track'`,
|
|
108
|
+
`'amplitude.track'`, `'fs.writeFile'`, `'producer.send'`, `'client.xadd'`,
|
|
109
|
+
`'client.send'`, `'dataset.table.insert'`, etc.). Source examples use `'elb'`
|
|
110
|
+
as the callable; transformer examples use the reserved `'return'` keyword;
|
|
111
|
+
store examples use store-operation callables (`'get'`, `'set'`). Tests capture
|
|
112
|
+
real calls on each component's spy and assert against `example.out` directly —
|
|
113
|
+
the hardcoded `PACKAGE_CALLS` registry in the app is no longer consulted
|
|
114
|
+
(emptied; plan #3 removes it structurally).
|
|
115
|
+
|
|
116
|
+
### Patch Changes
|
|
117
|
+
|
|
118
|
+
- Updated dependencies [74940cc]
|
|
119
|
+
- Updated dependencies [525f5d9]
|
|
120
|
+
- @walkeros/core@3.4.0
|
|
121
|
+
- @walkeros/server-core@3.4.0
|
|
122
|
+
|
|
123
|
+
## 3.3.1
|
|
124
|
+
|
|
125
|
+
### Patch Changes
|
|
126
|
+
|
|
127
|
+
- @walkeros/server-core@3.3.1
|
|
128
|
+
- @walkeros/core@3.3.1
|
|
129
|
+
|
|
130
|
+
## 3.3.0
|
|
131
|
+
|
|
132
|
+
### Patch Changes
|
|
133
|
+
|
|
134
|
+
- Updated dependencies [2849acb]
|
|
135
|
+
- Updated dependencies [08c365a]
|
|
136
|
+
- Updated dependencies [08c365a]
|
|
137
|
+
- Updated dependencies [08c365a]
|
|
138
|
+
- Updated dependencies [08c365a]
|
|
139
|
+
- @walkeros/core@3.3.0
|
|
140
|
+
- @walkeros/server-core@3.3.0
|
package/README.md
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
<p align="left">
|
|
2
|
+
<a href="https://www.walkeros.io">
|
|
3
|
+
<img alt="walkerOS" title="walkerOS" src="https://www.walkeros.io/img/walkerOS_logo.svg" width="256px"/>
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
1
7
|
# @walkeros/server-destination-pinterest
|
|
2
8
|
|
|
3
|
-
Server-side Pinterest Conversions API
|
|
9
|
+
Server-side event delivery to Pinterest's Conversions API for enhanced
|
|
10
|
+
conversion tracking, bypassing browser limitations for improved data quality and
|
|
11
|
+
privacy compliance.
|
|
12
|
+
|
|
13
|
+
[Documentation](https://www.walkeros.io/docs/destinations/server/pinterest)
|
|
14
|
+
•
|
|
15
|
+
[NPM Package](https://www.npmjs.com/package/@walkeros/server-destination-pinterest)
|
|
16
|
+
•
|
|
17
|
+
[Source Code](https://github.com/elbwalker/walkerOS/tree/main/packages/server/destinations/pinterest)
|
|
4
18
|
|
|
5
19
|
## Installation
|
|
6
20
|
|
|
@@ -8,107 +22,18 @@ Server-side Pinterest Conversions API destination for walkerOS.
|
|
|
8
22
|
npm install @walkeros/server-destination-pinterest
|
|
9
23
|
```
|
|
10
24
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
```json
|
|
14
|
-
{
|
|
15
|
-
"destinations": {
|
|
16
|
-
"pinterest": {
|
|
17
|
-
"package": "@walkeros/server-destination-pinterest",
|
|
18
|
-
"config": {
|
|
19
|
-
"settings": {
|
|
20
|
-
"accessToken": "pina_...",
|
|
21
|
-
"adAccountId": "123456789"
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Settings
|
|
30
|
-
|
|
31
|
-
| Setting | Type | Required | Default | Description |
|
|
32
|
-
| --------------- | -------- | -------- | ------------------------------- | -------------------------------------------------------- |
|
|
33
|
-
| `accessToken` | string | yes | - | Pinterest conversion access token (Bearer auth) |
|
|
34
|
-
| `adAccountId` | string | yes | - | Pinterest ad account ID (numeric string) |
|
|
35
|
-
| `action_source` | string | no | `"web"` | Event source: `web`, `app_android`, `app_ios`, `offline` |
|
|
36
|
-
| `doNotHash` | string[] | no | - | User data fields to skip hashing |
|
|
37
|
-
| `test` | boolean | no | `false` | Enable test mode (`?test=true` query param) |
|
|
38
|
-
| `url` | string | no | `https://api.pinterest.com/v5/` | Custom API base URL |
|
|
39
|
-
| `user_data` | object | no | - | Default user_data mapping for all events |
|
|
40
|
-
| `partner_name` | string | no | - | Third-party partner name for attribution |
|
|
41
|
-
|
|
42
|
-
## Event Mapping
|
|
43
|
-
|
|
44
|
-
| walkerOS Event | Pinterest CAPI Event |
|
|
45
|
-
| ---------------- | -------------------- |
|
|
46
|
-
| `page view` | `page_visit` |
|
|
47
|
-
| `order complete` | `checkout` |
|
|
48
|
-
| `product add` | `add_to_cart` |
|
|
49
|
-
| `product view` | `view_content` |
|
|
50
|
-
| `user signup` | `signup` |
|
|
51
|
-
| `site search` | `search` |
|
|
52
|
-
| `checkout start` | `initiate_checkout` |
|
|
53
|
-
| `form submit` | `lead` |
|
|
54
|
-
|
|
55
|
-
## User Data
|
|
56
|
-
|
|
57
|
-
### Hashed Fields (SHA-256)
|
|
58
|
-
|
|
59
|
-
| Field | Key | Description |
|
|
60
|
-
| ------------- | -------------- | ----------------------------- |
|
|
61
|
-
| Email | `em` | Lowercase, trimmed |
|
|
62
|
-
| Phone | `ph` | Digits only with country code |
|
|
63
|
-
| First name | `fn` | Lowercase |
|
|
64
|
-
| Last name | `ln` | Lowercase |
|
|
65
|
-
| Date of birth | `db` | YYYYMMDD format |
|
|
66
|
-
| Gender | `ge` | Single letter: f, m, n |
|
|
67
|
-
| City | `ct` | Lowercase, no spaces |
|
|
68
|
-
| State | `st` | Two-letter code, lowercase |
|
|
69
|
-
| Zip code | `zp` | Digits only |
|
|
70
|
-
| Country | `country` | ISO 3166-1 alpha-2, lowercase |
|
|
71
|
-
| External ID | `external_id` | Advertiser user identifier |
|
|
72
|
-
| Mobile ad IDs | `hashed_maids` | GAID or IDFA |
|
|
73
|
-
|
|
74
|
-
### Pass-through Fields (not hashed)
|
|
75
|
-
|
|
76
|
-
| Field | Key |
|
|
77
|
-
| ---------- | ------------------- |
|
|
78
|
-
| Client IP | `client_ip_address` |
|
|
79
|
-
| User agent | `client_user_agent` |
|
|
80
|
-
| Click ID | `click_id` |
|
|
81
|
-
| Partner ID | `partner_id` |
|
|
82
|
-
|
|
83
|
-
Use `doNotHash` to skip hashing for pre-hashed fields.
|
|
84
|
-
|
|
85
|
-
## Custom Data
|
|
86
|
-
|
|
87
|
-
Ecommerce data is nested under `custom_data`:
|
|
25
|
+
## Quick start
|
|
88
26
|
|
|
89
27
|
```json
|
|
90
28
|
{
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"loop": [
|
|
100
|
-
"nested",
|
|
101
|
-
{
|
|
102
|
-
"condition": { "$code": "e => e.entity === 'product'" },
|
|
103
|
-
"map": {
|
|
104
|
-
"id": "data.id",
|
|
105
|
-
"item_name": "data.name",
|
|
106
|
-
"item_price": "data.price",
|
|
107
|
-
"quantity": { "key": "data.quantity", "value": 1 }
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}
|
|
29
|
+
"version": 4,
|
|
30
|
+
"flows": {
|
|
31
|
+
"default": {
|
|
32
|
+
"config": { "platform": "server" },
|
|
33
|
+
"destinations": {
|
|
34
|
+
"pinterest": {
|
|
35
|
+
"package": "@walkeros/server-destination-pinterest",
|
|
36
|
+
"config": {}
|
|
112
37
|
}
|
|
113
38
|
}
|
|
114
39
|
}
|
|
@@ -116,19 +41,18 @@ Ecommerce data is nested under `custom_data`:
|
|
|
116
41
|
}
|
|
117
42
|
```
|
|
118
43
|
|
|
119
|
-
##
|
|
44
|
+
## Documentation
|
|
120
45
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
automatically since both receive the same walkerOS event with the same
|
|
124
|
-
`event.id`.
|
|
46
|
+
Full configuration, mapping, and examples live in the docs:
|
|
47
|
+
**https://www.walkeros.io/docs/destinations/server/pinterest**
|
|
125
48
|
|
|
126
|
-
##
|
|
49
|
+
## Contribute
|
|
127
50
|
|
|
128
|
-
|
|
129
|
-
|
|
51
|
+
Feel free to contribute by submitting an
|
|
52
|
+
[issue](https://github.com/elbwalker/walkerOS/issues), starting a
|
|
53
|
+
[discussion](https://github.com/elbwalker/walkerOS/discussions), or getting in
|
|
54
|
+
[contact](https://calendly.com/elb-alexander/30min).
|
|
130
55
|
|
|
131
|
-
##
|
|
56
|
+
## License
|
|
132
57
|
|
|
133
|
-
|
|
134
|
-
- [walkerOS documentation](https://www.walkeros.io/docs/destinations/server/pinterest-capi)
|
|
58
|
+
MIT
|
package/dist/walkerOS.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/server-destination-pinterest",
|
|
3
3
|
"description": "Pinterest server destination for walkerOS",
|
|
4
|
-
"version": "4.1.0
|
|
4
|
+
"version": "4.1.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
|
-
"dist/**"
|
|
25
|
+
"dist/**",
|
|
26
|
+
"CHANGELOG.md"
|
|
26
27
|
],
|
|
27
28
|
"scripts": {
|
|
28
29
|
"build": "tsup --silent",
|
|
@@ -34,11 +35,11 @@
|
|
|
34
35
|
"update": "npx npm-check-updates -u && npm update"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"@walkeros/core": "4.1.0
|
|
38
|
-
"@walkeros/server-core": "4.1.0
|
|
38
|
+
"@walkeros/core": "4.1.0",
|
|
39
|
+
"@walkeros/server-core": "4.1.0"
|
|
39
40
|
},
|
|
40
41
|
"devDependencies": {
|
|
41
|
-
"@walkeros/collector": "4.1.0
|
|
42
|
+
"@walkeros/collector": "4.1.0"
|
|
42
43
|
},
|
|
43
44
|
"repository": {
|
|
44
45
|
"url": "git+https://github.com/elbwalker/walkerOS.git",
|