Skip to content

Lag Report

POST
/api/public/reports/lag
curl --request POST \
--url https://backend.podscribe.ai/api/public/reports/lag \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "groupKey": "mediaType", "actions": [ "example" ], "startDate": "2026-04-15", "endDate": "2026-04-15", "advertiser": [], "ytSimulcastConv": true, "rSimulcastConv": true, "svSimulcastConv": true, "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, "useNonPurchasesRevenue": true, "campaignTags": [ "example" ], "campaignTagsExclude": false }'

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
Action string purchase Target action, one of: purchase/visitor/signup
Object ID string podcast ID of the object as resulted by applying the provided groupKey
Day 1…N number 3.5 Which share of the total actions occurred on that day.
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
<= 255 characters
groupKey
required

Specifies the field to group the results by.

string
Allowed values: mediaType publisher campaigns series genres
actions

List of target actions to include in the report. The most popular actions are: - purchase - visitor - signup - install - lead Other actions can be specified as well if they are sent by the advertiser. Empty list means all actions.

Array<string>
startDate

Start date ISO date (e.g., “2023-10-10”) or timestamp. Default is 3 months ago.

string format: date
endDate

End date ISO date (e.g., “2023-10-10”) or timestamp. Default is one week forward.

string format: date
advertiser
required

List of advertiser names. Default is all user advertisers.

Array<string>
default:
ytSimulcastConv

If true, the audio conversion rate for simulcast buys will be applied to the YouTube views of the corresponding YouTube ad. Default is true.

boolean
rSimulcastConv

If true, the audio conversion rate for simulcast buys will be applied to the Rumble views of the corresponding Rumble ad. Default is false.

boolean
svSimulcastConv

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.

boolean
includeYtSpend

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.
boolean
spendOnPublishDate

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.

boolean
default: true
useSettingsProfiles

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.

boolean
attributionWindow

Days between converted_at and touched_at. Default is 30.

number
attributionStreamingWindow

Days between converted_at and touched_at for streaming. Default is 14.

number
attributionSaiWindow

Days between converted_at and touched_at for SAI. Default is 14.

number
attributionModel

Attribution model. Default is multi_timedecay.

string
Allowed values: first last multi_linear multi_timedecay
attributionPreset

Device-graph attribution preset, matching the Device Graph Usage control in the UI. Omitted: the default preset is resolved from the first entry in advertisers. Most advertisers default to any; a small number are configured differently. Expands into the internal device-graph filters, including any advertiser-specific model version.

string
default: any
Allowed values: any all none
excludeReferrers

Referrers to exclude. Default: [“email”, “facebook”, “tiktok”, “instagram”, “twitter”].

Array<string>
excludeUtmMediums

UTM mediums to exclude. Default: [“email”, “facebook”, “fb”, “tiktok”, “sms”, “social”, “klaviyo”, “youtube”, “instagram”, “ig”].

Array<string>
excludeUtmSources

UTM sources to exclude. Default: [“email”, “facebook”, “fb”, “tiktok”, “twitter”, “klaviyo”, “youtube”, “instagram”, “ig”].

Array<string>
excludePriorCustomers

If true, the results will exclude prior customers.

boolean
excludePriorVisitors

If true, the results will exclude prior visitors.

boolean
showIncrementalResults

If true, incremental columns will be included in the output.

boolean
incrementalDisplayType

If true, incremental columns will be included in the output. Default is channel

string
Allowed values: channel campaign
timeRangeConv

If true, the results will only include conversions from impressions in this time range (strict when timeRangeConvWithWindow is omitted or false).

boolean
timeRangeConvWithWindow

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.

boolean
useNonPurchasesRevenue

Include revenue from custom events where order_value is non-zero.

boolean
campaignTags

Filter campaigns by tags (same as UI reporting campaign tags filter).

Array<string>
campaignTagsExclude

If true, exclude campaigns matching campaignTags instead of including them.

boolean

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": {}
}