← всі звіти · index.md

type: project parent: ad-analytics-hub name: Google Ads integration slug: google-ads status: active readiness_pct: 80 last_updated: 2026-05-05

Google Ads integration (sub-project of Ad Analytics Hub)

ETL Google Ads (MCC) → BigQuery → Notion daily report. Agency-level pipeline через MCC account access.

Meta

Why: агентський MCC покриває кілька клієнтів Deltamedical, центральне місце для daily KPI замість ручних Google Ads UI-перевірок.

Status:

Implementation

Cron

Виконавчі скрипти живуть у /srv/projects/google-ads-crew/. Розклад і власники — у глобальному реєстрі крон у MEMORY.md.

BQ datasets

Канонічне джерело даних: ad-analytics-hub.ad_data.* — Google Ads native BigQuery Data Transfer Service (BQDTS) export.

Топ-15 таблиць

1872.6 MB | 3.6M rows | p_ads_AgeRange_1910689182
1458.5 MB | 8.6M rows | p_ads_AdGroupCriterion_1910689182
1437.6 MB | 5.5M rows | p_ads_Keyword_1910689182
1403.4 MB | 2.1M rows | p_ads_Ad_1910689182
1049.0 MB | 3.1M rows | p_ads_ClickStats_1910689182
 883.9 MB | 3.1M rows | p_ads_AdGroupAdLabel_1910689182
 759.5 MB | 1.6M rows | p_ads_ParentalStatus_1910689182
 511.8 MB | 3.5M rows | p_ads_CampaignCriterion_1910689182
 489.7 MB | 1.3M rows | p_ads_GeoStats_1910689182
 402.1 MB | 853K rows | p_ads_SearchQueryStats_1910689182
 393.9 MB | 780K rows | p_ads_Gender_1910689182
 383.4 MB | 1.7M rows | p_ads_AdGroupBidModifier_1910689182
 279.4 MB | 790K rows | p_ads_HourlyAdGroupStats_1910689182
 201.4 MB | 496K rows | p_ads_KeywordStats_1910689182
 187.1 MB | 372K rows | p_ads_AdGroupAudience_1910689182

Типові таблиці і їхнє призначення

Префікс p_ads_* — це Google's partition-зliating версія для бекфілу і повної історії. Префікс ads_* — поточна active table.

Як перевірити свіжість

from google.cloud import bigquery
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/srv/passepartout/google/ad-pipeline-worker-sa.json"
client = bigquery.Client(project="ad-analytics-hub")
q = "SELECT MAX(_DATA_DATE) AS latest FROM `ad-analytics-hub.ad_data.ads_CampaignBasicStats_1910689182`"
print(next(client.query(q).result()).latest)
# Очікуване: today - 2 days

Як налаштовано BQDTS (для відновлення/migration)

Налаштовується через GCP Console (BQDTS API не дозволяє менеджмент з нашого SA через permissions):

  1. GCP Console → BigQuery → Data Transfers
  2. Create Transfer → Data source: «Google Ads (formerly AdWords)»
  3. Destination dataset: ad_data
  4. Customer ID: 191-068-9182 (наш MCC)
  5. Refresh window: 7 days (standard)
  6. Schedule: daily

Авторизація: робиться через GCP user-account який має Google Ads access (через Manager Account). Якщо потрібно перенаправити transfer — robi його під masterdigital@ (всі Google Ads under it).

Custom CSV pipeline (secondary, не критичний)

Auth для secondary REST API запитів (policy endpoint)

Code

Backlog

Open questions

  1. Чи потрібно витягати GA4 attribution прямо з Google Ads (через Connected Linked Accounts) чи окремо?
  2. Чи інтегрувати Search Term Reports у BQ pipeline?