By Campaign & Day/Week
const url = 'https://backend.podscribe.ai/api/public/impressions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"fields":["Week","Day","Advertiser","Media Type","Type","Tags","Spend","Publisher","Campaign","Show","Episode","Publish Date","Podcast & Streaming Impressions","YouTube Views","Reach","Visitors","Visits","Leads","Installs","Signups","Purchases","Revenue","Visitors Modeled","Visits Modeled","Leads Modeled","Installs Modeled","Signups Modeled","Purchases Modeled","Revenue Modeled","Promo codes","Clicks","Campaign ID","Campaign Internal ID","Podscribe Campaign ID","Publisher ID","Product","Initiative","Business Line","Rumble Impressions","Spotify Video Impressions","Episode GUID","Campaign & Initiative","Campaign Promo","Campaign Start Date","Campaign Expected Date","Campaign End Date"],"fieldMapping":{"Day":"timestamp","Publish Date":"episode_upload"},"formatting":{"numberFormatting":true,"summary":true},"name":"example","startDate":"2026-04-15","endDate":"2026-04-15","advertiser":[],"ytSimulcastConv":true,"rSimulcastConv":true,"svSimulcastConv":true,"ytSimulcastConvWeight":1,"rSimulcastConvWeight":1,"svSimulcastConvWeight":1,"includeYtSpend":true,"spendOnPublishDate":true,"useSettingsProfiles":false,"attributionWindow":1,"attributionStreamingWindow":1,"attributionSaiWindow":1,"attributionModel":"first","attributionPreset":"any","excludeReferrers":["example"],"excludeUtmMediums":["example"],"excludeUtmSources":["example"],"excludePriorCustomers":false,"excludePriorVisitors":false,"showIncrementalResults":true,"incrementalDisplayType":"channel","timeRangeConv":false,"timeRangeConvWithWindow":false,"timeGrouping":"all","geoGrouping":"country","useNonPurchasesRevenue":true,"weekStartsOn":"monday","aggregateEpisodicBuysPerShow":false,"campaignTags":["example"],"campaignTagsExclude":false,"modelPublicSpaceIps":true,"modelOffline":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://backend.podscribe.ai/api/public/impressions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "fields": [ "Week", "Day", "Advertiser", "Media Type", "Type", "Tags", "Spend", "Publisher", "Campaign", "Show", "Episode", "Publish Date", "Podcast & Streaming Impressions", "YouTube Views", "Reach", "Visitors", "Visits", "Leads", "Installs", "Signups", "Purchases", "Revenue", "Visitors Modeled", "Visits Modeled", "Leads Modeled", "Installs Modeled", "Signups Modeled", "Purchases Modeled", "Revenue Modeled", "Promo codes", "Clicks", "Campaign ID", "Campaign Internal ID", "Podscribe Campaign ID", "Publisher ID", "Product", "Initiative", "Business Line", "Rumble Impressions", "Spotify Video Impressions", "Episode GUID", "Campaign & Initiative", "Campaign Promo", "Campaign Start Date", "Campaign Expected Date", "Campaign End Date" ], "fieldMapping": { "Day": "timestamp", "Publish Date": "episode_upload" }, "formatting": { "numberFormatting": true, "summary": true }, "name": "example", "startDate": "2026-04-15", "endDate": "2026-04-15", "advertiser": [], "ytSimulcastConv": true, "rSimulcastConv": true, "svSimulcastConv": true, "ytSimulcastConvWeight": 1, "rSimulcastConvWeight": 1, "svSimulcastConvWeight": 1, "includeYtSpend": true, "spendOnPublishDate": true, "useSettingsProfiles": false, "attributionWindow": 1, "attributionStreamingWindow": 1, "attributionSaiWindow": 1, "attributionModel": "first", "attributionPreset": "any", "excludeReferrers": [ "example" ], "excludeUtmMediums": [ "example" ], "excludeUtmSources": [ "example" ], "excludePriorCustomers": false, "excludePriorVisitors": false, "showIncrementalResults": true, "incrementalDisplayType": "channel", "timeRangeConv": false, "timeRangeConvWithWindow": false, "timeGrouping": "all", "geoGrouping": "country", "useNonPurchasesRevenue": true, "weekStartsOn": "monday", "aggregateEpisodicBuysPerShow": false, "campaignTags": [ "example" ], "campaignTagsExclude": false, "modelPublicSpaceIps": true, "modelOffline": true }'This endpoint utilizes a task system.
Please read the description of Get status of file processing to understand how it works.
Result file format:
| Field | Type | Example | Description |
|---|---|---|---|
| Week | string | 2023-12-18 | Date of the week in the format YYYY-mm-DD. |
| Day | string | 2023-12-23 | Date of the day in the format YYYY-mm-DD. |
| Advertiser | string | demoAdvertiser | Name of the advertiser for the media content. |
| Media Type | string | podcast | Type of media content, such as “podcast,” “podcast and youtube,” “youtube,” “simulcast,” or “streaming.” |
| Type | string | baked-in | Type of ad integration, either “baked-in” or “dai” (Dynamic Ad Insertion). |
| Tags | string | Retail | Optional tags associated with the campaign. |
| Spend | number | 123 | Amount spent on the advertisement, if applicable. |
| Publisher | string | Some publisher | Name of the publisher or platform hosting the content. |
| Campaign | string | My Campaign | Name of the advertising campaign. |
| Show | string | Some Show | Name of the show associated with the media content. |
| Show ID | number | 123 | Podscribe ID of the show. Excluded by default except for previously enabled advertisers; request via fields. |
| Episode | string | Some Ep | Name or identifier of the specific episode, if applicable. |
| Publish Date | string | 2023-12-18 | Date when the media content was published, in the format YYYY-mm-DD. |
| Podcast & Streaming Impressions | number | 123 | Number of podcast & streaming impressions, if applicable. |
| YouTube Views | number | 123 | Number of views for YouTube content, if applicable. |
| Reach | number | 123 | Reach represents the total number of unique users who saw the ad. |
| Visitors | number | 123 | Number of visitors to a website, if applicable. |
| Visits | number | 123 | Number of visits to a website, if applicable. |
| Leads | number | 123 | Number of leads generated, if applicable. |
| Installs | number | 123 | Number of app installations, if applicable. |
| Signups | number | 123 | Number of signups or registrations, if applicable. |
| Purchases | number | 123 | Number of purchases made, if applicable. |
| <custom_action> | number | 123 | Count of an advertiser-defined custom event. Header is the action name (e.g. “order_complete”). Also included when geoGrouping is set. Mapped actions are excluded by default unless listed in fields. |
| Revenue | number | 123 | Revenue generated, if applicable. |
| Visitors Modeled | number | 123 | Modeled number of visitors based on data analysis, if applicable. |
| Visits Modeled | number | 123 | Modeled number of visits based on data analysis, if applicable. |
| Leads Modeled | number | 123 | Modeled number of leads based on data analysis, if applicable. |
| Installs Modeled | number | 123 | Modeled number of app installations based on data analysis, if applicable. |
| Signups Modeled | number | 123 | Modeled number of signups based on data analysis, if applicable. |
| Purchases Modeled | number | 123 | Modeled number of purchases based on data analysis, if applicable. |
| Revenue Modeled | number | 123 | Modeled revenue based on data analysis, if applicable. |
| <custom_action> Modeled | number | 123 | Modeled count of the custom event. Header is “geoGrouping is set. |
| Promo codes | number | 123 | Number of times promo codes associated with the ad were used, if applicable. |
| Clicks | number | 123 | How many times link was clicked. |
| Campaign ID | string | some-campaign-id | Identifier for the advertising campaign. |
| Campaign Internal ID | string | mycampaign | Podscribe campaign lookup_name. |
| Podscribe Campaign ID | string | 3105cc60-3970-11f1-a827-67ac2fdfebc6 | Unique Podscribe campaign request ID. |
| Publisher ID | string | 123 | Podscribe publisher ID. |
| Product | string | some-product | The product name. |
| Initiative | string | some-initiative | The initiative name. |
| Business Line | string | some-business-line | The business line name. |
| Rumble Impressions | number | 123 | Number of Rumble impressions, if applicable. |
| Spotify Video Impressions | number | 123 | Number of Spotify video impressions, if applicable. |
| Episode GUID | string | episode-guid | Guid of the episode |
| Episode ID | number | 123 | Podscribe ID of the episode, if applicable. |
| Campaign Promo | string | SALE20 | A string value representing a promotional code associated with a campaign |
| Campaign Geo | string | United States | Name of the campaign country |
| Incrementality Source | string | Synthetic - Channel | Provenance of the row’s incrementality values. Possible values: “SmartServe”, “SmartServe (PSA)”, “SmartServe (Holdout)”, “Synthetic - Campaign”, or “Synthetic - Channel”. Excluded by default; explicitly add this field and enable showIncrementalResults. Not available with geoGrouping. |
| Campaign Start Date | string | 2015-03-19 | Campaign start date in the format YYYY-mm-DD |
| Campaign End Date | string | 2015-03-19 | Campaign end date in the format YYYY-mm-DD |
| Campaign Expected Date | string | 2015-03-19 | Campaign expected date in the format YYYY-mm-DD |
| Campaign Spend | number | 5000 | Booked cost of the campaign flight, or Podscribe’s estimate when no rate is set. Blank for flights priced by CPM. Unlike Spend, this is planned rather than delivered. |
| Expected Impressions | number | 250000 | Number of impressions the campaign flight was booked to deliver, as opposed to the delivered impression columns. |
| Adswizz Campaign ID | string | 12345 | Adswizz campaign ID from pixel params (Adswizz platforms: adswizz, streaming_adswizz, adswizz_ron, streaming_adswizz_simple). Only populated when the column is requested and impressions were served via Adswizz. |
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Exact CSV column header names to include, in order. If omitted, all CSV columns not excluded by default for the resolved report configuration are included. Allowed values list all built-in static non-incrementality columns plus the opt-in “Incrementality Source” column. Incrementality columns are controlled by showIncrementalResults and incrementalDisplayType. “Show ID” is excluded by default except for advertisers that previously had it enabled; request it explicitly through fields. “Incrementality Source” is excluded by default, must be explicitly requested, and is not available when geoGrouping is provided. Advertiser-specific custom action columns (<custom_action> and <custom_action> Modeled) may also be available, including when geoGrouping is set. Mapped custom actions are excluded by default unless listed here. Custom-action incrementality columns follow showIncrementalResults and incrementalDisplayType. “Geo” is available when geoGrouping is provided. “Country” is available when geoGrouping is provided. “DMA Code” is available when geoGrouping is "DMA".
Object to customize column headers in the CSV output (keys are default header names).
object
Example
{ "Day": "timestamp", "Publish Date": "episode_upload"}Object to setup the formatting of CSV output.
object
Smart-format as currency, percentage, or comma-separated values for readability.
Include a report summary at the top of the report, featuring the Report Title, Advertiser, Publisher, and Dates
Total all columns at the bottom of the report. Total reach will be queried separately.
Example
{ "numberFormatting": true, "summary": true}Optional display name for the generated report. Shown in the Reports UI. Ignored when an identical cached report is reused; pass a new request (or wait for cache expiry) to apply a new name.
Start date timestamp (e.g., “2023-10-10”). Default is 3 months ago.
End date timestamp (e.g., “2023-10-10”). Default is one week forward.
List of advertiser names. Default is all user advertisers.
If true, the audio conversion rate for simulcast buys will be applied to the YouTube views of the corresponding YouTube ad. Default is true.
If true, the audio conversion rate for simulcast buys will be applied to the Rumble views of the corresponding Rumble ad. Default is false.
If true, the audio conversion rate for simulcast buys will be applied to the Spotify video views of the corresponding Spotify video ad. Default is false.
Model Conversions For YouTube weight. Default is 1. When useSettingsProfiles is true, can be overridden by the advertiser’s settings profile.
Model Conversions For Rumble weight. Default is 1. When useSettingsProfiles is true, can be overridden by the advertiser’s settings profile.
Model Conversions For Spotify Video weight. Default is 1. When useSettingsProfiles is true, can be overridden by the advertiser’s settings profile.
If false (default), spend is not calculated for:
- YouTube-only campaigns
- Simulcast campaigns with YouTube views only
We cannot model YouTube performance without RSS impressions.
Determines how spend is applied for episodic ad buys.
If enabled (default), spend is applied on the ad’s publish date.
If disabled, spend is prorated based on impression delivery over the first 30 days of baked-in campaigns.
Enables the use of settings profiles for the request.
When set to true, the request will use the settings profile associated with the selected advertiser.
Any settings from the profile can still be overridden by explicitly provided request parameters.
Days between converted_at and touched_at. Default is 30.
Days between converted_at and touched_at for streaming. Default is 14.
Days between converted_at and touched_at for SAI. Default is 14.
Attribution model. Default is multi_timedecay.
Device-graph attribution preset, matching the Device Graph Usage control in the UI.
Omitted: the default preset is resolved per advertiser. Most advertisers default to any; a small number are configured differently.
Expands into the internal device-graph filters, including any advertiser-specific model version.
Referrers to exclude. Default: [“email”, “facebook”, “tiktok”, “instagram”, “twitter”].
UTM mediums to exclude. Default: [“email”, “facebook”, “fb”, “tiktok”, “sms”, “social”, “klaviyo”, “youtube”, “instagram”, “ig”].
UTM sources to exclude. Default: [“email”, “facebook”, “fb”, “tiktok”, “twitter”, “klaviyo”, “youtube”, “instagram”, “ig”].
If true, the results will exclude prior customers.
If true, the results will exclude prior visitors.
If true, incremental columns are available in the output. “Incrementality Source” remains excluded by default and must be explicitly requested through fields.
If true, incremental columns will be included in the output. Default is channel
If true, the results will only include conversions from impressions in this time range (strict when timeRangeConvWithWindow is omitted or false).
Used with timeRangeConv. If true, only impressions inside the selected report date range are eligible and attributed conversions extend through the configured conversion window after the report end date.
Group impressions by day, week, month or without grouping if “all” is passed. Default is day.
Group impressions by geo. Options: “country”, “zip”, “region”, “DMA”. Default is null. Note: When “geoGrouping” is used, YouTube modeling will be disabled because YouTube views cannot be attributed to a specific location. “Incrementality Source” is not available for geo-grouped reports.
Include revenue from custom events where order_value is non-zero.
The day of the week to start the week. Defaults to the user’s settings; if not set, defaults to ‘Sunday’.
If true, aggregate episodic buy rows per show (one row per show instead of per episode). Default is false.
Filter campaigns by tags (same as UI reporting campaign tags filter).
If true, exclude campaigns matching campaignTags instead of including them.
If false, disable public/public-space IP modeling so results are based on YouTube only. Matches the “Model Public Space IPs” toggle in the advertiser dashboard. If omitted, defaults to enabled; if useSettingsProfiles is true and a single advertiser is given, the advertiser’s settings profile can still override this default.
If true, include offline modeling. If omitted, defaults to enabled; if useSettingsProfiles is true and a single advertiser is given, the advertiser’s settings profile can still override this default.
Responses
Section titled “Responses”OK
object
Examplegenerated
{ "id": "example", "status": "example", "url": "example"}Invalid data
Unexpected error.
object
Nodejs Error
object
Examplegenerated
{ "message": {}}