Skip to main content

Metrics Export V2

This article provides background and instructions for how to use the metrics export service, including delivery, impressions, creator sponsorship, and PMP impressions files.

What is the export service and what is its purpose

The export service provides granular performance data across consumption, impression, sponsorship, and PMP data that delivers reporting in a JSON format to an organization's S3 bucket.

You may only use and share this data in accordance with your agreement with Spotify for use of the Megaphone platform (including the applicable DPA). To the extent you share it with your measurement partner, you will ensure that such measurement partner: (a) uses such data for the sole purpose of providing measurement and attribution reporting to you; and (b) does not, directly or indirectly, sell, share, or process for purposes of targeted advertising, any such data (the terms "sell", "share" and "targeted advertising" shall have the meaning set forth in applicable privacy laws, such as the CCPA).

How to setup the export service

Please reach out to our support team via Live Chat to set up this service (typically takes 1-2 weeks). Data will only be pushed from the date of setup forward and does not include backfill. We recommend setting this up prior to going live on Megaphone. Note that all applicable export files will be sent once your bucket is set up.

How it works

Once the S3 bucket is setup, you will receive export files on an hourly basis through the day. Depending on your org's activity, you may receive up to four file types:

  • Delivery Export: delivery-v2-day-YYYY-MM-DD.json.gz — All enrolled orgs

  • Impressions Export: impressions-v2-day-YYYY-MM-DD.json.gz — All enrolled orgs

  • Creator Sponsorship Export: creator_sponsorship-v2-day-YYYY-MM-DD.json.gz — Only orgs with sponsorship activity

  • PMP Impressions Export: pmp_impressions-v2-day-YYYY-MM-DD.json.gz — Only orgs with PMP deal activity

The files will be overwritten throughout the day and contain the data for the day (UTC timezone) thus far. By 12pm UTC (7AM EST) each day, the previous day's file is final and will not be overwritten again. To confirm whether a specific day's file has been completely finalized, check for the existence of a finalization marker file.

There are four possible marker types:

_finalized_delivery_<partition_date>_<timestamp>

_finalized_impressions_<partition_date>_<timestamp>

_finalized_creator_sponsorship_<partition_date>_<timestamp>

_finalized_pmp_impressions_<partition_date>_<timestamp>

Summary of all export file types

File

Filename

Who gets it

Joinable to Delivery?

Delivery

delivery-v2-day-YYYY-MM-DD.json.gz

All enrolled orgs

N/A

Impressions

impressions-v2-day-YYYY-MM-DD.json.gz

All enrolled orgs

Yes — metric_id → delivery.id (DAI only)

Creator Sponsorship

creator_sponsorship-v2-day-YYYY-MM-DD.json.gz

Orgs with sponsorship activity

No

PMP Impressions

pmp_impressions-v2-day-YYYY-MM-DD.json.gz

Orgs with PMP deal activity

Yes — metric_id → delivery.id (DAI only)

Cross-referencing files

You can join certain export files together for richer analysis:

  • Impressions → Delivery: Join impressions.metric_id to delivery.id (DAI rows only; metric_id is null for SAI).

  • PMP Impressions → Delivery: Join pmp_impressions.metric_id to delivery.id (DAI rows only).

  • This join gives partners download-level delivery evidence (bytes_sent, seconds_downloaded, filesize from the Delivery file).

  • Creator Sponsorship cannot be joined to the Delivery file. Sponsorship impressions are tracked via Spotify playback, not the ad server, so the two files use different identifier systems with no shared join key.

Schema of export files

File One: Impressions Export

Field

Description

SAI or DAI

Example

show_uri

The unique Spotify identifier of a podcast

Both

"spotify:show:3aB7cD9eF1gH2ij4kL5mN6"

episode_uri

The unique Spotify identifier of an episode

Both

"spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1"

impression_type

The advertising technology used to deliver the impression

Both

"sai" / "dai"

impression_status

The status of an impression that is either delivered or available

Both

"delivered" / "available"

metric_id

The unique Megaphone identifier of the person's listening session for the DAI impression

DAI Only

"p468c92e-7d1e-11ef-ac4d-8xz211bb6d14"

organization_id

The unique Megaphone identifier of an organization

Both

"b366c92e-6e0e-7ref-ac7d-8xz262bb6d19"

network_id

The unique Megaphone identifier of a network

Both

"dcdbb4fc-1a43-11eb-84ae-67a893070760"

podcast_id

The unique Megaphone identifier of a podcast

Both

"42c9a7c0-ca68-11ed-94a6-27f47d63ee42"

episode_id

The unique Megaphone identifier of an episode

Both

"9781f646-9645-11ef-93b9-2b900958dc65"

advertisement_id

The unique Megaphone identifier for the advertisement

DAI Only

"a566c92e-7d0e-11ef-ac7d-8xz262bb6d19"

order_id

The unique Megaphone identifier for a specific order

Both

"f266c92e-7d0e-11ef-ac7d-8fd262bb6d34"

created_at

The timestamp when the event (row) occurred

Both

"2024-10-02T14:00:10.000Z"

country

The country where the person was located when they consumed the ad

Both

"US"

region

The first-level administrative division (e.g., state, province, or territory) where the person was located when they consumed the ad

Both

"TX"

city

The city where the person was located when they consumed the ad

Both

"Dallas"

zip

The U.S. zip code where the person was located when they consumed the ad

Both

"75254"

dma_name

The U.S. Designated Market Area (DMA) where the person was located when they consumed an ad

Both

"Los Angeles, CA"

normalized_user_agent

The platform or app where the podcast episode was played (e.g., Spotify, Apple Podcasts, etc)

Both

"Spotify"

byte_offset

The point in the audio file (measured in bytes) where an ad slot begins

DAI Only

0

position

The position of the individual ad within the overall ad slot

Both

1

type

The location of the ad. Ads are either pre-roll, mid-roll, or post-roll.

Both

"pre" / "mid" / "post"

bytes_sent

The number of bytes sent to the person's device

DAI Only

71095069

seconds_downloaded

The number of seconds downloaded to the device of the person consuming content

DAI Only

1559

ad_source

The logic by which the ad was placed

DAI Only

"auto"

order_downloaded

Whether or not the ad file was completely downloaded by the listener

DAI Only

true / false

blacklisted_ip

Deprecated. Always returns false.

DAI Only

false

blacklisted_ua

Deprecated. Always returns false.

DAI Only

false

File Two: Delivery Export

Field

Description

Plays or Downloads

Example

show_uri

The unique Spotify identifier of a podcast

Both

"spotify:show:3aB7cD9eF1gH2ij4kL5mN6"

episode_uri

The unique Spotify identifier of an episode

Both

"spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1"

id

The unique identifier of the event

Both

"1306432511362ad2e76697597f4b8992691fadcdd75a8716d7bf389671e0af11"

delivery_type

The type of consumption, with "plays" representing only Spotify consumption, and downloads representing all platforms

Both

"play" / "download"

media_type

The episode format type; either video or audio

Both

"audio" / "video"

is_stream

Indicates if the row represents a stream on Spotify

Plays only

true / false

network_id

The unique Megaphone identifier of a network

Both

"dcdbb4fc-1a43-11eb-84ae-67a893070760"

podcast_id

The unique Megaphone identifier of a podcast

Both

"2751f55e-8e15-11ed-ae35-43ee3a490d7d"

episode_id

The unique Megaphone identifier of an episode

Both

"2764369c-8e15-11ed-ae35-9fc331636995"

created_at

The timestamp when the event (row) occurred

Both

"2023-01-06T23:52:35.000Z"

duration

The length of an episode in seconds

Both

"104.33"

country

The country where the person was located when they consumed the content

Both

"US"

region

The first-level administrative division (e.g., state, province, or territory) where the person was located when they consumed the content

Both

"NY"

dma_name

The U.S. Designated Market Area (DMA) where the person was located when they consumed the content

Both

"Los Angeles, CA"

city

The city where the person was located when they consumed the content

Both

"New York"

source

Deprecated. Always returns "0".

Downloads only

0

filesize

Size in bytes of the audio file

Downloads only

2998176

bytes_sent

Audio bytes delivered to the user

Downloads only

2998611

seconds_downloaded

The number of seconds downloaded to the device of the user consuming content

Downloads only

104

normalized_user_agent

The platform or app where the podcast episode was played (e.g., Spotify, Apple Podcasts, etc)

Both

"Spotify"

user_agent

Identifies the app and device making a request

Both

"Podcasts/1611.1.1 CFNetwork/1325.0.1 Darwin/21.1.0"

ip

The hashed IP address associated with the person consuming the content

Both

"595a01d976316e1be1bed8646da0dbb2"

blacklisted_ip

Deprecated. Always returns false.

Downloads only

false

blacklisted_ua

Deprecated. Always returns false.

Downloads only

false

File Three: Creator Sponsorship Export

Filename: creator_sponsorship-v2-day-YYYY-MM-DD.json.gz

Who gets it: Orgs with sponsorship activity only. Not sent if org has no sponsorship data.

Field

Description

Example

delivery_type

Always "spotify"

"spotify"

playback_id

Unique playback session ID

"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

podcast_id

The unique Megaphone identifier of a podcast

"42c9a7c0-ca68-11ed-94a6-27f47d63ee42"

episode_id

The unique Megaphone identifier of an episode

"9781f646-9645-11ef-93b9-2b900958dc65"

sponsorship_uri

The unique Spotify identifier of the sponsorship

"spotify:sponsorship:1e7mrsavX7KSRDv8evxxXp"

sponsorship_type

Type of sponsorship (e.g. "BAKED_IN")

"BAKED_IN"

media_type

The episode format type: "audio" or "video"

"audio"

country

The country where the person was located when they consumed the content

"US"

region

The first-level administrative division (e.g., state, province, or territory)

"NY"

city

The city where the person was located when they consumed the content

"New York"

dma_name

The U.S. Designated Market Area (DMA) (null for non-US)

"New York, NY"

zip

The U.S. zip code (null for non-US)

"10001"

age_bucket

Age demographic bucket

"25-34"

gender

Gender demographic

"female"

impression_at

The timestamp when the sponsorship impression occurred

"2026-07-25T14:30:29.264+00:00"

seconds_played

Seconds of sponsorship audio played

"45"

played_cue_start

Whether playback started from the sponsorship cue start

true / false

played_cue_end

Whether playback reached the sponsorship cue end

true / false

is_complete_impression

Whether the full sponsorship was played

true / false

organization_id

The unique Megaphone identifier of an organization

"b366c92e-6e0e-7ref-ac7d-8xz262bb6d19"

show_uri

The unique Spotify identifier of a podcast

"spotify:show:3aB7cD9eF1gH2ij4kL5mN6"

episode_uri

The unique Spotify identifier of an episode

"spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1"

Sample row:

{
"delivery_type": "spotify",
"playback_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"podcast_id": "42c9a7c0-ca68-11ed-94a6-27f47d63ee42",
"episode_id": "9781f646-9645-11ef-93b9-2b900958dc65",
"sponsorship_uri": "spotify:sponsorship:1e7mrsavX7KSRDv8evxxXp",
"sponsorship_type": "BAKED_IN",
"media_type": "audio",
"country": "US",
"region": "NY",
"city": "New York",
"dma_name": "New York, NY",
"zip": "10001",
"age_bucket": "25-34",
"gender": "female",
"impression_at": "2026-07-25T14:30:29.264+00:00",
"seconds_played": "45",
"played_cue_start": true,
"played_cue_end": true,
"is_complete_impression": true,
"organization_id": "b366c92e-6e0e-7ref-ac7d-8xz262bb6d19",
"show_uri": "spotify:show:3aB7cD9eF1gH2ij4kL5mN6",
"episode_uri": "spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1"
}

Metric calculations:

  • Total Sponsorship Impressions: Count all rows

  • Complete Sponsorship Impressions: Count rows where is_complete_impression is true

File Four: PMP Impressions Export

Filename: pmp_impressions-v2-day-YYYY-MM-DD.json.gz

Who gets it: Orgs with PMP (Private Marketplace) deal activity only. Not sent if org has no PMP deals.

Field

Description

Example

id

Unique impression identifier

"p468c92e-7d1e-11ef-ac4d-8xz211bb6d14SX-MP-DV-ABC-1234567890midroll1"

metric_id

The unique Megaphone identifier of the person's listening session. DAI only (null for SAI). Join to the Delivery file: pmp_impressions.metric_id = delivery.id

"p468c92e-7d1e-11ef-ac4d-8xz211bb6d14"

created_at

The timestamp when the event (row) occurred

"2026-08-30T00:17:38.217Z"

impression_type

The advertising technology used to deliver the impression: "dai" or "sai"

"dai"

product_type

Always "SAX_PMP_PUBLISHER_DIRECT"

"SAX_PMP_PUBLISHER_DIRECT"

deal_id

The PMP deal the impression cleared against (SX-prefixed)

"SX-MP-DV-ABC-1234567890"

ad_format

"AUDIO" or "VIDEO"

"AUDIO"

organization_id

The unique Megaphone identifier of an organization

"b366c92e-6e0e-7ref-ac7d-8xz262bb6d19"

network_id

The unique Megaphone identifier of a network

"dcdbb4fc-1a43-11eb-84ae-67a893070760"

podcast_id

The unique Megaphone identifier of a podcast

"42c9a7c0-ca68-11ed-94a6-27f47d63ee42"

episode_id

The unique Megaphone identifier of an episode

"9781f646-9645-11ef-93b9-2b900958dc65"

show_uri

The unique Spotify identifier of a podcast

"spotify:show:3aB7cD9eF1gH2ij4kL5mN6"

episode_uri

The unique Spotify identifier of an episode

"spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1"

type

The location of the ad: "pre", "mid", or "post"

"mid"

position

The position of the individual ad within the overall ad slot

1

country

The country where the person was located when they consumed the ad

"US"

region

The first-level administrative division (e.g., state, province, or territory)

"TX"

city

The city where the person was located when they consumed the ad

"Dallas"

zip

The U.S. zip code where the person was located when they consumed the ad

"75254"

dma_name

The U.S. Designated Market Area (DMA) where the person was located when they consumed an ad

"Dallas-Ft. Worth, TX"

normalized_user_agent

The platform or app where the podcast episode was played

"Apple Podcasts"

Sample row:

{
"id": "p468c92e-7d1e-11ef-ac4d-8xz211bb6d14SX-MP-DV-ABC-1234567890midroll1",
"metric_id": "p468c92e-7d1e-11ef-ac4d-8xz211bb6d14",
"created_at": "2026-08-30T00:17:38.217Z",
"impression_type": "dai",
"product_type": "SAX_PMP_PUBLISHER_DIRECT",
"deal_id": "SX-MP-DV-ABC-1234567890",
"ad_format": "AUDIO",
"organization_id": "b366c92e-6e0e-7ref-ac7d-8xz262bb6d19",
"network_id": "dcdbb4fc-1a43-11eb-84ae-67a893070760",
"podcast_id": "42c9a7c0-ca68-11ed-94a6-27f47d63ee42",
"episode_id": "9781f646-9645-11ef-93b9-2b900958dc65",
"show_uri": "spotify:show:3aB7cD9eF1gH2ij4kL5mN6",
"episode_uri": "spotify:episode:7xI8zN6vU5tS4rQ3pO2nM1",
"type": "mid",
"position": "1",
"country": "US",
"region": "TX",
"city": "Dallas",
"zip": "75254",
"dma_name": "Dallas-Ft. Worth, TX",
"normalized_user_agent": "Apple Podcasts"
}

Metric calculations:

  • Total PMP Impressions: Count all rows

  • PMP Impressions by deal: Count rows grouped by deal_id

  • DAI vs SAI: Count rows grouped by impression_type ("dai" or "sai")

  • PMP Impressions by platform: Count rows grouped by normalized_user_agent

Note on evidence model: PMP impressions are event-counted, not byte-evidenced. The PMP file does not contain byte_offset, bytes_sent, seconds_downloaded, or order_downloaded. Partners who need download-level delivery evidence should join the PMP file to the Delivery file using pmp_impressions.metric_id = delivery.id (DAI rows only). This join provides access to the Delivery file's bytes_sent, seconds_downloaded, and filesize fields for each impression.

Did this answer your question?