Skip to content

Marketing team playbook

You own paid media and analytics. This playbook covers auditing live (and past) ad campaigns across Google Ads and Meta, pulling GA4 + Search Console, and reading behaviour data — everything read-only, so you can report without touching a campaign.

  • Run Google Ads reports with any GAQL query (campaigns, ad groups, keywords, search terms, cost, conversions).
  • Pull Meta (Facebook / Instagram) Ads insights (spend, CTR, CPC, actions) at account / campaign / ad-set / ad level, with breakdowns.
  • Read GA4 traffic and Search Console query/page performance.
  • Read Microsoft Clarity engagement + heatmap metrics.
  • Audit funnels, opt-in rates and A2P messaging compliance on GoHighLevel.
  1. A token scoped to the client’s sites.
  2. Google Ads: the site’s bound Google user has connected Google with the adwords scope, the Worker has a GOOGLE_ADS_DEVELOPER_TOKEN, and the site carries google_ads_customer_id (a leaf ad account, not a manager/MCC — plus google_ads_login_customer_id when reached via an MCC).
  3. Meta Ads: the Worker has META_APP_ID + META_APP_SECRET, the site’s bound user has connected Meta at /admin/users, and the site carries meta_ad_account_id.
  4. GA4 / Search Console: Google connected with Analytics + Search Console scopes; site carries ga4_property_id / gsc_site_url.
  5. Clarity: site carries clarity_project_id + Data Export token.
FeatureTools
Google Adsget_google_ads_report (GAQL, cost in micros)
Meta Ads insightsget_meta_ads_insights
Meta account structurelist_meta_ad_accounts, get_meta_ad_account, list_meta_campaigns, list_meta_adsets, list_meta_ads
GA4get_ga4_report
Search Consoleget_gsc_search_analytics
Clarityclarity_get_metrics, clarity_get_heatmap_metrics, clarity_get_historical_metrics
Funnel / opt-in / A2Pghl_get_funnel_stats, ghl_compute_opt_in_rate, ghl_get_campaign_a2p_stats
Blended SEO reportgenerate_seo_report
For "kleentech", run a Google Ads report for the last 30 days: campaigns by
cost with clicks, conversions, CPC and CTR. Then a second query for keywords
that spent money but got 0 conversions. Flag what I should pause.

Two get_google_ads_report calls. Useful GAQL to hand it:

SELECT campaign.name, metrics.cost_micros, metrics.clicks,
metrics.conversions, metrics.average_cpc, metrics.ctr
FROM campaign WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC