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.
This integration is currently alpha. The blueprint is built against Podsights’ published server-side pixel documentation; the JSON payload shape and required identity fields may evolve as Podsights iterates on the Spotify-integrated successor. Validate against a test pixel before going to production.
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.