By Campaign Reporting
POST
/api/public/campaigns-performance
const url = 'https://backend.podscribe.ai/api/public/campaigns-performance';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","startDate":"2023-10-10","endDate":"2023-10-10"}'};
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/campaigns-performance \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "startDate": "2023-10-10", "endDate": "2023-10-10" }'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 |
|---|---|---|---|
| Advertiser | string | Coca-Cola | Name of the advertising company |
| Publisher | string | Spotify | Name of the publishing platform |
| Campaign | string | Summer Promo | Name of the advertising campaign |
| Podcast | string | Tech Talk | Name of the podcast |
| Tags | string | Tech, Sports | Tags associated with the campaign |
| Geo | string | US, UK | Geographical location targeted by the campaign |
| Start date | string | 4/8/2024 | Start date of the campaign |
| End date | string | 4/15/2024 | End date of the campaign |
| Expected | string | 4/8/2024 | Date when the media content was published |
| Category | string | Baked-in | Category of the campaign |
| Unit | string | Mid | Type of advertising unit |
| Expected Impressions | number | 250000 | Expected number of impressions |
| Spend | number | 5882 | Amount spent on the campaign |
| CPM | string | 631 $ | Cost per mille (thousand) impressions |
| Ads | number | 12 | Number of ads served |
| Status | string | WRONG GEO, STALE READ | Column indicating the status and error flags. |
| Impressions Source | string | Prefix | Source used for impression counts |
| Impressions | number | 126301 | Number of impressions |
| Podcast Downloads | number | 115752 | Number of podcast and streaming impressions |
| YouTube Views | number | 10549 | Number of YouTube views |
| Rumble Views | number | 9000 | Rumble view impressions |
| 7d Impressions | number | 10000 | Impressions counted within 7 days |
| 15d Impressions | number | 20000 | Impressions counted within 15 days |
| 30d Impressions | number | 30000 | Impressions counted within 30 days |
| 45d Impressions | number | 40000 | Impressions counted within 45 days |
| 60d Impressions | number | 50000 | Impressions counted within 60 days |
| Reach | number | 112322 | Reach of the campaign |
| Freq. | number | 1.0 | Frequency of the campaign |
| Clicks | number | 321 | Number of clicks |
| Clicks % | number | 0.003 | Click rate |
| Cost Per Click | number | 18.32 | Spend divided by clicks |
| Visitors | number | 112.94 | Number of visitors reached |
| Visitor % | number | 0.083 % | Percentage of visitors reached |
| Cost Per Visitor | number | 52.08 | Spend divided by visitors |
| Visits | number | 588 | Number of visits |
| Visit % | number | 0.000 % | Percentage of visits |
| Cost Per Visit | number | 10.0 | Spend divided by visits |
| Installs | number | 0.16 | Number of app installs |
| Install % | number | 0.001 | Install rate |
| Cost Per Install | number | 367.63 | Spend divided by installs |
| Signups | number | 3.8 | Number of signups |
| Signup % | number | 0.003 | Signup rate |
| Cost Per Signup | number | 154.79 | Spend divided by signups |
| Leads | number | 4.2 | Number of leads generated |
| Lead % | number | 0.003 | Lead rate |
| Cost Per Lead | number | 140.05 | Spend divided by leads |
| Convs. | number | 2.3 | Number of conversions |
| Conv. % | number | 0.002 % | Conversion rate |
| Cost Per Conversion | number | 255.74 | Spend divided by conversions |
| Revenue | number | 152 | Revenue generated |
| ROAS | number | 0.02 | Return on advertising spend |
| CPA | number | 3076 | Cost per acquisition |
| Computed CPA | number | 1667 | Computed cost per acquisition |
| Filtered Resolved Status | string | Flags reflecting the status of campaign issues, with user-defined filtering. | |
| Resolved Status | string | Flags indicating the status of campaign issues. | |
| Prefix placed | bool | true | Prefix placed |
| DAI Impression Pixel | string | https://verifi.podscribe.com/… | Link provided to the ad server for data callback configuration. |
| Comments | string | Some user comments | Additional comments |
| Ad Server | string | megaphone | Ad server used |
| Downloads | string | 123 | Number of downloads |
| Cost Per Download | number | 47.82 | Spend divided by downloads |
| New Converted Devices | string | 123 | Number of new converted devices |
| New Converted Device % | number | 0.004 | New converted device rate |
| Cost Per New Converted Device | number | 47.82 | Spend divided by new converted devices |
| New Device Downloads | string | 123 | Number of new device downloads |
| Cost Per New Device Download | number | 47.82 | Spend divided by new device downloads |
| New Subscriber Downloads | number | 123 | Number of new subscriber downloads |
| New Subscribers | string | 123 | Number of new subscribers |
| New Subscribers % | number | 0.004 | New subscriber rate |
| Cost Per New Subscriber | number | 47.82 | Spend divided by new subscribers |
| % of impressions to listeners with frequency 15+ | string | 28.8 | Percentage of impressions to listeners with frequency 15+ |
| % of listeners with frequency 15+ | string | 28.5 | Percentage of listeners with frequency 15+ |
| Expected Impressions | number | 250000 | Expected number of impressions |
| Campaign Id | string | some campaign id | Identifier for the campaign |
| Synced At | string | 4/3/2024, 2:47 AM | Date and time when data was synced |
| Air Date | string | 2024-04-08 04:08:04.799000+00:00 | The date when the advertising campaign was first aired or broadcasted. |
| Airchecks | string | (JSON array) | JSON array of aircheck objects (showTitle, episodeTitle, episodeGuid, episodeLength, adTimestamp, adLength, unit, readBy, readScore, transcriptUrl). episodeGuid can be used with the episode transcript API. transcriptUrl is a direct link to the ad in the transcript. |
| Initiative | string | Spring Campaign | Campaign initiative |
| Product | string | Premium Plan | Campaign product |
| Business Line | string | Direct | Campaign business line |
| DAI Impression Pixel by Creative | string | https://verifi.podscribe.com/… | DAI impression pixel URL for the first creative |
| Bill To | string | Agency Name | Billing account name |
| Bill to Publisher | string | Publisher Name | Publisher billing name |
| Media Type | string | podcast | Media type from the campaign tracking sheet |
| Extra DAI Impression Pixel by Creative N | string | https://verifi.podscribe.com/… | Additional creative pixel columns can be included when a campaign has more creatives |
| Promo | string | SUMMER20 | Campaign promo code, if configured. |
| Vanity URL | string | https://example.com/promo | Vanity URL configured for the campaign, if provided. |
| Expected landing URL | string | https://example.com/landing | Expected landing URL after redirect, if provided. |
| UTM Source | string | spotify | UTM source configured for campaign tracking, if provided. |
| UTM Medium | string | podcast | UTM medium configured for campaign tracking, if provided. |
| Spotify Video Streams | number | 0 | Spotify Video Streams count |
| Ads (JSON) | string | [{“adId”:“…”,“episodeId”:…}] | JSON array of ad objects (adId, episodeId, episodeTitle, showTitle, publishedAt, adDuration, startTs, endTs, platform, episodeDuration, episodeUrlInFeed, placementNum, placementPercent, publicLink, transcriptLink); note: does not include advertisersBefore, advertisersAfter, or transcriptText present on the single-campaign endpoint |
| Radio Impressions | number | 5000 | Number of radio impressions, if applicable. |
| SmartServe Ad Server | string | smartserve | SmartServe ad server platform, if applicable. |
| SmartServe Creative | string | Creative A | SmartServe creative name(s), comma-separated. |
| SmartServe Creative Source URL | string | https://example.com/creative.mp4 | SmartServe creative source URL(s), comma-separated. |
| SmartServe Targeting Profile | string | Profile A | SmartServe targeting profile name. |
| SmartServe Banner Name | string | banner.png | SmartServe banner file name(s), comma-separated. |
| SmartServe Banner Source URL | string | https://example.com/banner.png | SmartServe banner source URL(s), semicolon-separated. |
| SmartServe Clickthrough URL | string | https://example.com | SmartServe campaign-level clickthrough URL. |
| SmartServe Campaign Settings (JSON) | string | {“clname”:“camp_a”} | JSON object of SmartServe campaign settings. |
| SmartServe Targeting Profile Settings (JSON) | string | {“id”:“tp_a”} | JSON object of SmartServe targeting profile settings. |
| SmartServe VAST URL | string | https://example.com/vast.xml | SmartServe VAST URL. |
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
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.
string
startDate
Start date timestamp, default is 3 months ago.
string format: date
Example
2023-10-10endDate
End date timestamp, default is one week forward.
string format: date
Example
2023-10-10Responses
Section titled “Responses”OK
Media typeapplication/json
object
id
string
status
string
url
string
Examplegenerated
{ "id": "example", "status": "example", "url": "example"}Invalid data
Unexpected error.
Media typeapplication/json
object
message
Nodejs Error
object
Examplegenerated
{ "message": {}}