This workflow automates the daily reporting of Google Ads campaign performance. It pulls click and conversion data from the Google Ads API, merges both datasets, and stores the results into Notion databases and Google Sheets.
It includes a campaign-level log and a daily performance summary. The workflow is triggered automatically every day at 08:00 AM, helping marketing teams maintain a consistent and centralized reporting system without manual effort.
Scheduled Trigger at 08:00 AM
The workflow begins with a Schedule Trigger
node that runs once per day at 08:00.
Set Yesterday’s Date
The Set
node defines a variable for the target date (yesterday), which is used in the API queries.
Query Google Ads API – Clicks & Cost
The first HTTP request pulls campaign-level metrics:
campaign.id
, campaign.name
metrics.clicks
, metrics.impressions
, metrics.cost_micros
Query Google Ads API – Conversions
The second HTTP request pulls conversion-related data:
metrics.conversions
, segments.conversion_action_name
Split and Merge
Both responses are split into individual campaign rows and merged using:
campaign.id
segments.date
Store Campaign-Level Data
Generate Daily Summary
A code node calculates daily totals across all campaigns:
Schedule Trigger
nodeSet Yesterday Date
nodedeveloper-token
login-customer-id
Content-Type: application/json
Create two databases in Notion:
Campaign Name
, Campaign ID
, Impressions
, Clicks
, Cost
, Conversion Type
, Conversions
, Date
Date
, Total Impressions
, Total Clicks
, Total Conversions
, Total Cost
, Conversion Types
Campaign Daily Report
→ for campaign-level rowsSummary Report
→ for daily aggregated metricsNotion Databases:
Google Ads Campaign Tracker
: stores individual campaign metricsGoogle Ads Daily Summary
: stores daily totals and conversion typesGoogle Sheets Tabs:
Campaign Daily Report
: per-campaign dataSummary Report
: aggregated daily performance