OpenapiV1AnalyticsAd performance
Get per-ad funnel performance
Alpha API - This endpoint is in active development. Schema may change without notice.
One row per AD — campaign, ad set and ad — with the funnel an ad buyer reads left
to right: leads, qualified, disqualified, booked, attended, closed, and both
revenue measures. Finer than /campaigns, which stops at campaign.
Three things it deliberately does not do:
- No spend, so no ROAS or CAC. Aura stores no ad cost, so those are not computable here. Ranking on revenue and calling it return on ad spend invents the denominator.
- Ad identity rides on UTM columns by convention (
utm_campaign,utm_term,utm_content). A call whose link omitted them is absent entirely rather than bucketed as unknown, so totals here can be lower than/dashboard. Whenadandad_setare null across every row, these are campaigns, not ads. - Two window anchors in one row. Lead counts are windowed on when the LEAD
was created; call counts on when the CALL was scheduled. So
lead_to_book_ratedivides one population by another and can exceed 100, andbooked_callshere is not comparable tobooked_callson/campaigns.
Query Parameters
start_date?string
ISO 8601 start date (defaults to all time)
end_date?string
ISO 8601 end date (defaults to now)
Response Body
application/json
application/json
application/json
curl -X GET "https://api.aura-app.ai/v1/analytics/ad-performance"{
"data": [
{
"ad": "video-a",
"ad_set": "lookalike-1pct",
"attended_calls": 18,
"book_to_attend_rate": 60,
"booked_calls": 30,
"booked_revenue": 12000,
"campaign": "spring-2026",
"close_rate": 33.3,
"closed_calls": 6,
"collected_revenue": 9500,
"disqualified_leads": 20,
"lead_to_book_rate": 25,
"leads_generated": 120,
"medium": "cpc",
"meta_ad_id": "1234567890",
"qualified_leads": 100,
"source": "facebook"
}
],
"success": true
}{
"code": "DATABASE_ERROR",
"error": "Failed to fetch analytics",
"requestId": "req_abc123",
"success": false
}{
"code": "DATABASE_ERROR",
"error": "Failed to fetch analytics",
"requestId": "req_abc123",
"success": false
}