Reporting#

See how an AI assistant can help with reporting in Brandwave, including example prompts and the details it may ask for.

Using your AI assistant

Connect to the Brandwave MCP server, then ask your AI assistant in natural language. It will choose the right Brandwave task and ask for any details it needs.

Get organization metrics#

Fetch organization-level metrics including total costs, impressions, social engagement, delivery coverage, and denominator-aware CPM and Social CPE.

Tool name: get_organization_metrics. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How is my organization performing this month?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.

What you'll get back#

Returns { data, _meta } with the result.

Get organization metrics history#

Fetch organization metrics over time with a configurable lookback window.

Tool name: get_organization_metrics_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me how my organization metrics have trended over time.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
daysBackintegerNumber of days of history to return (1-365).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get analytics history#

Fetch daily Google Analytics site metrics (sessions, users, page views) and success-metric event counts for a date range, zero-filled for days without data.

Tool name: get_analytics_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this analytics history.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
startDatestringRequiredFirst day of the range (YYYY-MM-DD, inclusive).
endDatestringRequiredLast day of the range (YYYY-MM-DD, inclusive).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get spend history#

Fetch daily recorded marketing spend and a running cumulative total for a date range. Each cost is attributed to the day its activity ran (publish date for social content, start date for other channels) and days without spend are zero-filled, so budget and cost read alongside traffic and brand signals on one timeline.

Tool name: get_spend_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this spend history.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
startDatestringRequiredFirst day of the range (YYYY-MM-DD, inclusive).
endDatestringRequiredLast day of the range (YYYY-MM-DD, inclusive).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get HDYHAU evidence#

Retrieve a summary of GA4 How Did You Hear About Us (HDYHAU) custom-dimension values for a date range, including raw responses, normalized source categories, response coverage, creator-marketing relevance, data-quality flags, and a daily evidence timeline. This does not assign conversions to creators or campaigns.

Tool name: get_hdyhau_evidence. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this hdyhau evidence.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
startDatestringRequiredFirst day of the range (YYYY-MM-DD, inclusive).
endDatestringRequiredLast day of the range (YYYY-MM-DD, inclusive).

What you'll get back#

Returns { data, _meta } with the result.

Upsert HDYHAU mapping#

Create or update a reusable organization-specific mapping that normalizes one raw GA4 HDYHAU response value for a dimension API name into a source label and category for future reporting. This changes classification only and does not assign attribution.

Tool name: upsert_hdyhau_mapping. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Upsert HDYHAU mapping for my organization.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
dimensionApiNamestringRequired
rawValuestringRequired
normalizedValuestringRequired
category'creator' | 'organic_social' | 'broadcast' | 'out_of_home' | 'print' | 'podcast' | 'search' | 'referral' | 'paid' | 'events' | 'other' | 'unknown'RequiredNormalized HDYHAU source category.

What you'll get back#

Returns { data, _meta } with the result.

Get direct signal evidence#

Retrieve directly observed GA4 promo-code and manually tagged UTM-link evidence for a date range, including sessions, daily users, selected success outcomes, explicit creator/campaign/activity mappings, general referral-channel buckets (e.g. Facebook, Google organic, an AI assistant) with a per-bucket traffic summary, and zero-filled timeline data. This reports observed evidence and does not infer attribution.

Tool name: get_direct_signal_evidence. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this direct signal evidence.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
startDatestringRequiredFirst day of the range (YYYY-MM-DD, inclusive).
endDatestringRequiredLast day of the range (YYYY-MM-DD, inclusive).

What you'll get back#

Returns { data, _meta } with the result.

Upsert direct signal mapping#

Update one discovered GA4 promo code or manually tagged UTM link by mapping it to exactly one Brandwave creator, campaign, or activity, grouping it under one general referral-channel bucket (e.g. Facebook, Google organic, an AI assistant) when it cannot be tied to a specific entity, or removing its existing mapping. The association is mutually exclusive, applies to all observed sessions, users, and outcomes for that signal, and does not infer causal attribution.

Tool name: upsert_direct_signal_mapping. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Upsert direct signal mapping for my organization.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
signalIdstring (UUID)RequiredDiscovered GA4 direct-signal identifier.
associationunknown | nullRequiredExactly one association - a Brandwave creator, campaign, or activity, or a general referral-channel bucket - or null to remove the mapping.

What you'll get back#

Returns { data, _meta } with the result.

Set direct signal ignored#

Ignore one discovered GA4 promo code or manually tagged UTM link as noise, or restore a previously ignored one. Ignored signals are hidden from the default reporting view and excluded from its headline counts, but retain their observed sessions, users, and outcomes and can be restored at any time. This changes triage state only and does not infer attribution.

Tool name: set_direct_signal_ignored. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Set direct signal ignored for my organization.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
signalIdstring (UUID)RequiredDiscovered GA4 direct-signal identifier.
ignoredbooleanRequiredTrue to ignore the signal as noise, false to restore it for review.

What you'll get back#

Returns { data, _meta } with the result.

Get campaign metrics#

Fetch metrics for a single campaign including ISO currency, budget, cost, impressions, social engagement, delivery coverage, denominator-aware CPM and Social CPE, freshness, provenance, and data-quality warnings.

Tool name: get_campaign_metrics. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How is this campaign performing?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
campaignIdstring (UUID)RequiredCampaign identifier to get metrics for.

What you'll get back#

Returns { data, _meta } with the result.

Get campaign metrics history#

Fetch campaign metrics over time with a configurable lookback window.

Tool name: get_campaign_metrics_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me this campaign’s performance over time.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
campaignIdstring (UUID)RequiredCampaign identifier.
daysBackintegerNumber of days of history to return (1-365).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get creator metrics#

Fetch metrics for a single creator including activity counts, follower totals, impressions, engagement, cost, CPM, and CPE.

Tool name: get_creator_metrics. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How is this creator performing?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
creatorIdstring (UUID)RequiredCreator identifier to get metrics for.

What you'll get back#

Returns { data, _meta } with the result.

Get creator metrics history#

Fetch a creator's follower count, impressions, engagement, cost, CPM, and CPE over time with a configurable lookback window.

Tool name: get_creator_metrics_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me this creator’s performance over time.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
creatorIdstring (UUID)RequiredCreator identifier.
daysBackintegerNumber of days of history to return (1-365).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get activity metrics#

Fetch metrics for a single activity including impressions, engagement, cost, CPM, and CPE.

Tool name: get_activity_metrics. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How is this activity performing?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
activityIdstring (UUID)RequiredActivity identifier to get metrics for.

What you'll get back#

Returns { data, _meta } with the result.

Get activity metrics history#

Fetch an activity's metrics over time with a configurable lookback window.

Tool name: get_activity_metrics_history. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me this activity’s performance over time.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
activityIdstring (UUID)RequiredActivity identifier.
daysBackintegerNumber of days of history to return (1-365).

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get campaign portfolio#

Retrieve decision-ready portfolio health as the preferred starting point for broad campaign-health questions, including active, scheduled, completed, draft, and attention counts; budget and spend totals; brief completeness; evidence quality; priorities; and recommended next actions.

Tool name: get_campaign_portfolio. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this campaign portfolio.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
daysBackintegerRequiredTrailing window used for campaign changes and portfolio findings (1-365).

What you'll get back#

Returns { data, _meta } with the result.

Compare campaign performance#

Retrieve the preferred comparison workflow for selected campaigns over a trailing period, including current values, historical changes, denominator-aware efficiency metrics, ISO currency, evidence quality, and plain-language findings.

Tool name: compare_campaign_performance. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Compare campaign performance for my organization.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
campaignIdsArray<string (UUID)>RequiredCampaign identifiers to compare.
daysBackintegerRequiredTrailing comparison window (1-365 days).

What you'll get back#

Returns { data, _meta } with the result.

Get marketing performance brief#

Create the preferred stakeholder-ready executive or practitioner brief for a trailing period with a headline, highlights, risks, decisions required, recommended actions, campaign evidence, ISO currency, and measurement limitations.

Tool name: get_marketing_performance_brief. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this marketing performance brief.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
daysBackintegerRequiredTrailing reporting window (1-365 days).
audience'executive' | 'practitioner'RequiredIntended audience and level of operational detail for the brief.

What you'll get back#

Returns { data, _meta } with the result.

Get marketing recommendations#

Retrieve the preferred next-decision workflow with deterministic evidence-backed recommendations about what to investigate, maintain, or consider, including priority, confidence, rationale, supporting evidence, and campaign links.

Tool name: get_marketing_recommendations. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this marketing recommendations.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.

What you'll get back#

Returns { data, _meta } with the result.

Get campaign readiness#

Assess whether a campaign is ready to launch by reviewing its summary, objective, audience, desired outcomes, planned channels, dates, owner, budget, and linked activities.

Tool name: get_campaign_readiness. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this campaign readiness.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
campaignIdstring (UUID)RequiredCampaign identifier to assess before launch.

What you'll get back#

Returns { data, _meta } with the result.

Get campaign closeout#

Generate a campaign closeout or review with recorded performance, ISO currency, evidence quality, limitations, and recommended follow-up actions without claiming causal attribution.

Tool name: get_campaign_closeout. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this campaign closeout.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
campaignIdstring (UUID)RequiredCampaign identifier to summarize for closeout or review.

What you'll get back#

Returns { data, _meta } with the result.