Get campaign analytics
Returns performance analytics for a whole campaign in one call: summary metrics, a daily timeline over the requested date range (summed across the campaign's ads), and optional demographic breakdowns. Breakdowns are fetched live from Meta at the campaign level (one call per dimension, no per-ad fan-out), so an agency dashboard gets campaign-level age/gender/etc. without summing thousands of per-ad reads. campaignId is the platform campaign id; pass platform when a campaign id could be ambiguous across platforms. If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max. Google adds searchImpressionShare, searchBudgetLostImpressionShare, searchRankLostImpressionShare, searchTopImpressionShare and searchAbsoluteTopImpressionShare under analytics.summary for the requested inclusive range. These ratios are queried together without daily segmentation and cached for 10 minutes. Unavailable values are null. analytics.impressionShareCache reports cachedAt and stale independently of synced metrics.
Path parameters
Platform campaign id (platformCampaignId).
Query parameters
Disambiguate when the campaign id exists across platforms (e.g. facebook, instagram).
Start of date range (YYYY-MM-DD). Defaults to 90 days ago.
End of date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
Comma-separated breakdown dimensions.
Meta: age, gender, country, publisher_platform, device_platform, region, platform_position, impression_device, video_asset, image_asset, body_asset, title_asset.
LinkedIn (firmographics): job_title, job_function, seniority, industry, company, company_size, country, region. Rows carry the raw pivot value plus a resolved name. LinkedIn serves these aggregated over the whole range, delays the data 12-24h, and omits segments with fewer than 3 events.
Response
Campaign analytics
Example response
{
"analytics": {
"summary": {
"actions": {
"link_click": 160,
"post_engagement": 300,
"offsite_conversion.fb_pixel_purchase": 42
},
"actionValues": {
"offsite_conversion.fb_pixel_purchase": 2456.78,
"offsite_conversion.fb_pixel_add_to_cart": 980.5
},
"costPerAction": {
"link_click": 0.1052,
"offsite_conversion.fb_pixel_purchase": 4.0114
}
},
"daily": [
{
"actions": {
"link_click": 160,
"post_engagement": 300,
"offsite_conversion.fb_pixel_purchase": 42
},
"actionValues": {
"offsite_conversion.fb_pixel_purchase": 2456.78,
"offsite_conversion.fb_pixel_add_to_cart": 980.5
},
"costPerAction": {
"link_click": 0.1052,
"offsite_conversion.fb_pixel_purchase": 4.0114
}
}
]
}
}Changes
Changed in 7 of the 56 revisions of this API.37033
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
- ▲
the
/////response's property type changed fromobjectto no type for statusresponse-property-type-changed
- ▲
the
/response's property type changed fromobjectto no type for statusresponse-property-type-changed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//////from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ○
added the non-success response with the status
response-non-success-status-added
- ○
added the optional property
/////to the response with the statusresponse-optional-property-added
- ○
added the optional property
/////to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added
subschema #2to the/////response propertyallOflist for the response statusresponse-property-all-of-added
- ○
added
subschema #2to the/response propertyallOflist for the response statusresponse-property-all-of-added
- ▲
- ○
added the optional property
///////////to the response with the statusresponse-optional-property-added
- ○
added the optional property
//////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ▲
the
response property const valuetruewas removed for the statusresponse-property-const-removed
- ▲
- ○
added the media type
application/jsonfor the response with the statusresponse-media-type-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
///////to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○