Lyhyesti: Shopping- ja PMax-raportit näyttävät haun mutta piilottavat tuotteen. Lisää yksi URL-parametri — {lpurl}?utm_content={product_id} — ja viikon sisällä GA4 ojentaa sinulle hylätyn haku × tuote -raportin yhdistämällä sessionManualAdContent-dimension sessionGoogleAdsQuery-dimensioon. Yhdellä oikealla tilillä se paljasti, että 85 % budjetista kulki nollakonversioparien kautta ja 0,25 %:n siivu kantoi koko tiliä 46,8× ROAS:lla.
Lisää yksi URL-parametri Shopping- ja Performance Max -kampanjoihisi, niin viikon sisällä GA4 ojentaa sinulle raportin, jonka Google hiljaa hylkäsi: jokainen maksettu klikkaus parina haku × tuote — istunnot, konversiot ja liikevaihto liitettyinä. Juuri tuohon yhteen pariin raha kätkeytyy — mitkä tuotteet vetävät roskaliikennettä, mitkä otsikot ohittavat aidon kysynnän, mitkä haut polttavat budjettia eivätkä koskaan myy. Rakennus on tuo yksi parametri; loppu tästä artikkelista on se, mitä teet sillä, mikä palaa takaisin.
Jos pyörität Shopping- tai Performance Max -kampanjoita, tunnet hakulausekeraportin. Mitä et ehkä ole huomannut — koska Google ei koskaan osoita sitä — on se, mikä siitä puuttuu: tuote.
Näet, että joku haki “johdoton imuri alle 200”. Näet klikkaukset ja kustannuksen. Et näe, minkä 5 000 tuotteestasi tuo haku laukaisi, mille tuotteelle hän laskeutui tai minkä osti.
Vuosia sitten AdWords API antoi sinulle tämän parin. Tänään ei anna. Ja verkkokauppatilille se ei ole kosmeettinen aukko — haku-tuote-yhteys on se, missä todellinen optimointi elää: vastaavatko otsikkosi aitoa kysyntää, mitkä tuotteet houkuttelevat roskaliikennettä, miksi tuote saa klikkauksia mutta ei koskaan konvertoi.
Ennen kuin kysyt: ei, tähän ei ole asetusta. Ei raporttia, ei API-kenttää, ei skriptiä, joka palauttaisi sen Googlen puolelta. Sinun on rakennettava se itse uudelleen — ja uudelleenrakennus on lähes nolottavan yksinkertaista.
Korjaus: yksi parametri, kaksi GA4-dimensiota
Lisää seurantamalline
Shopping- ja PMax-kampanjoihisi: {lpurl}?utm_content={product_id}. ValueTrack-muuttuja {product_id} lähettää Merchant Centerin tuotetunnuksen jokaisen klikkauksen mukana.
GA4 tallentaa tuotteen
UTM laskeutuu Session manual ad content -dimensioon (sessionManualAdContent).
GA4 tietää haun jo
Automaattimerkintä (gclid) täyttää sessionGoogleAdsQuery-kentän samalla istunnolla.
Yhdistä kaksi dimensiota
Jokaisesta maksetusta klikkauksesta tulee haku × tuote -pari — istunnot, konversioprosentti ja liikevaihto liitettyinä.
Automaattimerkintä ja manuaalinen UTM eivät taistele keskenään: gclid hoitaa edelleen lähteen, median ja kampanjan; sinun UTM:si kuljettaa vain tuotetunnuksen.
Tiedä, mitä saat (ja mitä et)
- Vain klikatut haut. Tämä aineisto alkaa klikkauksesta. Haut, joille mainoksesi näkyi mutta kukaan ei klikannut, eivät koskaan päädy GA4:ään — impressiotason analyysi pysyy Googlen vakioraportissa (ilman tuotteita).
- ~20 % klikkauksista ei pariudu: consent-evätyt istunnot, PMax-pinnat ilman mitään hakua (Display, YouTube, Gmail), klikkaukset, jotka eivät koskaan laukaisseet analytiikkaa.
- Istuntotasolla. Yksi istunto = yksi tuotetunnus — klikattu, vaikka käyttäjä sitten selaisi kymmentä muuta.
Raportin vetäminen ulos GA4:stä
Käyttöliittymässä: Tutki → vapaa muoto. Dimensiot: Session manual ad content + Session Google Ads query. Mittarit: istunnot, konversiot, ostoliikevaihto. Suodatin: istunnon lähde/media = google / cpc.
Data API:n kautta — mihin tahansa vakavampaan tämä syöttää dashboardin tai BigQuery-liitoksen:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
RunReportRequest, DateRange, Dimension, Metric, FilterExpression, Filter
)
request = RunReportRequest(
property=f"properties/{GA4_PROPERTY_ID}",
dimensions=[
Dimension(name="sessionManualAdContent"), # tuotetunnus
Dimension(name="sessionGoogleAdsQuery"), # hakulauseke
],
metrics=[
Metric(name="sessions"),
Metric(name="conversions"),
Metric(name="purchaseRevenue"),
],
date_ranges=[DateRange(start_date="30daysAgo", end_date="today")],
dimension_filter=FilterExpression(filter=Filter(
field_name="sessionSourceMedium",
string_filter=Filter.StringFilter(value="google / cpc"),
)),
)
Yhdistä sessionManualAdContent tuotefeediisi (id → otsikko, hinta, kategoria), ja raportti on valmis: haku × tuote × otsikko × talous.
Varmennettu, ei teoretisoitu
Otimme tämän käyttöön oikealla tilillä — tšekkiläinen elektroniikan jälleenmyyjä, jolla on 22 käytössä olevaa Shopping-kampanjaa — ja tarkistimme GA4:n seitsemän päivää myöhemmin:
GA4, 7 päivää käyttöönoton jälkeen
- google/cpc-liikenteen rivejä 9 753
- Kuljetti tuotetunnuksen (utm_content) 96 %
- Kuljetti hakulausekkeen (sessionGoogleAdsQuery) 81 %
- Kuljetti molemmat — toimiva haku × tuote -raportti 78 %
Nyt hauska osuus: mitä parit kertovat sinulle
1 · Otsikkoaukko
Aseta haut sen otsikon ja kuvauksen viereen, jotka ne laukaisivat. Epäsuhta hyppää silmille:
Feedin tiekartta kirjoittaa itsensä. Ja tässä AI-feedin rikastus lakkaa olemasta uskonhyppy ja muuttuu mitattavaksi silmukaksi: kirjoita otsikko uudelleen sen kysynnän ympärille, jonka juuri todistit, ja seuraa, miten CTR ja konversioprosentti hakua kohti liikkuvat.
2 · Kuka muu on “sinun” haullasi — ja millä tuotteella
Yksi asia, jota et voi tehdä: lisätä negatiivisia avainsanoja tuotetta kohti. Google ei anna sinulle sellaista vipua Shoppingissa tai PMaxissa. Joten kun haku × tuote -pari alisuoriutuu, kysymys ei ole “miten suljen sen pois” — vaan “miksi se alisuoriutuu”.
Ota haku ja kaavi sille livenä tulossivu. Konkreettisesti: DataForSEO, päätepiste serp/google/organic/live/advanced — yksi POST hakutekstillä ja markkinasi location_code-arvolla, niin saat takaisin koko tulossivun jäsenneltynä JSON-muodossa: maksetut mainokset, shopping-lohkot kauppiasnimineen ja hintoineen, orgaaniset alla. Hintaan ~$0,0035 per haku, 200 haun tarkistus maksaa noin $0,70.
Tyypillinen havainto: keskihintainen makuupussisi kerää klikkauksia yleisellä haulla — ja sama haku näyttää kolme budjettibrändiä samassa kategoriassa puoleen hintaasi. Tuotteesi ei ole huono; se on hinnassa alakynnessä juuri siinä huutokaupassa.
Nyt sinulla on aitoja vaihtoehtoja: hinnoittele uudelleen; työnnä erottava tekijä otsikkoon (“untuvatäyte, −15 °C mukavuus”); siirrä tuote kampanjaan, jonka hintatarjousstrategia vastaa sen katetodellisuutta; tai hyväksy haku ylävaiheen liikenteenä ja arvioi sitä avustetuilla mittareilla viimeisen klikkauksen sijaan.
3 · Rakenne- ja hintatarjouspäätökset
Tuotteet, jotka houkuttelevat korkean intention hakuja, ansaitsevat omat elementtiryhmänsä ja budjettinsa. Tuotteet, jotka keräävät vain yleistä liikennettä, kuuluvat kaikenkattaviin ryhmiin konservatiivisilla tavoitteilla. Tämä raportti on shopping-segmentoinnin todistuspohja — ei mututuntuma.
4 · Terveystarkastus PMaxille
PMax kertoo sinulle hausta lähes tyhjää. Tämä raportti on lähin asia auditointiin siitä, mitä PMax oikeasti ostaa sinulle hakupinnalla — tuotetta kohti.
Katso, kun kuljen yhden oikean exportin läpi, askel askeleelta
Kaikki yllä oleva on miksi. Tässä on miltä se oikeasti näyttää — jokainen askel, mitä lataat, mitä tuijotat ja se oikea luku, joka palaa takaisin.
Data on toinen tili: eri keskikokoinen tšekkiläinen verkkokauppa (ei yllä olevan GA4-laatikon elektroniikan jälleenmyyjä — käytän sitä, koska sen valikoima on tarpeeksi laaja, että jokainen kuvio näkyy täydessä mittakaavassa). Vedin sen raa’an Shopping-hakulausekeraportin Google Ads API:n kautta paikalliseen SQLite-tauluun ja ajoin alla olevat aggregaatiot. Yksi varaus ensin: tämä raaka raportti antaa sinulle mainosryhmän / tuoteryhmän, jonka alla haku näytettiin, ei yksittäistä tuotetta. Juuri sen aukon UTM-temppu sulkee — mutta jopa tuoteryhmätasolla välivaiheen tuotokset ovat tarpeeksi äänekkäitä tehdäkseen pointin.
Lähde jokaiselle luvulle tässä osiossa: Google Ads Shopping -hakulausekeraportti, yksi keskikokoinen tšekkiläinen verkkokauppatili, ~22,6 milj. riviä, data vedetty huhtikuussa 2026.
Askel 1 · Vedä raaka raportti ja mittaa kasa
Mitä teet: vie Shopping-hakulausekeraportti Google Ads API:n kautta (search_term_view) paikalliseen tauluun — SQLite tai BigQuery, mikä tahansa, jolle voit ajaa GROUP BY-kyselyn. Miksi tämä ensin: ennen kuin yhdistät mitään, sinun on tunnettava, miten iso ja meluisa raaka kasa on. Tuo yksi tosiasia nollaa jokaisen seuraavan odotuksen.
Aja pelkkä COUNT(*) ja pari SUMia, ja tämä laskeutuu:
Raaka kasa — yksi COUNT, kolme SUMia
- Raportin rivit (haku × tuoteryhmä) 22 640 716
- Erillisiä hakulausekkeita 5 370 131
- Tuoteryhmiä, joiden alla ne näytettiin 10 393
- Budjetti / liikevaihto (yhdistetty ROAS 6,8×) 2,57 milj. / 17,4 milj. CZK
Mitä sinulla on: 22,6 miljoonaa riviä, 5,4 miljoonaa uniikkia hakua. Kukaan ihminen ei lue sitä. Luvun ainoa tehtävä on kertoa seuraava siirto — romahduta tämä kasa sen dimension mukaan, joka maksaa laskut — ja varoittaa, että mikään rivikohtainen manuaalinen triage on toivotonta.
Askel 2 · Heitä pois 96 % siitä ennen kuin analysoit mitään
Mitä teet: laske rivit, joissa on nolla klikkausta, ja suodata ne pois. Miksi: Shopping-hakulausekeraportti kirjaa jokaisen haun, jolle mainoksesi näkyi, joista useimpia kukaan ei klikannut. Nuo pelkät impressiorivit eivät voi maksaa sinulle eivätkä konvertoida — ne ovat melua, joka saa taulun näyttämään pelottavalta.
Tilanne: 22,6 milj. riviä, et tiedä mistä aloittaa. Toimenpide:
WHERE clicks > 0. Tulos: taulu romahtaa 738 444 riviin — käsiteltävä koko.
Impressiotulva
- Rivit, joissa nolla klikkausta (pelkkiä impressioita) 21 902 272 — 96,7 %
- Rivit, jotka koskaan maksoivat kruunun 738 444 — 3,3 %
Mitä sinulla on: 96,7 % pelottavasta luvusta ei ollut koskaan muuta kuin melua. Työstät nyt 738 t. rivin taulua, ei 22,6 milj. — ja jokainen alla oleva aggregaatio ajetaan sillä osalla, joka oikeasti käyttää rahaa.
Askel 3 · Esitä se yksi kysymys, joka kehystää tilin uudelleen
Mitä teet: klikatuilla riveillä jaa budjetti “konvertoi vähintään kerran” vs. “ei koskaan konvertoinut” ja summaa kummankin kustannus. Miksi: tämä on se luku, joka muuttaa “tili on kunnossa, ROAS on 6,8” muotoon “suurin osa budjetista ei tee mitään”. Se on otsikollinen välivaiheen tuotos — laske se ennen mitään optimointi-ideaa.
Nollakonversion painolasti
- Raportin rivit, jotka konvertoivat nolla kertaa 99,75 %
- Osuus kokonaisbudjetista, jonka nuo rivit söivät 85,5 %
- Budjetti, jonka takana ei ole konversiota 2,20 milj. CZK (~88 t. €)
- Vain klikatuista riveistä, osuus nollakonversioilla 92,3 %
Mitä sinulla on: 85 % budjetista virtasi haku × tuoteryhmä -yhdistelmien kautta, jotka eivät kertaakaan konvertoineet. Se ei ole pyöristysvirhe, jonka optimoit myöhemmin — se on itse pääasia. Ja näit sen vain siksi, että romahdutit haun sen mukaan, mitä vastaan se myytiin.
Askel 4 · Tarkista, onko hukka muutama roisto vai koko joukko
Mitä teet: lajittele klikatut rivit kustannuksen mukaan, ota ylin 1 % ja ylin 10 % ja katso, kuinka paljon kokonaisbudjetista ne pitävät hallussaan. Miksi: tämä päättää taktiikkasi. Jos kourallinen lausekkeita polttaa budjetin, keskeytät ne ja olet valmis. Jos hukka on levällään ohuelti, lausekkeiden keskeyttäminen on turhaa — tarvitset rakenteellisia korjauksia.
Missä hukattu budjetti oikeasti istuu
- Ylin 1 % klikatuista riveistä kustannuksen mukaan 10,5 % budjetista
- Ylin 10 % klikatuista riveistä kustannuksen mukaan 29,8 % budjetista
Mitä sinulla on: painolasti on pitkähäntäinen, ei muutama syyllinen — kalleimpien rivien ylin 1 % pitää hädin tuskin kymmenesosaa budjetista. Joten 20 huonon lausekkeen keskeyttäminen ei muuta mitään. Tämä on datan tukema syy korjata rakenne (mitkä tuotteet istuvat missäkin kampanjassa millä tavoitteella) yksittäisten hakujen jahtaamisen sijaan — ja muistutus siitä, ettei Google muutenkaan anna sinun lisätä negatiivista tuotetta kohti.
Askel 5 · Selvitä, miksi pitkä häntä vuotaa: yksi haku, monta tuotetta
Mitä teet: laske jokaiselle hakulausekkeelle, montako erillistä tuoteryhmää sen alla näytettiin. Miksi: se selittää hukan mekaanisesti. Shopping täsmää haun koko feedisi signaaleja vastaan, ei yhden tuotteen relevanssia vastaan — joten yksi haku vuotaa katalogisi toisiinsa liittymättömiin nurkkiin, ja maksat jokaisesta ohilaukauksesta.
Tilanne: “haukunestolaite” polttaa budjettia jatkuvasti. Toimenpide:
COUNT(DISTINCT ad_group)kyseiselle lausekkeelle. Tulos: se näytettiin 139 eri mainos- / tuoteryhmän alla 976 CZK:n hintaan ja ~0 konversiolla. “lego technic” kosketti 300.
Haun roiske läpi katalogin
- Erillisiä lausekkeita, jotka näytettiin useamman kuin yhden tuoteryhmän alla 46,7 %
- Eniten tuoteryhmiä, jotka yksi haku tavoitti 6 661
- "haukunestolaite" → ryhmät / kustannus / konversiot 139 / 976 CZK / ~0
Mitä sinulla on: lähes puolet hauistasi on tahriintunut useiden tuoteryhmien ylle, ja pahimmat syylliset tavoittavat tuhansia. Se on Askeleen 3 nollakonversiopainolastin moottori — ja juuri se asia, jonka voit vihdoin nähdä, kun jokainen klikkaus kuljettaa tuotetunnustaan.
Askel 6 · Silmäile pahimmat epäsuhdat — ne ovat absurdeja
Mitä teet: vedä kalleimmat rivit, jotka eivät koskaan konvertoineet, ja lue haku sen tuoteryhmän vieressä, jota vastaan se myytiin. Miksi: aggregaattiluvut vakuuttavat taulukkolaskentasi; nämä kolme riviä vakuuttavat pomosi. Ne ovat Askeleen 5 ihmisluettava kasvo.
| Hakulauseke | Näytettiin tuoteryhmän alla | Klikkaukset | Kustannus | Konv. |
|---|---|---|---|---|
| koiran koulutuspanta | Käsilaukut | 97 | 270 CZK | 0 |
| haukunestolaite | Vauvatuotteet | 76 | 239 CZK | 0 |
| lego technic | Valaisimet | 70 | 169 CZK | 0 |
Koiran-koulutuspanta-haku maksettu Käsilaukut-ryhmäsi alla. Haukunestolaite myyty Vauvatuotteita vastaan. Tuoteryhmällä ei ole mitään tekemistä haun kanssa — Google täsmäsi laajoilla feed-signaaleilla, keräsi klikkauksen ja veloitti sinua. Haku × tuotteella näet tämän yhdellä vilkaisulla; Googlen vakioraportilla et koskaan. (Havainnollistava esimerkki — kategoriat käännetty ja anonymisoitu.)
Askel 7 · Nyt palkinto: se 0,25 %, joka maksaa koko tilin
Mitä teet: käännä Askel 3 ympäri — eristä vain rivit, jotka konvertoivat, ja summaa niiden kustannus ja liikevaihto. Miksi: tämä on syy, miksi koko harjoitus on tärkeä. Kun pystyt erottamaan voittajat painolastista, suojelet voittajia ja näännytät loput.
Siivu, joka ansaitsee paikkansa
- Rivit, jotka konvertoivat (osuus kaikista riveistä) 57 209 — 0,25 %
- Mitä ne maksoivat 372 t. CZK (~14,9 t. €)
- Mitä ne palauttivat 17,4 milj. CZK (~697 t. €)
- ROAS tällä siivulla 46,8×
Mitä sinulla on: neljäsosa yhdestä prosentista riveistä pyörii 46,8× ROAS:lla ja käytännössä kantaa tiliä; loput 99,75 % vetävät yhdistetyn luvun alas 6,8×:ään. Tuon siivun löytäminen, sen budjetin suojeleminen ja kaiken muun rakentaminen pois siitä on koko homma — eikä mikään siitä ole mahdollista, ennen kuin jokainen rivi kuljettaa tuotetta, jota vastaan se myytiin. Sen tämän artikkelin alun yhden parametrin UTM sinulle ostaa.
Malline + kolme ansaa
{lpurl}?utm_content={product_id}- Älä laita mukautettua parametria utm_campaigniin. Google Ads siivoaa mukautettujen parametrien arvot — kampanjanimesi kirjoitetaan uusiksi ja GA4:n historiallinen jatkuvuus rikkoutuu. Lähetä vain
utm_content; automaattimerkintä hoitaa loput. - Sovella vain KÄYTÖSSÄ oleviin Shopping- + PMax-kampanjoihin. Haku ei sitä tarvitse; keskeytetyt kampanjat vain saastuttavat muutoshistoriasi.
- API-sudenkuoppa: käyttöönotto ohjelmallisesti? Tuoreet Google Ads API -versiot pudottivat
client.get_type(“FieldMask”)— tuo sen sijaanfield_mask_pb2.FieldMask.
FAQ
Toimiiko tämä Performance Maxissa?
Kyllä, haku-/shopping-pinnalla. Display-, YouTube- ja Gmail-klikkaukset kuljettavat tuotetunnuksen mutta eivät hakua — odota, että näillä riveillä hakudimensio on tyhjä.
Rikkooko UTM GA4-attribuutioni?
Ei. Automaattimerkintä (gclid) hoitaa edelleen lähteen/median/kampanjan; sinä lisäät vain ad contentin. Sen sijaan kaiken rikkoisi mukautettu parametri utm_campaignin sisällä — älä tee niin.
Miksi kattavuus on vain 78 %?
Consent mode, kyselyttömät PMax-pinnat ja analytiikkaestot syövät loput. 78 % riittää ylivoimaisesti kaikkiin yllä oleviin käyttötapauksiin — luet kuvioita, et tilitä senttejä.
Näenkö haut, joille mainokseni näkyi mutta kukaan ei klikannut?
En. Tämä aineisto alkaa klikkauksesta. Impressiotason analyysi pysyy vakiomuotoisessa hakulausekeraportissa — ilman tuotteita.
Toimiiko kuvio Googlen ulkopuolella — Bing, Sklik?
Kyllä, se siirtyy: mikä tahansa alusta, jossa on URL-malline, tuotemakro ja analytiikkadimensio sen nappaamiseen. Tarkat makrot eroavat alustoittain.
Kauanko kestää, ennen kuin minulla on käyttökelpoista dataa?
Riippuu volyymistä. Meidän tilillämme oli toimiva raportti 7 päivässä; pienempien tilien kannattaa kerätä 30.