Skip to content

Commit ad0f604

Browse files
bkboothclaude
andcommitted
docs(audience): strip em-dashes and AI tells from pixel README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 3649736 commit ad0f604

1 file changed

Lines changed: 14 additions & 15 deletions

File tree

packages/audience/pixel/README.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# @imtbl/pixel — Immutable Tracking Pixel
1+
# @imtbl/pixel
22

33
A drop-in JavaScript snippet that captures device signals, page views, and attribution data for Immutable's events pipeline. Use it to measure campaign performance and attribute player acquisition across your marketing sites, landing pages, and web shops. Zero configuration beyond a publishable key.
44

@@ -21,7 +21,7 @@ document.head.appendChild(s);
2121

2222
Replace `YOUR_PUBLISHABLE_KEY` with your project's publishable key from [Immutable Hub](https://hub.immutable.com/).
2323

24-
The script loads asynchronously and does not block page rendering. The default consent level is `none` the pixel loads but does not collect until consent is explicitly set (see [Consent Modes](#consent-modes)). To start collecting anonymous device signals immediately, add `"consent":"anonymous"` to the init options:
24+
The script loads asynchronously and does not block page rendering. The default consent level is `none`: the pixel loads but does not collect until consent is explicitly set (see [Consent Modes](#consent-modes)). To start collecting anonymous device signals immediately, add `"consent":"anonymous"` to the init options:
2525

2626
```diff
2727
- w[i].push(["init",{"key":"YOUR_PUBLISHABLE_KEY"}]);
@@ -34,7 +34,7 @@ The `consent` option controls what the pixel collects. **Default is `none`** (no
3434

3535
| Level | What's collected | Cookies set | Use case |
3636
|-------|-----------------|-------------|----------|
37-
| `none` | Nothing pixel loads but is inert | None | Before consent banner interaction |
37+
| `none` | Nothing (pixel loads but is inert) | None | Before consent banner interaction |
3838
| `anonymous` | Device signals, attribution, page views, form submissions, link clicks (no PII) | `imtbl_anon_id`, `_imtbl_sid` | Anonymous analytics without PII |
3939
| `full` | Everything in `anonymous` + hashed email capture from form submissions (for identity matching) | `imtbl_anon_id`, `_imtbl_sid` | After explicit user consent for marketing/ads |
4040

@@ -47,12 +47,12 @@ If your site uses a Consent Management Platform (CMP), the pixel can auto-detect
4747
+ w[i].push(["init",{"key":"YOUR_KEY","consentMode":"auto"}]);
4848
```
4949

50-
> **Note:** `consentMode` and `consent` are mutually exclusive — do not set both.
50+
> **Note:** `consentMode` and `consent` are mutually exclusive. Do not set both.
5151
5252
The pixel starts in `none` and checks for these CMP standards (in priority order):
5353

54-
1. [**Google Consent Mode v2**](https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced) reads `analytics_storage` and `ad_storage` from `window.dataLayer`
55-
2. [**IAB TCF v2**](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md) reads purpose consents via `window.__tcfapi`
54+
1. [**Google Consent Mode v2**](https://developers.google.com/tag-platform/security/guides/consent?consentmode=advanced): reads `analytics_storage` and `ad_storage` from `window.dataLayer`
55+
2. [**IAB TCF v2**](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md): reads purpose consents via `window.__tcfapi`
5656

5757
Once a CMP is detected, the pixel upgrades consent automatically and continues listening for changes (e.g. when a user updates their cookie preferences). If no CMP is detected after ~2.5 seconds, the pixel remains in `none` silently (there is no failure callback). If your CMP may not be present on every page, push a manual fallback on your own timeout:
5858

@@ -67,7 +67,7 @@ setTimeout(function() {
6767
If you are not using `consentMode: 'auto'`, you can set consent manually at any time:
6868

6969
```javascript
70-
// After cookie banner interaction upgrade to full
70+
// After cookie banner interaction, upgrade to full
7171
window.__imtbl.push(['consent', 'full']);
7272

7373
// Or downgrade (purges PII from queue)
@@ -109,9 +109,8 @@ document.head.appendChild(s);
109109
## Test mode
110110

111111
Set `"testMode": true` in the init options to mark every event with a
112-
top-level `test: true` flag. Useful for development, staging, or QA —
113-
events still flow through the production endpoint, but can be filtered
114-
out of production analytics downstream.
112+
top-level `test: true` flag. Test events still flow through the
113+
production endpoint, but can be filtered out of production analytics.
115114

116115
```diff
117116
- w[i].push(["init",{"key":"YOUR_KEY","consent":"anonymous"}]);
@@ -123,7 +122,7 @@ out of production analytics downstream.
123122
| Cookie | Lifetime | Purpose |
124123
|--------|----------|---------|
125124
| `imtbl_anon_id` | 2 years | Anonymous device ID (shared with web SDK) |
126-
| `_imtbl_sid` | 30 minutes (rolling) | Session ID resets on inactivity |
125+
| `_imtbl_sid` | 30 minutes (rolling) | Session ID (resets on inactivity) |
127126

128127
Both cookies are first-party (`SameSite=Lax`, `Secure` on HTTPS).
129128

@@ -166,7 +165,7 @@ Note: the nonce covers the inline snippet only. The CDN-loaded script (`imtbl.js
166165

167166
## Documentation
168167

169-
- [Tracking Pixel](https://docs.immutable.com/docs/products/audience/tracking-pixel) this package (setup, consent modes, auto-tracked events)
170-
- [Web SDK](https://docs.immutable.com/docs/products/audience/web-sdk) sibling `@imtbl/audience` package for typed event tracking and identity management
171-
- [REST API](https://docs.immutable.com/docs/products/audience/rest-api) backend reference for direct integration
172-
- [Data dictionary](https://docs.immutable.com/docs/products/audience/data-dictionary) predefined event names and property schemas
168+
- [Tracking Pixel](https://docs.immutable.com/docs/products/audience/tracking-pixel): this package (setup, consent modes, auto-tracked events)
169+
- [Web SDK](https://docs.immutable.com/docs/products/audience/web-sdk): sibling `@imtbl/audience` package for typed event tracking and identity management
170+
- [REST API](https://docs.immutable.com/docs/products/audience/rest-api): backend reference for direct integration
171+
- [Data dictionary](https://docs.immutable.com/docs/products/audience/data-dictionary): predefined event names and property schemas

0 commit comments

Comments
 (0)