Sign up

Features

Google Ads spend and ROAS

On this page

See which Google Ads campaigns bring paying customers: Google's spend next to the visitors, customers and revenue MetricRaven attributes to each campaign, ad group and ad, with combined totals when Meta Ads is connected too.

Before you start

Connect Google Ads

  1. Open Settings → Integrations → Ads → Google Ads

    Choose Connect Google Ads. Website admins and owners can connect; viewers see the status.

  2. Sign in with Google and allow Google Ads access

    Google asks for access to your Google Ads data in its own consent step. MetricRaven only reads reports: it never creates, edits or pays for ads. This is separate from Search Console: connecting or disconnecting Google Ads doesn't change your Search Console connection.

  3. Choose the Google Ads account

    Accounts you reach through a manager account are listed with via manager. Each website tracks one account. MetricRaven imports the last 90 days of spend, impressions and clicks per ad and day, then syncs once a day. Sync now fetches the latest numbers.

  4. Add the final URL suffix

    See below. Visits only match a campaign when its clicks carry these tags.

  5. Open Revenue → Paid acquisition

    With more than one network connected, a switch shows All (combined spend, revenue, ROAS and cost per customer) or one network. Full table lists campaigns, ad groups and ads of every network.

Verify it works

The settings panel shows the account, its currency and timezone, and the last synced day. Click one of your own ads, then check that the visit appears on its campaign row.

Final URL suffix

In Google Ads, open Admin → Account settings → Tracking → Final URL suffix and paste:

Final URL suffix (account)
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={adgroupid}&utm_content={creative}

Google fills in the ValueTrack values on every click: {campaignid} is the campaign ID, {adgroupid} the ad group ID and {creative} the ad ID. IDs never change when you rename a campaign, so history stays matched. Auto-tagging (gclid) can stay on.

Performance Max campaigns have no ad groups or ads. Set this suffix on each Performance Max campaign (Campaign settings → Campaign URL options → Final URL suffix), which overrides the account's:

Final URL suffix (Performance Max)
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={assetgroupid}
utm_medium=cpc puts these visits in the Paid channel. MetricRaven also recognises utm_source adwords, google_ads and googleads, and the mediums ppc and paid.

How visits are matched to campaigns

  • utm_content equal to an ad ID (or a Performance Max asset group ID): that ad, its ad group and campaign.
  • utm_campaign equal to a campaign ID or name; utm_term then picks the ad group and utm_content the ad.
  • utm_term equal to an ad group ID: that ad group and its campaign.
  • Google traffic (utm_source=google with a paid medium, or a gclid, gbraid or wbraid click) whose utm_campaign contains a campaign name.

A visit tagged for another network (utm_source=facebook, an fbclid) never matches a Google campaign, even with the same campaign name. Google clicks that match no synced campaign (a click with only gclid, gbraid or wbraid, or Google tags with an unknown campaign) appear on their own line, Unattributed Google clicks, and are left out of totals, ROAS and cost per customer.

Metrics

The same as Meta Ads: spend, revenue (first touch), ROAS, customers, cost per customer, ad visitors, assisted revenue and clicks (Google's clicks are clicks to your site). Spend is metrics.cost_micros ÷ 1,000,000 in the account's currency, converted at ECB rates. Spend outside ads and asset groups (campaign types without ads) is kept as Campaign-level spend on its campaign, so totals match the account. With several networks, All adds their spend and revenue, counts each customer once, and sums ad visitors.

Google AdsMetricRaven
CampaignCampaign
Ad groupAd group (Meta: ad set)
AdAd
Performance Max asset groupAd group and ad

Currency, timezone and days

Google reports whole days in the account's timezone; days are summed the same way as Meta Ads (Last 7 days is 7 account days, today included). Each sync re-reads the last 7 days, because Google can still adjust recent spend (invalid click credits). Removed ads are imported too.

API, MCP and CLI

  • REST: GET /api/v1/stats/ads?provider=google (or provider=all for every network). See the Reports API.
  • MCP: get_ad_spend with provider: "google".
  • CLI: metricraven analytics ads --provider google.

Troubleshooting

  • No accounts listed: the Google login has no access to a Google Ads account. Ask for access in Google Ads (Admin → Access and security) or use the login of its manager account, then Reconnect Google Ads.
  • "Still limited to test accounts": MetricRaven's Google Ads API access is waiting for Google's approval. The connection stays and syncing starts by itself once approved.
  • Access revoked or expired: the panel asks you to reconnect (for example after you removed MetricRaven in your Google Account). History is kept.
  • Numbers differ from Google Ads: Google counts modeled conversions and its own attribution windows. MetricRaven counts tracked visitors and payments only.

Details

  • Disconnecting deletes the imported spend and the stored Google token. It doesn't revoke the token at Google, because that would also end your Search Console access; remove MetricRaven in your Google Account (Security → Third-party access) to revoke everything.
  • Switching accounts removes the old account's spend and imports 90 days of the new one.
  • Traffic filters don't apply to ad spend: spend can't be split by visitor properties.
  • The public demo shows a synthetic Google Ads account next to the Meta sample.