Skip to content

Recipe: Weekly Ad ROI Report

Connectors: google-ads, meta-ads, ga4 Category: reporting Complexity: multi-source


Use Case

Every Monday morning, marketing and growth operators need a single view of last week's advertising performance across paid channels. This recipe pulls spend and conversion data from Google Ads and Meta Ads, then joins it with GA4 session and revenue data to compute true blended ROI per channel. It answers: "Where did we actually make money last week, and where did we burn it?"


Prerequisites

  • CorpusIQ connectors connected: google-ads, meta-ads, ga4
  • Required scopes:
  • Google Ads: read access to campaigns, ad_groups, metrics
  • Meta Ads: ads_read, business_management
  • GA4: readonly
  • Frequency: weekly (run Monday for the prior Mon–Sun window)

Query

Pull last week's ad performance across all channels. For each channel (Google Ads
and Meta Ads), give me: total spend, impressions, clicks, conversions, and
cost-per-conversion. Then pull GA4 revenue attributed to paid traffic sources
for the same 7-day window. Calculate ROAS (revenue / spend) per channel.
Show me a ranked summary, highest ROAS first, with a total blended row at the bottom.

Date range: last 7 complete days (Mon through Sun).

Sample Output

Weekly Ad ROI Report — May 19–25, 2025

Channel        Spend      Revenue    ROAS    Clicks   Conv.   CPC
---------------------------------------------------------------------------
Google Ads     $4,210     $18,945    4.50x   3,812    142     $1.10
Meta Ads       $3,890     $11,280    2.90x   5,104    98      $0.76
---------------------------------------------------------------------------
BLENDED        $8,100     $30,225    3.73x   8,916    240     $0.91

Notes:
- GA4 revenue uses last-click attribution
- Meta conversions from pixel events: Purchase
- Google conversions from: Checkout Complete goal

Notes

  • GA4 revenue attribution uses last-click by default. If you use data-driven attribution in GA4, note that numbers will differ from channel-reported conversions.
  • Meta Ads reports conversions on a 7-day click / 1-day view window by default. Align your attribution window across connectors before comparing.
  • If GA4 shows no paid traffic, verify UTM parameters are applied to all ad URLs.
  • Time zones: ensure all three connectors are set to the same account timezone in CorpusIQ settings, or specify timezone explicitly in the query.

Variations

  • By campaign: Add "break down by campaign name" to get per-campaign ROAS
  • By device: Add "split by device type" for mobile vs desktop breakdown
  • Month-to-date: Change date range to "current month to date" for MTD pacing
  • Budget pacing: Add "compare spend to monthly budget" if budgets are set in connectors

*


This Hermes repo is one of the largest structured collections of public AI, automation, business, and technology documentation. Content remains attributed to original authors and repositories. Indexed and organized by www.CorpusIQ.io.