Podscribe
Datafly Signal delivers events to Podscribe server-to-server, letting Podscribe credit conversions, leads, and registrations back to the podcast ad that drove them. Server delivery means the conversion is recorded reliably regardless of browser tracking prevention or ad blockers.
Prerequisites
Before configuring Podscribe in Signal, you need a Podscribe advertiser account, an API key, and your advertiser slug.
Step 1: Identify your advertiser slug
Log in to the Podscribe dashboard and open Settings > Advertiser. Your advertiser slug is the short string Podscribe uses to identify your account (e.g. acme-coffee). Copy this — it’s required in every API call.
Step 2: Generate an API key
- In the Podscribe dashboard, go to Settings > API.
- Click Generate API Key and name it (e.g.
Datafly Signal). - Copy the value immediately — Podscribe only shows it once.
Treat the API key as a secret. Store it in your secrets manager and rotate it if you suspect it has leaked.
Configure in Signal
Configuration fields
| Field | Required | Description |
|---|---|---|
api_key | Yes | Bearer token used to authenticate every request. |
advertiser | Yes | Your Podscribe advertiser slug. |
Management UI setup
- Go to Integrations > Add Integration > Podscribe.
- Select the Retail preset.
- Enter your
api_keyandadvertiser. - Set consent categories — defaults to
marketing. - 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": "podscribe",
"name": "Podscribe — Podcast Attribution",
"enabled": true,
"config": {
"api_key": "ak_podscribe_abc123...",
"advertiser": "acme-coffee"
},
"consent_categories": ["marketing"]
}'API endpoint
POST https://api.podscribe.com/track
Authorization: Bearer {api_key}
Content-Type: application/jsonEach event is delivered as a single JSON object. Podscribe also offers a GET track.gif beacon for client-side use; Signal always uses the POST endpoint for server delivery.
Identity signals
Podscribe’s primary match keys are the visitor’s IP and User-Agent — these are compared against the listener fingerprints captured at podcast impression time. The Datafly anonymous_id is sent as external_id for stable cross-session joins.
| Signal | Field | Notes |
|---|---|---|
ip | Visitor IP address | Forwarded from the original browser request. Primary match key. |
user_agent | Visitor User-Agent | Forwarded from the original browser request. Paired with IP for listener fingerprint matching. |
external_id | Datafly anonymous_id | Stable cross-session identifier. Used to deduplicate repeat visits and to join multi-touch funnels. |
url | Page URL at conversion | Optional context. |
user_id | Authenticated user ID | Sent on Signed Up events. |
Event mapping
Retail preset
| Signal event | Podscribe event |
|---|---|
Order Completed | purchase |
Lead Submitted | lead |
Signed Up | registration |
To send other event types to Podscribe, add them to the integration’s event map in the Management UI and supply a vendor_event_name matching Podscribe’s expected event type.
Example: Order Completed
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-001",
revenue: 129.99,
currency: "GBP",
coupon: "PODCAST10"
});Podscribe payload sent by Signal:
{
"advertiser": "acme-coffee",
"event": "purchase",
"order_id": "ORD-001",
"value": 129.99,
"currency": "GBP",
"coupon": "PODCAST10",
"external_id": "anon_a1b2c3d4e5f6",
"ip": "203.0.113.50",
"user_agent": "Mozilla/5.0 ...",
"url": "https://example.com/checkout/confirmation"
}Example: Signed Up
Datafly.js call:
datafly.identify("user-123", { email: "jane@example.com" });
datafly.track("Signed Up", { method: "email" });Podscribe payload sent by Signal:
{
"advertiser": "acme-coffee",
"event": "registration",
"signup_method": "email",
"user_id": "user-123",
"external_id": "anon_a1b2c3d4e5f6",
"ip": "203.0.113.50",
"user_agent": "Mozilla/5.0 ...",
"url": "https://example.com/welcome"
}Testing
- In the Podscribe dashboard, open Reports > Conversions and filter to the last 15 minutes.
- Trigger a test event from your site or via the Management API preview tool.
- The event should appear in Podscribe within a minute, with
external_id,ip, anduser_agentpopulated. - To trace a specific event end-to-end, copy the
event_idfrom the Signal event log and search for the matchingorder_idin Podscribe.
Troubleshooting
| Problem | Solution |
|---|---|
401 Unauthorized | API key is invalid or revoked. Generate a new key in Settings > API and update the integration config. |
403 Forbidden | The API key is valid but not authorised for the supplied advertiser slug. Confirm both belong to the same Podscribe account. |
| Events arrive but are unattributed | The visitor’s IP/UA didn’t match any Podscribe listener fingerprint. This is normal for non-podcast traffic; confirm the test traffic originated from a Podscribe-tracked promo link. |
| Duplicate conversions | Ensure order_id is populated and unique per order. Podscribe deduplicates on order_id within a 24-hour window. |
| Low match rate | Confirm Signal’s first-party identification is active on landing pages so the anonymous_id is consistent across the funnel. |