AI reporter výkonu kampaní v GA4 a Google Ads s týdenním souhrnem
Marketingové týmy často narážejí na stejný problém: data o výkonu kampaní v Google Analytics 4 a Google Ads existují, ale pravidelný týdenní výklad nad nimi vzniká ručně, pomalu a nejednotně. Jeden člověk vytahuje čísla, druhý píše komentář, třetí kontroluje, zda se meziročně nebo mezitýdenně nezhoršil poměr ceny a konverzí. Výsledkem bývá report, který přijde pozdě, a navíc bez jasných doporučení.
V tomto článku si postavíme realizovatelné MVP projektu, které tento proces automatizuje. Cílem je jednou týdně stáhnout data z GA4 a Google Ads, spojit je do společného datového přehledu, spočítat základní metriky, nechat AI vytvořit interpretaci a konkrétní doporučení a hotový výstup odeslat e-mailem nebo do Slacku. Nepůjde o teoretický přehled, ale o postup krok za krokem tak, aby čtenář po dokončení jednotlivých částí měl funkční řešení.
Úvod

Praktická hodnota podobného projektu je vysoká zejména tam, kde se reportuje každý týden více kampaní, více účtů nebo více zemí. Automatizace zde neznamená jen úsporu času. Přináší také jednotnou strukturu výstupů, stabilní výpočet metrik a dohledatelný proces, který lze ladit. AI v tomto scénáři nenahrazuje zdroj pravdy. Její role je jiná: převést numerická data do srozumitelného shrnutí, upozornit na odchylky a navrhnout další kroky na základě přesně definovaných pravidel a promptu.
Jako základ zvolíme služby, které jsou běžně dostupné a mají oficiální rozhraní API: Google Analytics Data API pro GA4, Google Ads API pro reklamní výkon, Google Sheets jako jednoduché úložiště a kontrolní vrstvu, Google Apps Script jako orchestrace a OpenAI API pro interpretaci. Nasazení tak zůstane relativně levné, přehledné a zvládnutelné i bez robustního datového skladu.
Cíl projektu

Výstupem bude automatický týdenní report, který každý pátek v 8:00:
- stáhne data z GA4 za posledních 7 dní a předchozích 7 dní,
- stáhne data z Google Ads za stejné období,
- spojí je podle kampaně nebo UTM struktury do jedné tabulky,
- vypočítá rozdíly v klíčových metrikách,
- vygeneruje AI shrnutí a doporučení,
- odešle report e-mailem nebo do Slacku.
Za MVP budeme považovat řešení, které funguje alespoň pro jeden web, jednu GA4 property a jeden Google Ads účet, umí týdenní srovnání a vytváří konzistentní textový souhrn nad jasně definovanou tabulkou.
Předpoklady
Než začnete, připravte si tyto přístupy a nastavení:
- GA4 property s oprávněním alespoň Viewer a přístupem do Google Analytics.
- Google Ads účet s oprávněním Standard nebo Admin a přístupem do Google Ads.
- Google Cloud projekt pro práci s API v Google Cloud Console.
- Google Sheets a Google Apps Script.
- OpenAI API klíč z OpenAI Platform.
- Základní orientaci v tabulkách a schopnost zkopírovat krátký skript nebo JSON konfiguraci.
Pokud nemáte přímé mapování mezi kampaněmi v GA4 a Google Ads, není to stopka. Jen je potřeba počítat s omezením přesnosti párování, které popíšu v části Limity.
Kroky realizace
Krok 1: Navrhněte datový model a strukturu reportu
Co a proč: Než začnete sahat do API, je potřeba rozhodnout, jak bude vypadat jedna řádka reportu a které metriky budete hodnotit. Bez tohoto kroku vznikne častý problém: data sice stáhnete, ale nepůjdou smysluplně spojit ani vysvětlit. Pro týdenní report je ideální mít jednu řádku za kampaň a období.
Jak přesně: V Google Sheets vytvořte soubor s listy config, ga4_raw, ads_raw, report_input a ai_output. Do listu config vložte základní nastavení.
Konkrétní vstup: list config s poli:
ga4_property_id | 123456789
ads_customer_id | 9876543210
report_day | Friday
currency | CZK
primary_kpi | purchases
send_to_email | marketing@example.cz
slack_webhook | https://hooks.slack.com/services/...
Mini šablona struktury report_input:
week_label | campaign_name | sessions | users | purchases | revenue | cost | clicks | impressions | ctr | cpc | roas | conv_rate
Konkrétní výstup: připravený Google Sheet s definovanými listy a sloupci.
Metrika úspěšnosti: máte přesně určených maximálně 10 až 12 metrik, které budete v reportu pravidelně používat, a každá má jasný zdroj v GA4 nebo Google Ads.
Jakmile víte, co budete porovnávat, můžete přejít ke zdrojům dat. Tím se vyhnete situaci, kdy až při spojování dat zjistíte, že vám chybí klíčové pole, například název kampaně nebo období.
Krok 2: Aktivujte API a připravte oprávnění
Co a proč: Aby šlo data stahovat automaticky, musí mít projekt povolená správná API a skript musí mít oprávnění číst příslušné účty. Tento krok bývá nejméně zábavný, ale bez něj další části nefungují.
Jak přesně:
- Otevřete Google Cloud Console.
- Vytvořte nový projekt, například
ai-weekly-reporting. - V menu APIs & Services > Library aktivujte Google Analytics Data API.
- Pokud budete pracovat přes oficiální přístup ke Google Ads API, aktivujte i související projekt a postupujte podle dokumentace pro vývojářský token. U Google Ads je nutné počítat s tím, že některé typy přístupu podléhají schválení: https://developers.google.com/google-ads/api/docs/first-call/dev-token.
- V Google Apps Scriptu otevřete Služby a přidejte, pokud je potřeba, pokročilé služby nebo použijte externí HTTP volání přes
UrlFetchApp.
Konkrétní vstup: GA4 property ID 123456789, Google Ads customer ID 9876543210, OAuth scope pro Analytics Data API.
Konkrétní výstup: funkční cloudový projekt s aktivním API a skript, který po autorizaci nevrací chybu 403 nebo 401.
Metrika úspěšnosti: ověřovací dotaz na GA4 vrátí alespoň 1 řádek dat a nechybuje na autorizaci; u Google Ads se úspěšně ověří přístup k účtu.
Příklad očekávaného výstupu ověření:
{
"property": "properties/123456789",
"rows": 12
}
Ve chvíli, kdy máte oprávnění, dává smysl otestovat nejprve jeden zdroj samostatně. Začneme GA4, protože typicky nese webové konverze a příjmy.
Krok 3: Stáhněte týdenní data z GA4
Co a proč: Z GA4 chceme získat návštěvnost a konverzní výkon po kampaních. Pro týdenní report obvykle stačí sessions, users, purchases a revenue. Pokud vaše implementace používá jiné konverzní události, upravte je v konfiguraci.
Jak přesně: V Apps Scriptu vytvořte funkci, která zavolá Google Analytics Data API metodou runReport. V menu skriptu otevřete Projekt nastavení a uložte ID property do konstanty nebo načítejte z listu config.
Konkrétní vstup: API parametr pro datum a dimenze:
{
"dateRanges": [
{"startDate": "7daysAgo", "endDate": "yesterday"}
],
"dimensions": [
{"name": "sessionCampaignName"}
],
"metrics": [
{"name": "sessions"},
{"name": "totalUsers"},
{"name": "purchaseRevenue"},
{"name": "transactions"}
],
"limit": 1000
}
Mini snippet v Apps Scriptu:
function fetchGA4Week() {
const propertyId = '123456789';
const url = 'https://analyticsdata.googleapis.com/v1beta/properties/' + propertyId + ':runReport';
const payload = {
dateRanges: [{ startDate: '7daysAgo', endDate: 'yesterday' }],
dimensions: [{ name: 'sessionCampaignName' }],
metrics: [
{ name: 'sessions' },
{ name: 'totalUsers' },
{ name: 'purchaseRevenue' },
{ name: 'transactions' }
],
limit: 1000
};
const token = ScriptApp.getOAuthToken();
const response = UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + token },
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
Logger.log(response.getContentText());
}
Příklad vstupu: kampaň Brand Search CZ.
Očekávaný výstup:
campaign_name | sessions | users | purchases | revenue
Brand Search CZ | 1240 | 1011 | 37 | 58210.40
Metrika úspěšnosti: v listu ga4_raw se uloží alespoň 95 % kampaní, které očekáváte v týdenním výkonu, a hodnoty sessions nejsou nulové u aktivních kampaní.
Jakmile máte webovou část, je potřeba přidat reklamní náklady a kliknutí. Teprve kombinace obou zdrojů umožní dopočítat ROAS, CPC nebo rozdíly mezi návštěvností a reklamním výkonem.
Krok 4: Stáhněte týdenní data z Google Ads
Co a proč: Google Ads dodá náklady, kliknutí, imprese a případně reklamní konverze. Pro týdenní management report obvykle potřebujete alespoň kampaň, cost_micros, clicks, impressions a conversions. Pokud chcete držet jeden zdroj pravdy pro konverze, určete už zde, zda budete jako hlavní KPI interpretovat GA4 nebo Google Ads.
Jak přesně: U Google Ads použijte oficiální Google Ads API a dotaz v jazyce GAQL. Pokud s ním začínáte, držte se jednoduchého výběru po kampaních za posledních 7 dní. V případě potřeby lze implementaci provést mimo Apps Script, například v Cloud Run, ale pro MVP je důležité hlavně správně získat data a zapsat je do listu ads_raw.
Konkrétní vstup: GAQL dotaz:
SELECT
campaign.name,
metrics.cost_micros,
metrics.clicks,
metrics.impressions,
metrics.conversions,
segments.date
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
Příklad transformace cost_micros: 125000000 znamená 125.00 v měně účtu.
Konkrétní výstup:
campaign_name | cost | clicks | impressions | conversions
Brand Search CZ | 8420 | 913 | 12450 | 34
Metrika úspěšnosti: součet nákladů v ads_raw se liší od zobrazení v rozhraní Google Ads za stejné období maximálně o jednotky procent; ideálně méně než 1 %, pokud používáte stejnou časovou zónu a stejnou úroveň agregace.
Důležitá poznámka pro méně pokročilé: rozdíly mezi GA4 a Google Ads nejsou automaticky chyba. Každý systém může odlišně počítat relace, konverze nebo atribuci. Proto data nejprve jen stáhneme a teprve v dalším kroku stanovíme, která metrika odkud pochází.
Nyní máte oba základní zdroje. Dalším logickým krokem je jejich spojení do jedné tabulky, nad kterou půjde počítat změny a generovat komentář.
Krok 5: Spojte data a vypočítejte klíčové metriky
Co a proč: Samostatné tabulky jsou užitečné pro kontrolu, ale AI i člověk potřebují jeden sjednocený vstup. V tomto kroku vytvoříte list report_input, kde bude jedna řádka za kampaň s kombinací dat z obou zdrojů. Současně dopočítáte základní ukazatele, například CTR, CPC, ROAS a konverzní poměr.
Jak přesně: Pokud se názvy kampaní mezi GA4 a Google Ads shodují, můžete párovat podle campaign_name. Když se neshodují, vytvořte si mapovací tabulku campaign_map se sloupci ga4_campaign_name a ads_campaign_name.
Konkrétní vstup: sloupce:
campaign_name, sessions, purchases, revenue, cost, clicks, impressions
Mini vzorce:
ctr = clicks / impressions
cpc = cost / clicks
roas = revenue / cost
conv_rate = purchases / sessions
Příklad vstupu:
campaign_name = Brand Search CZ
revenue = 58210.40
cost = 8420
clicks = 913
impressions = 12450
sessions = 1240
purchases = 37
Očekávaný výstup:
campaign_name | ctr | cpc | roas | conv_rate
Brand Search CZ | 7.33% | 9.22 | 6.91 | 2.98%
Metrika úspěšnosti: nejméně 90 % řádků z ads_raw nebo ga4_raw najde protějšek v druhém zdroji nebo je jasně označeno jako nepárované; žádný z klíčových výpočtů nekončí chybou dělení nulou.
Praktická kontrola: do sloupce match_status vložte hodnoty matched, ga4_only nebo ads_only. Díky tomu poznáte, zda AI komentuje úplná data, nebo směs s výpadky.
Teď už máme číselný základ. Aby týdenní report nebyl jen tabulka, přidáme srovnání s minulým týdnem a připravíme strukturovaný vstup pro AI.
Krok 6: Přidejte mezitýdenní srovnání a připravte prompt pro AI
Co a proč: Samotná aktuální čísla nestačí. Týdenní report má odpovědět na otázku, co se změnilo oproti minulému týdnu a co s tím udělat. Proto připravíte dvě období a z nich odvozené rozdíly v procentech i absolutně.
Jak přesně: Opakujte sběr z kroků 3 a 4 i pro období 14daysAgo až 8daysAgo. V listu report_input přidejte sloupce jako sessions_prev, cost_prev, revenue_prev a dopočty wow_sessions_pct, wow_cost_pct, wow_roas_pct.
Konkrétní vstup: prompt pro OpenAI API:
Jsi marketingový analytik. Vysvětli výkon kampaní za posledních 7 dní proti předchozím 7 dnům.
Pravidla:
- Piš česky.
- Pracuj pouze s dodanými daty.
- Uveď 3 hlavní zjištění a 3 konkrétní doporučení.
- Pokud je match_status != matched, upozorni na omezení.
- Nevyvozuj příčiny, které nejsou v datech prokazatelné.
Data:
[{"campaign_name":"Brand Search CZ","revenue":58210.4,"revenue_prev":49780.1,"cost":8420,"cost_prev":9150,"roas":6.91,"roas_prev":5.44,"wow_revenue_pct":16.94}]
Konkrétní výstup: JSON nebo text se sekcemi summary, findings, recommendations.
Příklad očekávaného výstupu:
{
"summary": "Kampaň Brand Search CZ mezi týdny zvýšila tržby o 16,9 % při poklesu nákladů o 8,0 %, což vedlo ke zlepšení ROAS z 5,44 na 6,91.",
"findings": [
"Tržby rostly rychleji než návštěvnost.",
"Náklady klesly, ale počet objednávek neklesl.",
"Kampaň patří mezi nejefektivnější v účtu."
],
"recommendations": [
"Prověřte možnost navýšení rozpočtu o 10 až 15 %.",
"Zkontrolujte podíl zobrazení u brandových dotazů.",
"Porovnejte vyhledávací termíny s předchozím týdnem."
]
}
Metrika úspěšnosti: AI výstup je konzistentní, neobsahuje metriky, které ve vstupu nejsou, a minimálně v 90 % případů správně reflektuje směr změny u hlavních KPI.
Důležitá zásada: prompt musí výslovně zakazovat domněnky. Tím výrazně snížíte riziko, že AI bude tvrdit například vliv sezónnosti nebo změny konkurence bez opory v datech.
Nyní už dokážete vytvořit samotný text. Poslední funkční část MVP je automatické spuštění a distribuce výsledku bez ručního zásahu.
Krok 7: Automatizujte generování a odeslání reportu
Co a proč: Report je skutečně užitečný teprve tehdy, když vzniká pravidelně a dorazí správným lidem ve stejný čas. Automatizace zároveň snižuje riziko, že někdo zapomene spustit skript nebo exportovat tabulku.
Jak přesně: V Apps Scriptu vytvořte hlavní funkci, například runWeeklyReport(), která v přesném pořadí zavolá načtení dat, výpočty, AI interpretaci a odeslání. Poté v menu Spouštěče nastavte časový trigger na pátek 8:00.
Konkrétní vstup: funkce a nastavení triggeru:
function runWeeklyReport() {
fetchGA4Week();
fetchAdsWeek();
buildReportInput();
generateAICommentary();
sendEmailReport();
}
Ukázka e-mailového předmětu: Týdenní AI report kampaní | 4. 3. 2026
Ukázka Slack payloadu:
{
"text": "Týdenní AI report je hotový. Hlavní zjištění: ROAS celkem vzrostl o 12,4 % při poklesu nákladů o 3,1 %."
}
Konkrétní výstup: e-mail doručený na marketing@example.cz nebo zpráva ve Slack kanálu s odkazem na Google Sheet.
Metrika úspěšnosti: report se po dobu alespoň 3 po sobě jdoucích týdnů odešle automaticky bez ručního zásahu a bez chybového stavu skriptu.
V tuto chvíli máte funkční MVP. Ještě před ostrým provozem je ale nutné ověřit, že čísla sedí, výklad je věcný a distribuce funguje i při chybách nebo neúplných datech.
Doporučený AI stack pro realizaci
Vyberte nástroje podle rozpočtu a úrovně automatizace. Níže je přímý přehled služeb pro realizaci projektu.
| Tool | Offer |
|---|---|
| NordVPN | Otevřít nabídku |
| Semrush | Otevřít nabídku |
| Notion | Otevřít nabídku |
| Hostinger | Otevřít nabídku |
| Fiverr | Otevřít nabídku |
| Adobe | Otevřít nabídku |
| Canva | Otevřít nabídku |
| Jasper | Otevřít nabídku |
Testování
Testování rozdělte do tří vrstev.
- Test správnosti dat: porovnejte součty sessions, cost, clicks a revenue s rozhraním GA4 a Google Ads za stejné období. Ideálně udělejte kontrolní tabulku pro 3 až 5 kampaní.
- Test logiky výpočtů: ručně přepočítejte CTR, CPC, ROAS a mezitýdenní změny alespoň u dvou řádků. Ověřte i chování při nulových kliknutích nebo nulových nákladech.
- Test kvality AI výstupu: zkontrolujte, zda AI nepřidává neexistující metriky, nesměšuje GA4 a Google Ads konverze bez upozornění a zda doporučení odpovídají pozorované změně.
Praktický testovací scénář:
Vstup:
revenue = 30000
revenue_prev = 20000
cost = 10000
cost_prev = 8000
Očekávání:
wow_revenue_pct = 50 %
roas = 3.0
roas_prev = 2.5
AI musí zmínit růst tržeb i zlepšení ROAS.
Pokud AI napíše, že ROAS klesl, víte, že je problém buď v dopočtech, nebo v promptu.
Nasazení
Pro malé a střední použití obvykle stačí nasadit řešení přímo v Google Apps Scriptu. Doporučený provozní režim vypadá takto:
- Google Sheet slouží jako jednoduché úložiště i auditní stopa.
- Apps Script běží na časovém triggeru jednou týdně.
- API klíče a citlivé údaje neukládejte do buněk, pokud to není nutné; vhodnější je využít Script Properties.
- V listu
ai_outputsi ukládejte datum běhu, verzi promptu a finální text reportu.
Příklad uložených metadat běhu:
run_timestamp | 2026-03-04 08:00:14
prompt_version | v1.3
rows_reported | 18
status | success
Pro vyšší robustnost lze později přesunout integraci Google Ads API nebo zpracování do Google Cloud Run či Cloud Functions. To už ale přesahuje MVP a není pro první funkční verzi nutné.
Limity
Tento projekt má několik důležitých omezení, která je potřeba říci otevřeně:
- Rozdíly v atribuci: GA4 a Google Ads mohou vykazovat odlišné konverze i tržby. Pokud to nevyjasníte v zadání, AI může komentovat čísla, která nejsou mezi systémy přímo srovnatelná.
- Párování kampaní: pokud nejsou názvy kampaní jednotné, spojování podle názvu bude nepřesné. V tom případě je nutná mapovací tabulka nebo disciplinovaná UTM struktura.
- Kvalita AI výstupu: AI může formulovat příliš sebejistě i tam, kde mají data mezery. Proto je nutné v promptu vyžadovat upozornění na omezení a zakázat spekulace.
- API a oprávnění: Google Ads API může vyžadovat specifické schválení a správné nastavení vývojářského tokenu. Bez něj nebude automatizace úplná.
- Škálování: Apps Script je vhodný pro MVP, ale u velkého počtu účtů nebo kampaní může narazit na limity běhu a počtu volání.
Pokud některá z těchto oblastí ve vaší organizaci není stabilní, berte ji jako omezení řešení, nikoli jako detail, který se „nějak vyřeší později“.
FAQ
Musím používat zároveň GA4 i Google Ads?
Nemusíte, ale smysl projektu je právě v kombinaci webových a reklamních dat. Jen tak získáte rozumný pohled na náklady i obchodní výsledek.
Je lepší brát konverze z GA4 nebo z Google Ads?
Záleží na vašem reportovacím standardu. Pro obchodní výsledek bývá užitečné držet revenue a purchases z GA4, zatímco náklady, kliknutí a imprese z Google Ads. Pokud to tak uděláte, uveďte to výslovně v reportu.
Lze report posílat i do Looker Studia?
Ano, ale tento návod míří na textový týdenní souhrn s AI interpretací. Looker Studio můžete přidat jako doplňkovou vizualizační vrstvu.
Jak zabráním tomu, aby AI „halucinovala“?
Pomáhá strukturovaný vstup, zákaz domněnek v promptu, jasná pravidla pro výstup a ukládání pouze čísel, která skutečně pocházejí z reportu. Důležité je také testovat výstup na známých scénářích.
Je možné tento projekt rozšířit na více účtů?
Ano, ale pro MVP doporučuji začít jedním účtem. U více účtů budete řešit správu konfigurace, limity skriptu a oddělené šablony reportů.
Závěr
Automatický AI reportér výkonu kampaní není v první verzi složitý datový produkt. Je to disciplinovaně postavený proces: jasný datový model, dva ověřené zdroje, jednoduché výpočty, opatrně navržený prompt a spolehlivá distribuce. Právě tato kombinace z něj dělá praktický AI projekt s rychlou návratností.
Pokud projdete uvedené kroky v pořadí, skončíte s MVP, které každý týden samo připraví přehled kampaní z GA4 a Google Ads, dopočítá změny, přidá interpretaci a pošle ji týmu. To je dostatečně malý, ale zároveň užitečný základ, na němž můžete dále stavět. Typickým dalším rozšířením bývá segmentace podle země, zařízení nebo kanálu, zavedení upozornění na anomálie a přesun z tabulek do robustnější datové vrstvy. Než se do toho pustíte, ujistěte se ale, že první verze spolehlivě reportuje, co reportovat má.
Doporučený další krok
Odkazy v článku
- OpenAI
- OpenAI
- Slack Incoming Webhooks
- NordVPN
- Semrush
- Hostinger
- Fiverr
- Adobe
- Canva
- Notion
- Jasper
Zdroje ilustračních obrázků
- Stock fotografie: zdroj
Vlastní ilustrační obrázek byl vytvořen pomocí OpenAI Images API.
| Služba | Popis služby | Nabídka |
|---|---|---|
| NordVPN | VPN služba pro ochranu soukromí a bezpečné připojení. | Otevřít nabídku |
| Semrush | SEO a marketingová platforma pro analýzu a růst návštěvnosti. | Otevřít nabídku |
| Make | Pokročilá vizuální automatizace workflow a integrací. | Otevřít nabídku |
| Hostinger | Webhosting a domény pro rychlé spuštění webu. | Otevřít nabídku |
| Fiverr | Marketplace pro freelancery a externí specialisty. | Otevřít nabídku |
| Adobe | Kreativní nástroje pro grafiku, video a digitální obsah. | Otevřít nabídku |
| Canva | Online design nástroj pro grafiku, prezentace a sociální sítě. | Otevřít nabídku |
| Jasper | AI nástroj pro marketingové texty a obsahové kampaně. | Otevřít nabídku |
Poznámka: U uvedených služeb používáme affiliate odkazy. Pokud přes ně provedete nákup, můžeme získat provizi bez navýšení ceny pro vás.
Doporučení ke čtení

AI nápad: automatický tender digest z veřejných zakázek do e-mailu

AI pro účetní v ČR: kontrola dokladů, párování položek a auditní stopa bez chaosu

Prompt injection v praxi: red-team testy interního AI bota krok za krokem

