Call Performance Report
Aggregates call assets per campaign — received vs missed, average duration, and the share of quality calls — and alerts when you're paying for calls nobody answers.
by Dmytro Tonkikh·chiliad.io
Aggregates call assets per campaign — received vs missed, average duration, and the share of quality calls — and alerts when you're paying for calls nobody answers.
by Dmytro Tonkikh·chiliad.io
Monitors your account for unexpected performance deviations by comparing today's stats against historical averages for the same weekday. Sends an alert email when impressions, clicks, conversions, or cost deviate beyond configurable thresholds.
One 0-100 score for the whole account, built from seven objective checks — tracking flatlines, disapprovals, serving status, budget losses, negative coverage and query hygiene — with the deduction breakdown as your fix list.
Finds the structural gaps that stop ad groups from serving: ad groups without active ads, without an RSA, without keywords, keyword-stuffed themes, and multi-RSA ad groups.
Generates a daily at-a-glance performance overview of your entire Google Ads account. Writes prior-day stats to a Google Sheet with running history and optionally emails a formatted comparison of yesterday vs. two days ago vs. one week ago.
Generates a Google Spreadsheet with ad performance stats segmented by headline and final URL, including distribution charts. Covers all ad types and optionally emails the report link weekly.
Maps every campaign's ad schedule and flags forgotten narrow serving windows, stale schedule bid modifiers that Smart Bidding ignores, and (optionally) campaigns running 24/7.
For lead-gen accounts, calls are the conversions — and call quality hides behind click metrics. Call Performance Report aggregates tracked calls per campaign: total calls, missed vs answered, average duration, and the share of quality calls (at or above your duration threshold — long enough to be a real conversation). Campaigns whose missed-call share exceeds your tolerance are flagged, because paying for calls nobody answers is the most fixable waste in lead gen: it's almost always an ad schedule extending past staffed phone hours.
| Variable | Default |
|---|---|
DATE_RANGE | LAST_30_DAYS |
QUALITY_SECONDS | 60 |
MISSED_ALERT_PCT | 25 |
MIN_CALLS | 5 |
EMAIL_ADDRESS | (empty) |
=== Call Performance Report (LAST_30_DAYS) === Total tracked calls: 148 Lead Gen — Plumbing calls: 84 missed: 9 (11%) avg duration: 142s quality calls (>=60s): 78% Lead Gen — Emergency calls: 52 missed: 19 (37%) avg duration: 96s quality calls (>=60s): 61% --- Missed-call alerts: 1 --- Lead Gen — Emergency - 37% of calls missed Email sent to you@example.com
Only calls through Google forwarding numbers (call reporting) appear — direct dials of your real number aren't tracked. Duration data requires call reporting to be enabled on the call assets. The standard fix for missed-call alerts: align the ad schedule with staffed hours, or route after-hours calls to an answering service.