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

  1. In the Podscribe dashboard, go to Settings > API.
  2. Click Generate API Key and name it (e.g. Datafly Signal).
  3. 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

FieldRequiredDescription
api_keyYesBearer token used to authenticate every request.
advertiserYesYour Podscribe advertiser slug.

Management UI setup

  1. Go to Integrations > Add Integration > Podscribe.
  2. Select the Retail preset.
  3. Enter your api_key and advertiser.
  4. Set consent categories — defaults to marketing.
  5. 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/json

Each 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.

SignalFieldNotes
ipVisitor IP addressForwarded from the original browser request. Primary match key.
user_agentVisitor User-AgentForwarded from the original browser request. Paired with IP for listener fingerprint matching.
external_idDatafly anonymous_idStable cross-session identifier. Used to deduplicate repeat visits and to join multi-touch funnels.
urlPage URL at conversionOptional context.
user_idAuthenticated user IDSent on Signed Up events.

Event mapping

Retail preset

Signal eventPodscribe event
Order Completedpurchase
Lead Submittedlead
Signed Upregistration

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

  1. In the Podscribe dashboard, open Reports > Conversions and filter to the last 15 minutes.
  2. Trigger a test event from your site or via the Management API preview tool.
  3. The event should appear in Podscribe within a minute, with external_id, ip, and user_agent populated.
  4. To trace a specific event end-to-end, copy the event_id from the Signal event log and search for the matching order_id in Podscribe.

Troubleshooting

ProblemSolution
401 UnauthorizedAPI key is invalid or revoked. Generate a new key in Settings > API and update the integration config.
403 ForbiddenThe API key is valid but not authorised for the supplied advertiser slug. Confirm both belong to the same Podscribe account.
Events arrive but are unattributedThe 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 conversionsEnsure order_id is populated and unique per order. Podscribe deduplicates on order_id within a 24-hour window.
Low match rateConfirm Signal’s first-party identification is active on landing pages so the anonymous_id is consistent across the funnel.