Podsights
Datafly Signal delivers conversion events to Podsights (now part of Spotify) server-to-server using the Podsights server-side collector. This lets Podsights credit podcast ad impressions against downstream outcomes like purchases, leads, and signups without relying on a client-side pixel.
Podsights is being folded into Spotify’s measurement stack, so the payload shape and required identity fields can shift on the vendor side. Validate against a test pixel before going to production.
Why route Podsights through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Podsights optimises against are not filtered by the browser.
- Email is hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Podsights receives match keys rather than raw personal data.
- Client IP and user agent are preserved. Server-to-server delivery normally loses both, which weakens matching. Signal forwards the genuine visitor values as request headers so Podsights attributes the event to the right session.
- One consent decision governs every destination. Podsights is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Before configuring Podsights in Signal you need:
- An active Podsights account with at least one advertiser configured.
- A Pixel created in the Podsights dashboard — note its pixel key (used as the
keyfield). - Confirmation from your Podsights / Spotify rep that the server-side collector is enabled for your account.
Step 1: Locate Your Pixel Key
- Sign in to the Podsights dashboard.
- Open the Pixel Setup section for the advertiser you want to send conversions for.
- Copy the pixel key (also referred to as the advertiser key).
Treat the pixel key as a secret. Anyone with it can write conversion events into your Podsights account.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
key | Yes | Your Podsights pixel key. Carried in the body of every request as the key field. |
Management UI Setup
- Go to Integrations > Add Integration > Podsights.
- Choose the Retail preset (purchases, leads, add-to-cart, signups).
- Enter your
key. - Select consent categories —
marketingis the default. - Click Save.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_id": "src_abc123",
"vendor": "podsights",
"name": "Podsights Production",
"enabled": true,
"config": {
"key": "ps_pixel_key_abc123"
},
"consent_categories": ["marketing"]
}'API Endpoint
POST https://collector.podsights.com/v1/serverAuthentication is carried as the key field inside the JSON body — there is no header- or query-based auth on this endpoint.
Identity Signals
Podsights matches server events to listener exposures using a combination of automatically-captured request signals and optional hashed PII:
| Signal | Field | Description |
|---|---|---|
ip | top-level | Visitor IP forwarded from the original browser request. |
user_agent | top-level | Visitor User-Agent forwarded from the original browser request. |
id | top-level | Datafly anonymous_id — stable cross-session identifier. |
em | top-level | SHA-256 hashed, lowercased email when supplied via datafly.identify(). |
url | top-level | URL of the page where the conversion happened. |
All hashing is performed by Signal before the event leaves your infrastructure — raw PII never reaches Podsights.
Event Mapping
Retail preset
| Signal event | Podsights event |
|---|---|
Order Completed | purchase |
Lead Submitted | lead |
Product Added | addtocart |
Signed Up | signup |
To customise, edit the integration’s Field Mappings in the Management UI.
Example: Purchase Event
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-001",
revenue: 129.99,
currency: "USD",
email: "jane.doe@example.com"
});Podsights payload sent by Signal:
{
"key": "ps_pixel_key_abc123",
"event": "purchase",
"id": "anon_abc123def456",
"em": "0d8af753a8a1bd2... (sha256)",
"ip": "203.0.113.50",
"user_agent": "Mozilla/5.0 ...",
"order_id": "ORD-001",
"value": 129.99,
"currency": "USD"
}Testing Your Integration
- Configure the integration in a non-production source first.
- Trigger the configured events on your site.
- In the Podsights dashboard, open Real-Time Events (or the equivalent debug view) and confirm events are arriving against the right pixel key.
- Once events are visible, promote the configuration to production.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not arriving | Confirm the key value matches the pixel exactly. Pixel keys are advertiser-scoped, so a typo silently drops events. |
| Conversions not attributed to podcast impressions | Confirm with your Podsights rep that the listener pre-exposure data is flowing into the same account. Attribution requires both sides. |
| Hashed email not matching | Make sure email is being passed via datafly.identify() (lowercased, trimmed before hashing). |
Rate Limits
Podsights does not publish a public rate-limit number. The collector accepts steady write traffic at well above typical e-commerce conversion volumes; Signal will retry on 429 / 5xx with exponential backoff.