@walkeros/server-destination-reddit 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 ADDED
@@ -0,0 +1,122 @@
1
+ # @walkeros/server-destination-reddit
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
+ - 74940cc: Add Reddit Conversions API server destination
104
+ - 724f97e: Migrate every step example in every walkerOS package to the
105
+ standardized `[callable, ...args][]` shape introduced in `@walkeros/core`.
106
+ Every step example's `out` is now an array of effect tuples whose first
107
+ element is the callable's public SDK name (`'gtag'`, `'analytics.track'`,
108
+ `'fbq'`, `'dataLayer.push'`, `'sendServer'`, `'fetch'`, `'trackClient.track'`,
109
+ `'amplitude.track'`, `'fs.writeFile'`, `'producer.send'`, `'client.xadd'`,
110
+ `'client.send'`, `'dataset.table.insert'`, etc.). Source examples use `'elb'`
111
+ as the callable; transformer examples use the reserved `'return'` keyword;
112
+ store examples use store-operation callables (`'get'`, `'set'`). Tests capture
113
+ real calls on each component's spy and assert against `example.out` directly —
114
+ the hardcoded `PACKAGE_CALLS` registry in the app is no longer consulted
115
+ (emptied; plan #3 removes it structurally).
116
+
117
+ ### Patch Changes
118
+
119
+ - Updated dependencies [74940cc]
120
+ - Updated dependencies [525f5d9]
121
+ - @walkeros/core@3.4.0
122
+ - @walkeros/server-core@3.4.0
package/README.md CHANGED
@@ -1,6 +1,19 @@
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-reddit
2
8
 
3
- Server-side Reddit Conversions API destination for walkerOS.
9
+ Server-side event delivery to Reddit's Conversions API v2.0 for enhanced
10
+ conversion tracking, bypassing browser limitations and improving match quality
11
+ for ad optimization.
12
+
13
+ [Documentation](https://www.walkeros.io/docs/destinations/server/reddit) &bull;
14
+ [NPM Package](https://www.npmjs.com/package/@walkeros/server-destination-reddit)
15
+ &bull;
16
+ [Source Code](https://github.com/elbwalker/walkerOS/tree/main/packages/server/destinations/reddit)
4
17
 
5
18
  ## Installation
6
19
 
@@ -8,110 +21,18 @@ Server-side Reddit Conversions API destination for walkerOS.
8
21
  npm install @walkeros/server-destination-reddit
9
22
  ```
10
23
 
11
- ## Configuration
12
-
13
- ```json
14
- {
15
- "destinations": {
16
- "reddit": {
17
- "package": "@walkeros/server-destination-reddit",
18
- "config": {
19
- "settings": {
20
- "accessToken": "rdt_...",
21
- "pixelId": "a2_abcdef123456"
22
- }
23
- }
24
- }
25
- }
26
- }
27
- ```
28
-
29
- ## Settings
30
-
31
- | Setting | Type | Required | Default | Description |
32
- | --------------- | -------- | -------- | --------------------------------------------------------- | ---------------------------------------------------- |
33
- | `accessToken` | string | yes | - | Reddit Conversion Access Token (Bearer auth) |
34
- | `pixelId` | string | yes | - | Reddit Pixel ID (appended as API path) |
35
- | `action_source` | string | no | - | Event source: `WEBSITE`, `APP`, `PHYSICAL_STORE` |
36
- | `doNotHash` | string[] | no | - | User fields to skip hashing |
37
- | `test_mode` | boolean | no | `false` | Enable test mode (top-level boolean in request body) |
38
- | `url` | string | no | `https://ads-api.reddit.com/api/v2.0/conversions/events/` | Custom API base URL |
39
- | `user_data` | object | no | - | Default user field mapping applied to all events |
40
-
41
- ## Event Mapping
42
-
43
- Reddit uses a rigid taxonomy. Map walkerOS events to a standard `tracking_type`:
44
-
45
- | walkerOS Event | Reddit tracking_type |
46
- | ------------------ | -------------------- |
47
- | `page view` | `PageVisit` |
48
- | `product view` | `ViewContent` |
49
- | `site search` | `Search` |
50
- | `product add` | `AddToCart` |
51
- | `product wishlist` | `AddToWishlist` |
52
- | `order complete` | `Purchase` |
53
- | `form submit` | `Lead` |
54
- | `user signup` | `SignUp` |
55
-
56
- Any non-standard name becomes
57
- `{ tracking_type: 'Custom', custom_event_name: '<name>' }` automatically.
58
-
59
- ## User Data
60
-
61
- ### Hashed Fields (SHA-256)
62
-
63
- | Field | Key | Description |
64
- | ----------- | ------------- | ------------------------------ |
65
- | Email | `email` | Lowercase, trimmed |
66
- | External ID | `external_id` | Advertiser user identifier |
67
- | IP address | `ip_address` | Hashed (unlike Meta/Pinterest) |
68
- | User agent | `user_agent` | Hashed (unlike Meta/Pinterest) |
69
- | IDFA | `idfa` | iOS advertising identifier |
70
- | AAID | `aaid` | Android advertising identifier |
71
-
72
- ### Pass-through Fields (not hashed)
73
-
74
- | Field | Key |
75
- | ----------------- | ------------------------- |
76
- | UUID | `uuid` |
77
- | Opt-out | `opt_out` |
78
- | Screen dimensions | `screen_dimensions` |
79
- | Data processing | `data_processing_options` |
80
-
81
- Use `doNotHash` to skip hashing for pre-hashed values.
82
-
83
- ## event_metadata
84
-
85
- Conversion details (value, currency, products, etc.) are nested under
86
- `event_metadata` (Reddit's equivalent of Meta's `custom_data`). The destination
87
- automatically sets `event_metadata.conversion_id` to `event.id` for
88
- deduplication with the Reddit Pixel.
24
+ ## Quick start
89
25
 
90
26
  ```json
91
27
  {
92
- "data": {
93
- "map": {
94
- "event_metadata": {
95
- "map": {
96
- "value_decimal": "data.total",
97
- "currency": { "key": "data.currency", "value": "USD" },
98
- "item_count": { "value": 1 },
99
- "products": {
100
- "loop": [
101
- "nested",
102
- {
103
- "condition": { "$code": "e => e.entity === 'product'" },
104
- "map": {
105
- "id": "data.id",
106
- "name": "data.name",
107
- "category": {
108
- "key": "data.category",
109
- "value": "uncategorized"
110
- }
111
- }
112
- }
113
- ]
114
- }
28
+ "version": 4,
29
+ "flows": {
30
+ "default": {
31
+ "config": { "platform": "server" },
32
+ "destinations": {
33
+ "reddit": {
34
+ "package": "@walkeros/server-destination-reddit",
35
+ "config": {}
115
36
  }
116
37
  }
117
38
  }
@@ -119,19 +40,18 @@ deduplication with the Reddit Pixel.
119
40
  }
120
41
  ```
121
42
 
122
- ## Deduplication
43
+ ## Documentation
123
44
 
124
- The destination automatically sets `event_metadata.conversion_id` to `event.id`.
125
- When the Reddit Pixel is also in the browser, deduplication works automatically
126
- because both sides share the same walkerOS `event.id`.
45
+ Full configuration, mapping, and examples live in the docs:
46
+ **https://www.walkeros.io/docs/destinations/server/reddit**
127
47
 
128
- ## Test Mode
48
+ ## Contribute
129
49
 
130
- Set `test_mode: true` in settings to send `"test_mode": true` in the request
131
- body. This is a top-level boolean (not a query parameter). Events sent with
132
- `test_mode` do not count toward ads delivery.
50
+ Feel free to contribute by submitting an
51
+ [issue](https://github.com/elbwalker/walkerOS/issues), starting a
52
+ [discussion](https://github.com/elbwalker/walkerOS/discussions), or getting in
53
+ [contact](https://calendly.com/elb-alexander/30min).
133
54
 
134
- ## Links
55
+ ## License
135
56
 
136
- - [Reddit Conversions API documentation](https://ads-api.reddit.com/docs/v2/#tag/Conversions-API)
137
- - [walkerOS documentation](https://www.walkeros.io/docs/destinations/server/reddit)
57
+ MIT
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "package": "@walkeros/server-destination-reddit",
4
- "version": "4.1.0-next-1778668930820",
4
+ "version": "4.1.0",
5
5
  "type": "destination",
6
6
  "platform": [
7
7
  "server"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/server-destination-reddit",
3
3
  "description": "Reddit server destination for walkerOS",
4
- "version": "4.1.0-next-1778668930820",
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-next-1778668930820",
38
- "@walkeros/server-core": "4.1.0-next-1778668930820"
38
+ "@walkeros/core": "4.1.0",
39
+ "@walkeros/server-core": "4.1.0"
39
40
  },
40
41
  "devDependencies": {
41
- "@walkeros/collector": "4.1.0-next-1778668930820"
42
+ "@walkeros/collector": "4.1.0"
42
43
  },
43
44
  "repository": {
44
45
  "url": "git+https://github.com/elbwalker/walkerOS.git",