Get Brand Intelligence Own Brand Insights Route
The n=1 Insights section on Analyze My Ads, for the caller’s OWN brand.
GET, not POST: unlike the group-insights endpoint there is no
client-curated advertiser set to carry. The subject is resolved
server-side from the caller’s own Brand by domain match, so no
caller-supplied advertiser id ever reaches the aggregation — which is
also why no visible_advertiser_ids narrowing is needed here.
ADR 0021: that resolution goes through
review_advertiser_identity.owned_brand_advertiser_lookup_statement
and never through brand_intel_tracked_group_members — see
brand_digest_service.get_own_brand_insights.
platform narrows which of the brand’s own creatives are counted, and a
caller that renders this beneath a single-platform feed must send it. The
resolved advertiser is a canonical identity spanning every platform the
brand advertises on, so WITHOUT it a Google-scoped surface would describe
the brand’s Meta ads too. Omitting it keeps the all-platform behaviour
Paid Media’s section already has, so no existing caller changes.
Flags: no new flag (the rollout plan is explicit that this surface needs none — it is new UI over already-shipped computation, with no new acquisition and no new LLM call). It composes the two existing gates it actually reads through: the BI master switch and the shared group-insights switch, since this IS the group-insights pipeline.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
200Response
Successful Response
Paid Media > Analyze My Ads > the MY BRAND (n=1) Insights section.
The SAME single-advertiser aggregation the brand digest already runs
(brand_digest_service.get_brand_digest_insights over
group_insights_service.build_group_insights), pointed at the reader's
OWN advertiser instead of a tracked competitor's.
The subject is resolved server-side from the caller's own Brand via
review_advertiser_identity.owned_brand_advertiser_lookup_statement
(the domain match), NEVER from brand_intel_tracked_group_members —
ADR 0021 reserves that table for competitor cohort membership, and
reading it here would pull global ad-library cohort scope into a
per-brand surface.
insights is the untouched group-insights payload for a one-member
set, so the section reuses the same primitives the group INSIGHTS tab
does. Only the n=1-meaningful reads are rendered from it — format /
platform mix, longevity, Top Hooks, launch cadence. The comparison-shaped
reads (whitespace matrix, quadrant, cohort read) are structurally
cohort features and have no meaning over one advertiser.
measured, not_resolved, no_ads, below_minimum