By Campaign & Show & Day/Week/Month
const url = 'https://backend.podscribe.ai/api/public/campaign-show-impressions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"formatting":{"numberFormatting":true,"summary":true},"name":"example","advertisers":["example"],"startDate":null,"endDate":null,"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","Month"],"fieldMapping":null,"ytSimulcastConv":true,"ytSimulcastConvWeight":1,"rSimulcastConvWeight":1,"svSimulcastConvWeight":1,"includeYtSpend":false,"attributionWindow":30,"attributionStreamingWindow":14,"attributionModel":"first","attributionPreset":"any","excludeReferrers":["email","facebook","tiktok","instagram","twitter"],"excludeUtmMediums":["email","facebook","fb","tiktok","sms","social","klaviyo","youtube","instagram","ig"],"excludeUtmSources":["email","facebook","fb","tiktok","twitter","klaviyo","youtube","instagram","ig"],"excludePriorCustomers":false,"excludePriorVisitors":false,"spendOnPublishDate":true,"useSettingsProfiles":false,"timeRangeConv":false,"timeRangeConvWithWindow":false,"timeGrouping":"day","showIncrementalResults":true,"incrementalDisplayType":"channel","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/campaign-show-impressions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "formatting": { "numberFormatting": true, "summary": true }, "name": "example", "advertisers": [ "example" ], "startDate": null, "endDate": null, "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", "Month" ], "fieldMapping": null, "ytSimulcastConv": true, "ytSimulcastConvWeight": 1, "rSimulcastConvWeight": 1, "svSimulcastConvWeight": 1, "includeYtSpend": false, "attributionWindow": 30, "attributionStreamingWindow": 14, "attributionModel": "first", "attributionPreset": "any", "excludeReferrers": [ "email", "facebook", "tiktok", "instagram", "twitter" ], "excludeUtmMediums": [ "email", "facebook", "fb", "tiktok", "sms", "social", "klaviyo", "youtube", "instagram", "ig" ], "excludeUtmSources": [ "email", "facebook", "fb", "tiktok", "twitter", "klaviyo", "youtube", "instagram", "ig" ], "excludePriorCustomers": false, "excludePriorVisitors": false, "spendOnPublishDate": true, "useSettingsProfiles": false, "timeRangeConv": false, "timeRangeConvWithWindow": false, "timeGrouping": "day", "showIncrementalResults": true, "incrementalDisplayType": "channel", "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 |
|---|---|---|---|
| Month | string | 2023-12-01 | The date of the first day of the month in the format YYYY-mm-DD. |
| 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. |
| 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. |
| 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 |
| 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
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.
A single-item array containing the advertiser’s name. Please include only one advertiser in this list.
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.
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. 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. Advertiser-specific custom action columns may also be available.
Parameter to customize column headers in the CSV output (keys are default header names).
object
Example
{ "Day": "timestamp", "Publish Date": "episode_upload"}If checked, the audio conversion rate for simulcast buys will be applied to the YouTube views of the corresponding YouTube ad, default true.
Model Conversions For YouTube weight. Default is 1. When useSettingsProfiles is true, same priority as attributionModel.
Model Conversions For Rumble weight. Default is 1. When useSettingsProfiles is true, same priority as attributionModel.
Model Conversions For Spotify Video weight. Default is 1. When useSettingsProfiles is true, same priority as attributionModel.
If disabled (default), spend is not calculated for:
- YouTube-only campaigns, and
- Simulcast campaigns with YouTube views only. We cannot model YouTube performance without RSS impressions.
Days between converted_at and touched_at, default 30.
Days between converted_at and touched_at for streaming, default 14
Attribution model, default: 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".
If you need to avoid excluding any referrers, please pass the empty array.
UTM mediums to exclude.
Default: "email,facebook,fb,tiktok,sms,social,klaviyo,youtube,instagram,ig".
If you need to avoid excluding any UTM mediums, please pass the empty array.
UTM sources to exclude.
Default: "email,facebook,fb,tiktok,twitter,klaviyo,youtube,instagram,ig".
If you need to avoid excluding any UTM sources, please pass the empty array.
If checked, the results will exclude prior customers, default false.
If checked, the results will exclude prior visitors, default false.
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.
If checked, the results will only include conversions from impressions in this time range (strict when timeRangeConvWithWindow is omitted or false). Default 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, or month, default day.
If true, incremental columns will be included in the output.
If true, incremental columns will be included in the output. Default is channel
Include revenue from custom events where order_value is non-zero.
The day of the week to start the week. Default is user settings, when not set - “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": {}}