Reach a defensible end state in which serviceable demand is neither excluded nor misrouted by geography, schedule, keyword coverage, negatives, or campaign overlap, and any remaining reach constraint is visible before day 14.
Verify with fresh provider readback of location targets/exclusions and location options, schedules and time zone, positive and negative criteria, match types, networks, and overlapping eligible terms for all 21 target campaigns.
Must not infer geography from campaign names. Must not add keywords, negatives, locations, schedules, or network settings.
Use available search-term and keyword evidence to show where nearby high-intent vehicle-help demand can route, where it is blocked, and where evidence is too sparse; include exact reproducible queries or exports.
Must not loosen match types merely to create volume. Must not expose user-level search data or claim low volume is zero demand.
Each verdict includes evidence, a day-1-to-day-14 warning threshold, and a reversible response that preserves the real service area and urgent-call quality.
Must not assume the client is available 24/7 without evidence. Must not recommend broader reach without identifying the budget and caller-quality tradeoff.
Status: COMPLETE for the authorized read-only FM02 audit. Fresh Google Ads provider evidence was collected for customer 4891907898 and the four assigned failure paths were tested. No campaign, location, schedule, network, keyword, negative, bid, budget, ad, website, GTM, GA4, or conversion mutation was issued.
Corrected goal preserved: nearby people with urgent vehicle-help needs, verifiable phone-widget clicks, and no inferred geography from names. Ads search clicks in this tracker are not phone-widget clicks, connected calls, or proof of a local urgent caller.
| Contract requirement | Result | Fresh evidence |
|---|---|---|
| Effective targeting map for all 21 target campaigns | PASS | 21 campaign rows, 89 enabled campaign-criterion rows, customer time zone, geo options, networks, schedules, criteria, and current keyword inventory read back. |
| Demand-routing proof without exposing user-level search data | PASS | 213 aggregate search-term rows and 85 keyword-performance rows were queried for 2026-09-03 through 2026-09-16. Only aggregate counts and configured keyword strings are reported. |
| Scenario 4 geography verdict | EXPOSED | Only one active geographic criterion exists, a positive 40 km PROXIMITY row. There are zero active LOCATION rows and zero location exclusions across the 21 targets. Campaign names were not used as geography evidence. |
| Scenario 5 schedule verdict | EXPOSED | Zero active AD_SCHEDULE rows were returned. Ads therefore have no configured schedule restriction, while client answer availability remains UNKNOWN. |
| Scenario 6 exact-match coverage verdict | EXPOSED | 86 enabled positive EXACT keywords are present, with zero enabled PHRASE or BROAD keywords. Current post-reconciliation delivery is sparse and does not prove zero demand. |
| Scenario 7 negatives and overlap verdict | PREVENTED for checked controls; UNKNOWN for unobserved demand | Zero enabled target ad-group negatives, zero shared negative sets or associations, four explicit Generic exact negatives, and zero duplicate enabled exact strings. Sparse queries remain unobserved rather than classified as blocked. |
| Failure-path checks and blue-text/HTML guard | PASS | Each assigned scenario has an explicit failure-path check below. All newly added tracker text is inside #agent-progress and the final file is parsed as valid HTML. |
The campaign names below are scope identifiers inherited from the supplied C01 receipt only. They are not evidence that a person, city, or route is serviceable. The provider fields, not names, determine what was actually configured.
| Target campaign scope identifier | Campaign ID | State / serving | Geo option | Active geo criterion | Schedule | Networks | Enabled positive EXACT | Active criterion types |
|---|---|---|---|---|---|---|---|---|
| EXACT | Biatorbágy | Secondary | 24257365156 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Buda | Primary | 23974835198 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Budakeszi | Secondary | 24257365150 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Budaörs | Primary | 23974835216 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Csepel | Secondary | 24257365153 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Diósd | Primary | 23974835204 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Generic | Budakeszi 40 km | 16650800567 | ENABLED / SERVING | PRESENCE / PRESENCE | Positive PROXIMITY: 40 km from provider address 2092 Budakeszi, Pest, HU | None returned | Google Search only | 6 | DEVICE 3, KEYWORD 4 negatives, LANGUAGE 1, PROXIMITY 1 |
| EXACT | M0 | Primary | 24246214449 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | M1 | Primary | 24246214452 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | M31 | Primary | 24246214458 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | M5 | Primary | 23979397390 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | M6 | Primary | 24246214455 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | M7 | Primary | 24257365147 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Piliscsaba | Secondary | 24257365162 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Pilisvörösvár | Secondary | 24257365159 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Pomáz | Primary | 23974835207 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Solymár | Primary | 23974835213 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Szentendre | Primary | 23974835210 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Törökbálint | Secondary | 24257365168 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Zsámbék | Secondary | 24257365165 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
| EXACT | Érd | Primary | 23974835201 | ENABLED / SERVING | PRESENCE / PRESENCE | None | None returned | Google Search only | 4 | DEVICE 3, LANGUAGE 1 |
Provider-wide target map: 89/89 current campaign criteria were ENABLED: 63 DEVICE rows, 21 LANGUAGE rows, one positive PROXIMITY row, and four campaign-level KEYWORD negatives. No active LOCATION row, no location exclusion, and no AD_SCHEDULE row returned. Each campaign has PRESENCE for positive and negative geo target type settings. Device rows are Desktop, Mobile, and Tablet, three per campaign. The 21 language rows all use languageConstants/1024. Networks are Google Search true, Search Partners false, Content false, and Partner Search false on every target campaign.
Budget context: the three current target budget resources total 199,998.56 HUF on the 30.4-day calculation. No budget was changed. The 13 Primary rows read ELIGIBLE and the eight Secondary/Generic rows read LEARNING or equivalent provider status. These status fields are recorded for delivery context, not used to infer geography and not re-verdict FM01 scenarios.
Location option interpretation: PRESENCE/PRESENCE is the provider setting readback, not proof that the actual service area is correctly represented. The only explicit target is the 40 km proximity row. The real service area still requires client/operations confirmation.
All 86 enabled positive terms are exact match: 20 non-Generic scope campaigns have four each, and the Generic scope campaign has six. There are zero enabled positive PHRASE or BROAD rows, zero enabled target ad-group negative rows, 171 paused or historic non-removed keyword rows, and 33 removed keyword rows. The configured strings below are not user search data and are not used as geography proof.
EXACT | Biatorbágy | Secondary [4]: autómentés biatorbágy; autómentő biatorbágy; biatorbágy autómentés; biatorbágy autómentő EXACT | Buda | Primary [4]: autómentés buda; autómentő buda; buda autómentés; buda autómentő EXACT | Budakeszi | Secondary [4]: autómentés budakeszi; autómentő budakeszi; budakeszi autómentés; budakeszi autómentő EXACT | Budaörs | Primary [4]: autómentés budaörs; autómentő budaörs; budaörs autómentés; budaörs autómentő EXACT | Csepel | Secondary [4]: autómentés csepel; autómentő csepel; csepel autómentés; csepel autómentő EXACT | Diósd | Primary [4]: autómentés diósd; autómentő diósd; diósd autómentés; diósd autómentő EXACT | Generic | Budakeszi 40 km [6]: autómentés; autómentés 0-24; autómentő; azonnali autómentés; non stop autómentés; sos autómentés EXACT | M0 | Primary [4]: autómentés m0; autómentő m0; m0 autómentés; m0 autómentő EXACT | M1 | Primary [4]: autómentés m1; autómentő m1; m1 autómentés; m1 autómentő EXACT | M31 | Primary [4]: autómentés m31; autómentő m31; m31 autómentés; m31 autómentő EXACT | M5 | Primary [4]: autómentés m5; autómentő m5; m5 autómentés; m5 autómentő EXACT | M6 | Primary [4]: autómentés m6; autómentő m6; m6 autómentés; m6 autómentő EXACT | M7 | Primary [4]: autómentés m7; autómentő m7; m7 autómentés; m7 autómentő EXACT | Piliscsaba | Secondary [4]: autómentés piliscsaba; autómentő piliscsaba; piliscsaba autómentés; piliscsaba autómentő EXACT | Pilisvörösvár | Secondary [4]: autómentés pilisvörösvár; autómentő pilisvörösvár; pilisvörösvár autómentés; pilisvörösvár autómentő EXACT | Pomáz | Primary [4]: autómentés pomáz; autómentő pomáz; pomáz autómentés; pomáz autómentő EXACT | Solymár | Primary [4]: autómentő solymár; autómentés solymár; solymár autómentés; solymár autómentő EXACT | Szentendre | Primary [4]: autómentés szentendre; autómentő szentendre; szentendre autómentő; szentendre autómentés EXACT | Törökbálint | Secondary [4]: autómentő törökbálint; autómentés törökbálint; törökbálint autómentő; törökbálint autómentés EXACT | Zsámbék | Secondary [4]: autómentő zsámbék; autómentés zsámbék; zsámbék autómentés; zsámbék autómentő EXACT | Érd | Primary [4]: autómentő érd; autómentés érd; érd autómentő; érd autómentés
Overlap result: 86 unique normalized enabled exact strings across 86 rows, zero identical exact-string overlaps between target campaigns. This deterministic inventory check does not prove that every unobserved semantic variant can route.
The four current campaign-level negatives are all ENABLED EXACT rows in the Generic scope: autómentő adok veszek, autómentő elado, autómentő webshop, and elado automento. No target location exclusion, no enabled target ad-group negative, no shared negative set, no shared criterion, and no target campaign shared-set association was returned. These are configuration findings only and no negative was added or removed.
The complete 14-day evidence window is 2026-09-03 through 2026-09-16 in Europe/Budapest. The 2026-09-17 completeness probe returned 17 impressions, 2 search clicks, and 1,342.84 HUF, so that partial day is excluded from the comparison. The split at 2026-09-15 separates the earlier delivery history from the C01 exact reconciliation.
| Scope / period | Impressions | Ads search clicks | Spend HUF | Routing interpretation |
|---|---|---|---|---|
| All 21 targets, 2026-09-03 to 2026-09-16 | 1,510 | 95 | 70,695.64 | Account delivery context. Not phone-widget clicks. |
| Before C01 reconciliation, 2026-09-03 to 2026-09-14 | 1,459 | 94 | 69,619.29 | Historical routing. Generic legacy phrase activity is included. |
| After C01 reconciliation, 2026-09-15 to 2026-09-16 | 51 | 1 | 1,076.35 | Two complete days under the current exact-only map. Sparse, not zero demand. |
| Generic scope, full window | 1,446 | 91 | 63,426.94 | High observed delivery in the generic scope. Its campaign name and proximity row still do not certify local urgent caller quality. |
| Non-Generic scopes combined, full window | 64 | 4 | 7,268.70 | Four observed search clicks across location/route-labelled scopes. Labels are not physical-geography proof. |
| Non-Generic scopes after C01 reconciliation | 38 | 1 | 1,076.35 | One observed Ads click on the current two-day map. No widget or call conclusion is made. |
Search-term evidence: the read-only search_term_view query returned 213 rows and 197 distinct aggregate rows in the Generic scope plus 16 rows across nine non-Generic scopes. Ten target campaigns had any returned search-term row and 11 had none in this window. Every returned row used ADVERTISER_PROVIDED_KEYWORD as the match source and SEARCH as the network. The post-reconciliation slice returned 16 rows, 41 impressions, one Ads search click, and 1,076.35 HUF across seven scopes. Raw search-term text is deliberately not reproduced because the contract prohibits exposing user-level search data. A missing row is sparse evidence, not proof of zero demand.
Where demand can route: current enabled exact terms provide a controlled route for 86 configured strings. In the two-day post-reconciliation slice, seven target scopes produced search-term rows and one produced an Ads search click. Where it is blocked: the checked negative and overlap paths found no current target ad-group negative, shared negative, duplicate exact string, or current positive PHRASE/BROAD criterion that blocks a matching configured term. Where evidence is too sparse: 11 scopes had no search-term row in the full window and the current two-day local/route-labelled delivery was only 38 impressions and one Ads click. No low-volume result is classified as zero demand or as proof of a wrong service area.
Historical match-type boundary: the full-window Generic search-term aggregate contains EXACT 36, NEAR_EXACT 18, PHRASE 138, and NEAR_PHRASE 5 rows, while its current static criteria are six enabled positive EXACT rows and no enabled phrase/broad rows. The phrase and near-phrase rows are historical delivery before the 2026-09-15 reconciliation; they are not used to claim a current phrase keyword remains enabled. Post-reconciliation Generic rows are EXACT 3 and NEAR_EXACT 4.
Owners are role-based so no unsupported staffing or 24/7 assumption is introduced: the Ads owner owns the readback and any separately authorized account change; the client operations owner confirms the real service area and answer window; the measurement owner maintains the unique Google-Ads-originated phone-widget ledger and a privacy-safe call-outcome log. All responses below are recommendations for a later authorized decision, not actions taken in this read-only audit.
Evidence and failure-path check: fresh campaign-criterion readback covered all 21 IDs. It returned one active positive PROXIMITY criterion, 40 km from the provider address, zero active LOCATION criteria, and zero location exclusions. All 21 campaigns have PRESENCE positive and PRESENCE negative geo option settings. The user_location_view and geographic_view aggregates returned 149 rows, with seven scopes showing delivery rows, all LOCATION_OF_PRESENCE. Those rows show observed ad delivery context only, not confirmed serviceability or a local urgent caller. The exact failure path is therefore exposed: named non-Generic scope campaigns have no provider location criterion proving a matching local service area.
Day 1 to day 14 warning threshold: keep this EXPOSED from day 1 while the client operations owner has not confirmed the service area against provider location rows. Escalate on the first paid click or spend from a scope whose serviceability is not confirmed, on any location-view result outside the confirmed area once that area exists, or by day 7 if the shared ledger has zero nearby, urgent, Google-Ads-originated phone-widget outcomes. At day 14, any out-of-area outcome or no verified local urgent outcome keeps the geography gate open.
Reversible response and tradeoff: the Ads owner and client operations owner first document the actual service area. If a later authorized change is chosen, apply only the smallest confirmed location restriction to the affected scope, retain a before-state receipt, and roll back to that receipt if nearby urgent call quality falls. Do not broaden reach from this evidence. Any wider-area test requires an explicit budget cap and a caller-quality comparison because it can spend against distant or non-serviceable demand.
Evidence and failure-path check: zero active AD_SCHEDULE criteria returned for all 21 campaigns. The account time zone is Europe/Budapest, so the Ads configuration has no read-back schedule restriction. The presence of keyword strings such as 0-24 or non stop is not evidence that the client answers 24/7. Answering availability is UNKNOWN.
Day 1 to day 14 warning threshold: by day 3, if the client operations owner has not supplied a written answering window, keep the schedule gate EXPOSED. From day 1 onward, escalate any unique widget click in an unconfirmed period, any unanswered or abandoned call outcome in a delivery period, or any day with delivery outside the confirmed answer window. By day 7, if answer status is missing for any paid widget click, the schedule evidence remains insufficient; by day 14, no claim of 24/7 availability is allowed.
Reversible response and tradeoff: once actual answering hours are confirmed, the Ads owner may later propose a schedule limited to those hours, with the current unrestricted setting preserved as the rollback state. If urgent local outcomes worsen after a schedule restriction, restore the prior schedule. Extending delivery beyond confirmed hours is not recommended without a budget and caller-quality tradeoff decision.
Evidence and failure-path check: fresh ad_group_criterion readback found 86 enabled positive EXACT rows, 86 unique normalized strings, zero enabled PHRASE rows, zero enabled BROAD rows, zero enabled target negatives, 171 paused or historic non-removed rows, and 33 removed rows. The 14-day target aggregate produced 1,510 impressions, 95 Ads search clicks, and 70,695.64 HUF. After the C01 reconciliation, the two-day target aggregate produced 51 impressions, one Ads search click, and 1,076.35 HUF. Eleven scopes had no search-term row in the full period. This exposes a controlled exact-only reach constraint, but it does not prove that unobserved language has no demand.
Day 1 to day 14 warning threshold: on days 1 to 3, warn if no non-Generic exact-scope impression or click is observed in the shared daily readback. By day 7, warn if the shared ledger has fewer than two cumulative verified Google-Ads-originated phone-widget clicks or if two consecutive complete days have no non-Generic search-term evidence. By day 14, escalate if the ledger has fewer than five verified phone-widget clicks, while keeping search clicks, widget clicks, connected calls, and local urgent outcomes as separate measures.
Reversible response and tradeoff: immediately hold the current exact map and review only aggregate query evidence. No match type was loosened and no keyword was added. If the threshold is hit, the Ads owner can later test a small owner-approved exact addition only when the term has explicit urgent vehicle-help intent and the client operations owner confirms serviceability, using a fixed spend cap and caller-quality comparison. Roll back by removing only the test additions or by holding the affected scope. Phrase/broad expansion is not recommended merely to create volume because it trades budget and caller quality for reach.
Evidence and failure-path check: current target control readback found zero enabled ad-group negatives, four enabled Generic campaign-level exact negatives, zero shared_set rows, zero shared_criterion rows, zero target campaign shared-set associations, and zero duplicate normalized strings among the 86 enabled positive exact terms. The full-window search-term aggregate returned all rows from the SEARCH network and advertiser-provided keyword source. Its historical Generic rows include phrase and near-phrase match-type values before C01 reconciliation, while the current static map has no enabled positive phrase or broad criteria. No current configured negative or identical exact overlap was found blocking a configured term.
Day 1 to day 14 warning threshold: on every daily readback, escalate if any new target negative appears outside the four recorded Generic negatives, any shared negative set or association appears, any duplicate enabled exact string appears, or one aggregate search-term identity is attributed to more than one target scope. If a non-Generic scope has delivery but no matching enabled exact route in the daily evidence, flag it for review rather than calling it blocked. At day 14, keep UNKNOWN for any demand not observed by the available privacy-safe report.
Reversible response and tradeoff: preserve the four recorded Generic negatives unless fresh aggregate evidence shows a relevant urgent term is being blocked. A later authorized operator can isolate and reverse only a newly introduced negative or overlap, retaining the prior receipt as rollback. Do not remove controls or broaden match types to force volume, because that can admit non-serviceable or non-urgent callers.
Read-only queries were issued through GoogleAdsService.search only. No mutate service, paid-ad click, real call, synthetic conversion, credential output, caller detail, or public publication was used. The target ID set was taken from the supplied C01 receipt and rechecked against provider campaign IDs before analysis.
TARGET_IDS = 16650800567, 23974835198, 23974835201, 23974835204, 23974835207, 23974835210, 23974835213, 23974835216, 23979397390, 24246214449, 24246214452, 24246214455, 24246214458, 24257365147, 24257365150, 24257365153, 24257365156, 24257365159, 24257365162, 24257365165, 24257365168
Q1 identity
SELECT customer.resource_name, customer.id, customer.descriptive_name,
customer.currency_code, customer.time_zone, customer.status,
customer.manager, customer.test_account, customer.auto_tagging_enabled
FROM customer
LIMIT 1
Q2 campaign settings
SELECT campaign.resource_name, campaign.id, campaign.name, campaign.status,
campaign.advertising_channel_type, campaign.advertising_channel_sub_type,
campaign.bidding_strategy_type, campaign.bidding_strategy,
campaign.manual_cpc.enhanced_cpc_enabled,
campaign.target_spend.target_spend_micros,
campaign.target_spend.cpc_bid_ceiling_micros,
campaign.campaign_budget,
campaign.network_settings.target_google_search,
campaign.network_settings.target_search_network,
campaign.network_settings.target_content_network,
campaign.network_settings.target_partner_search_network,
campaign.geo_target_type_setting.positive_geo_target_type,
campaign.geo_target_type_setting.negative_geo_target_type,
campaign.primary_status, campaign.primary_status_reasons,
campaign.serving_status, campaign.bidding_strategy_system_status,
campaign.start_date_time, campaign.end_date_time
FROM campaign
WHERE campaign.id IN (TARGET_IDS)
Q3 campaign criteria, including locations, schedules, devices, languages, and negatives
SELECT campaign.resource_name, campaign.id, campaign.name,
campaign_criterion.resource_name, campaign_criterion.criterion_id,
campaign_criterion.display_name, campaign_criterion.status,
campaign_criterion.negative, campaign_criterion.type,
campaign_criterion.location.geo_target_constant,
campaign_criterion.language.language_constant,
campaign_criterion.keyword.text, campaign_criterion.keyword.match_type,
campaign_criterion.proximity.radius, campaign_criterion.proximity.radius_units,
campaign_criterion.proximity.address.postal_code,
campaign_criterion.proximity.address.province_code,
campaign_criterion.proximity.address.province_name,
campaign_criterion.proximity.address.country_code,
campaign_criterion.proximity.address.street_address,
campaign_criterion.proximity.address.city_name,
campaign_criterion.proximity.geo_point.longitude_in_micro_degrees,
campaign_criterion.proximity.geo_point.latitude_in_micro_degrees,
campaign_criterion.ad_schedule.day_of_week,
campaign_criterion.ad_schedule.start_hour,
campaign_criterion.ad_schedule.start_minute,
campaign_criterion.ad_schedule.end_hour,
campaign_criterion.ad_schedule.end_minute,
campaign_criterion.device.type
FROM campaign_criterion
WHERE campaign.id IN (TARGET_IDS)
Q4 target ad-group criteria
SELECT campaign.resource_name, campaign.id, campaign.name,
ad_group.resource_name, ad_group.id, ad_group.name, ad_group.status,
ad_group_criterion.resource_name, ad_group_criterion.criterion_id,
ad_group_criterion.status, ad_group_criterion.negative,
ad_group_criterion.type, ad_group_criterion.primary_status,
ad_group_criterion.primary_status_reasons,
ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE campaign.id IN (TARGET_IDS)
Q5 campaign performance, complete-day window
SELECT campaign.id, campaign.name, segments.date,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.average_cpc, metrics.conversions, metrics.all_conversions,
metrics.search_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share
FROM campaign
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q6 keyword performance, complete-day window
SELECT campaign.id, campaign.name, ad_group.id, ad_group.name,
ad_group_criterion.criterion_id,
ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type,
segments.date, metrics.impressions, metrics.clicks,
metrics.cost_micros, metrics.average_cpc, metrics.conversions,
metrics.all_conversions
FROM keyword_view
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q7 search-term evidence, complete-day window
SELECT campaign.id, campaign.name, ad_group.id, ad_group.name,
search_term_view.search_term,
segments.date, segments.day_of_week, segments.device,
segments.ad_network_type,
segments.keyword.info.text,
segments.search_term_match_type,
segments.search_term_match_source,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.average_cpc
FROM search_term_view
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q8 user location delivery aggregate
SELECT campaign.id, campaign.name,
user_location_view.country_criterion_id,
user_location_view.targeting_location,
user_location_view.resource_name,
segments.date, segments.day_of_week, segments.device,
segments.ad_network_type,
segments.geo_target_city, segments.geo_target_district,
segments.geo_target_most_specific_location,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.average_cpc
FROM user_location_view
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q9 geographic delivery aggregate
SELECT campaign.id, campaign.name,
geographic_view.country_criterion_id,
geographic_view.location_type,
segments.date, segments.day_of_week, segments.device,
segments.ad_network_type,
segments.geo_target_city, segments.geo_target_district,
segments.geo_target_most_specific_location,
metrics.impressions, metrics.clicks, metrics.cost_micros,
metrics.average_cpc
FROM geographic_view
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q10 location-view delivery aggregate
SELECT campaign.id, campaign.name, location_view.resource_name,
segments.date, metrics.impressions, metrics.clicks,
metrics.cost_micros, metrics.average_cpc
FROM location_view
WHERE campaign.id IN (TARGET_IDS)
AND segments.date BETWEEN '2026-09-03' AND '2026-09-16'
Q11 shared negative controls
SELECT shared_set.resource_name, shared_set.id, shared_set.name,
shared_set.type, shared_set.status, shared_set.member_count
FROM shared_set
SELECT shared_set.resource_name, shared_set.id, shared_set.name,
shared_criterion.resource_name, shared_criterion.criterion_id,
shared_criterion.keyword.text, shared_criterion.keyword.match_type,
shared_criterion.type
FROM shared_criterion
SELECT campaign.resource_name, campaign.id, campaign.name,
campaign_shared_set.resource_name, campaign_shared_set.shared_set,
campaign_shared_set.status
FROM campaign_shared_set
WHERE campaign.id IN (TARGET_IDS)
Q12 partial-day completeness probe
SELECT segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros
FROM customer
WHERE segments.date BETWEEN '2026-09-17' AND '2026-09-17'
Validation note: final HTML parsing and section-boundary checks passed. The exact report and this tracker remain private local artifacts. The report's ## Report section contains the same substantive receipt, scope, query row counts, failure-path results, thresholds, and ownership boundary. No public review-host publication was performed because the contract expressly prohibits publishing private evidence.