Owlmetry
MCP

Ads

Rank acquisition campaigns, ad groups, keywords, and ads by lifetime USD revenue via MCP tools.

Advertising Insights rank acquisition campaigns, ad groups, keywords, and ads by lifetime USD revenue from attributed users. Aggregates app_users by attribution source and joins each user's lifetime RevenueCat revenue. Refreshed daily and on every subscription webhook. Requires a RevenueCat integration for revenue data and Apple Search Ads attribution for human-readable names.

Drill from campaigns into ad groups, then into keyword/ad leaves.

list-ad-campaigns

Rank campaigns by lifetime USD revenue from attributed users. Aggregates app_users by attribution_source + campaign and joins each user's lifetime RevenueCat revenue. Returns user_count, paying_user_count, total_revenue_usd, ARPU per campaign, sorted by revenue desc.

Pass project_id for a single project, or team_id to aggregate the best-performing campaigns across every project in a team — each row then also carries a project_id so you can tell which project owns each campaign and use it on the project-scoped drill-downs (list-ad-groups, list-ad-leaves).

ParameterTypeRequiredDescription
project_idUUIDOne ofThe project ID. Mutually exclusive with team_id
team_idUUIDOne ofTeam ID — aggregates across every project in the team
attribution_sourcestringNoDefaults to apple_search_ads (only value populated today)
app_idUUIDNoScope to users acquired into a single app (project mode only; ignored when team_id is set)
limitnumberNoMax campaigns (1-500, default 100)

list-ad-groups

Rank ad groups within a campaign by lifetime USD revenue. Same response shape as list-ad-campaigns, one level deeper.

ParameterTypeRequiredDescription
project_idUUIDYesThe project ID
campaign_idstringYesNetwork-specific campaign ID returned by list-ad-campaigns
attribution_sourcestringNoDefaults to apple_search_ads
app_idUUIDNoScope to a single app
limitnumberNoMax ad groups (1-500, default 100)

list-ad-leaves

Within a single ad group, list keyword-level and ad-level revenue rankings side-by-side. Returns both keywords and ads arrays — Apple Search Ads attributes a user to one or the other depending on whether the install came from a search keyword or an auto-driven ad placement.

ParameterTypeRequiredDescription
project_idUUIDYesThe project ID
campaign_idstringYesParent campaign ID
ad_group_idstringYesAd group ID returned by list-ad-groups
attribution_sourcestringNoDefaults to apple_search_ads
app_idUUIDNoScope to a single app
limitnumberNoMax leaves per side (1-500, default 100)

sync-ads

Trigger a manual refresh of advertising insights for one project. Fires both revenuecat_sync (refreshes lifetime revenue per user) and apple_ads_sync (resolves any unresolved ASA IDs to readable names). Admin-only. The daily cron also runs revenuecat_sync at 03:00 UTC across every project.

ParameterTypeRequiredDescription
project_idUUIDYesThe project ID

Use this after onboarding a new RevenueCat integration or to force-refresh between cron runs. Use get-job on the returned job_run_id to monitor progress.

Ready to get started?

Connect your agent via MCP or CLI and start tracking.