Poglobljena analiza· Shopping & PMax · 13 min branja

Poročilo o iskalnih poizvedbah za Shopping, ki ti ga Google ne da

Poročila Shopping in PMax pokažejo poizvedbo, nikoli izdelka. Manjkajoče poročilo poizvedba × izdelek sestaviš z enim URL-parametrom in dvema dimenzijama GA4.

Ilustracija, ki kup iskalnih poizvedb poveže z enim samim izdelkom — manjkajoči člen, ki ga Googlova poročila skrivajo.
Resna dejstva so resnična — naslovnice člankov niso.

Na kratko: Poročila Shopping in PMax pokažejo poizvedbo, nikoli izdelka. Svojim akcijam dodaj en sam URL-parameter (utm_content={product_id}) in v enem tednu ti GA4 znova postreže ukinjeno poročilo: vsak klik kot poizvedba × izdelek, s sejami, konverzijami in prihodkom. V tem paru se skriva denar — kateri naslovi zgrešijo povpraševanje in katere poizvedbe kurijo proračun.

78 %
klikov povezanih kot poizvedba × izdelek
22
posodobljenih akcij
1
URL-parameter — to je celoten sklop
7 dni
do preverjenih podatkov v GA4

Svojim akcijam Shopping in Performance Max dodaj en URL-parameter in v enem tednu ti GA4 postreže poročilo, ki ga je Google tiho ukinil: vsak plačani klik povezan kot poizvedba × izdelek — s sejami, konverzijami in prihodkom zraven. Prav v tem paru se skriva denar — kateri izdelki privlačijo smetni promet, kateri naslovi zgrešijo resnično povpraševanje, katere poizvedbe kurijo proračun in nikoli ne prodajo. Vsa postavitev je ta en parameter; preostanek članka govori o tem, kaj počneš s tem, kar pride nazaj.

Če vodiš akcije Shopping ali Performance Max, poznaš poročilo o iskalnih poizvedbah. Česar morda nisi opazil — ker Google na to nikoli ne opozori — je tisto, kar v njem manjka: izdelek.

Vidiš, da je nekdo iskal „brezžični sesalnik pod 200”. Vidiš klike in stroške. Ne vidiš, katerega od tvojih 5.000 izdelkov je ta poizvedba sprožila, na katerega je pripeljala ali katerega je prodala.

Pred leti ti je AdWords API to povezavo dajal. Danes je ne. In za e-commerce račun to ni kozmetična vrzel — poizvedba na izdelek je tam, kjer živi resnična optimizacija: ali se tvoji naslovi ujemajo z resničnim povpraševanjem, kateri izdelki privlačijo smetni promet, zakaj izdelek dobiva klike, a nikoli ne konvertira.

Preden vprašaš: ne, za to ni nastavitve. Ni poročila, ni polja v API-ju, ni skripta, ki bi to vrnil z Googlove strani. Sam moraš to znova sestaviti — in ponovna izgradnja je skoraj sramotno preprosta.

Rešitev: en parameter, dve dimenziji GA4

Dodaj predlogo za sledenje

Na svojih akcijah Shopping in PMax: {lpurl}?utm_content={product_id}. Spremenljivka ValueTrack {product_id} pošlje ID izdelka iz Merchant Centra z vsakim klikom.

GA4 shrani izdelek

UTM pristane v dimenziji Ročna vsebina oglasa seje (sessionManualAdContent).

GA4 poizvedbo že pozna

Samodejno označevanje (gclid) napolni sessionGoogleAdsQuery v isti seji.

Združi obe dimenziji

Vsak plačani klik postane par poizvedba × izdelek — s sejami, stopnjo konverzije in prihodkom zraven.

Samodejno označevanje in ročni UTM se ne tepeta med seboj: gclid še naprej skrbi za vir, medij in akcijo; tvoj UTM nosi le ID izdelka.

Vedi, kaj dobiš (in česa ne)

  • Le kliknjene poizvedbe. Ta nabor podatkov se začne ob kliku. Poizvedbe, pri katerih se je tvoj oglas prikazal, a nihče ni kliknil, nikoli ne pridejo do GA4 — analiza na ravni prikazov ostane v Googlovem standardnem poročilu (brez izdelkov).
  • ~20 % klikov se ne bo povezalo: seje z zavrnjenim soglasjem, PMax-površine brez vsakršne poizvedbe (Display, YouTube, Gmail), kliki, ki nikoli niso sprožili analitike.
  • Vezano na sejo. Ena seja = en ID izdelka — kliknjeni, tudi če uporabnik nato prebrska še deset drugih.

Kako poročilo potegniti iz GA4

V vmesniku: Raziskovanje → prosta oblika. Dimenziji: Ročna vsebina oglasa seje + Iskalna poizvedba Google Ads seje. Metrike: seje, konverzije, prihodek od nakupov. Filter: vir/medij seje = google / cpc.

Prek Data API — za vse resno to napaja nadzorno ploščo ali združevanje v BigQuery:

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"),  # product ID
        Dimension(name="sessionGoogleAdsQuery"),    # search term
    ],
    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"),
    )),
)

Združi sessionManualAdContent s svojim product feedom (id → naslov, cena, kategorija) in poročilo je popolno: poizvedba × izdelek × naslov × ekonomika.

Preverjeno, ne teoretizirano

To smo uvedli na živem računu — češkem prodajalcu elektronike z 22 vklopljenimi akcijami Shopping — in GA4 preverili sedem dni pozneje:

GA4, 7 dni po uvedbi

  • Vrstic prometa google/cpc 9.753
  • Nosilo ID izdelka (utm_content) 96 %
  • Nosilo iskalno poizvedbo (sessionGoogleAdsQuery) 81 %
  • Nosilo oboje — delujoče poročilo poizvedba × izdelek 78 %

Zdaj zabavni del: kaj ti pari povedo

1 · Vrzel v naslovu

Postavi poizvedbe ob naslov in opis, ki so ga sprožile. Neujemanje takoj skoči v oči:

What people actually search
brezžični sesalnik dlake hišnih ljubljenčkovsesalnik za pasje dlake alergijahišni ljubljenček sesalnik tihnajboljši sesalnik živalske dlake 2026
What the title says
Sesalnik X300 Turbo 2000W — EAN 8595…
Opis: „Visokokakovosten sesalnik s sodobnim dizajnom in bogato opremo."
The gap: Naslov prodaja vate, ki jih nihče ne išče, in zgreši primer uporabe za dlake ljubljenčkov, ki ga iščejo vsi. (Ilustrativni primer.)

Načrt za feed se napiše sam. In tu obogatitev feeda z AI preneha biti skok v vero in postane merljiva zanka: prepiši naslov okoli povpraševanja, ki si ga pravkar dokazal, nato opazuj, kako se CTR in stopnja konverzije na poizvedbo premakneta.

2 · Kdo še tekmuje za „tvojo” poizvedbo — in s katerim izdelkom

Ena stvar, ki je ne moreš narediti: dodati negativne ključne besede na izdelek. Google ti v Shoppingu ali PMax ne ponuja takega vzvoda. Ko torej par poizvedba × izdelek slabo deluje, vprašanje ni „kako ga izključim” — temveč „zakaj slabo deluje”.

Vzemi poizvedbo in postrgaj živo stran z rezultati zanjo. Konkretno: DataForSEO, končna točka serp/google/organic/live/advanced — en POST z besedilom poizvedbe in location_code tvojega trga in dobiš nazaj celotno stran z rezultati kot strukturiran JSON: plačani oglasi, shopping bloki z imeni trgovcev in cenami, organski rezultati spodaj. Pri ~0,0035 $ na poizvedbo preverjanje 200 poizvedb stane približno 0,70 $.

Tipična ugotovitev: tvoja spalna vreča srednjega razreda nabira klike na generično poizvedbo — in ista poizvedba prikazuje tri proračunske znamke v isti kategoriji za polovično ceno. Tvoj izdelek ni slab; v točno tej dražbi je premagan po ceni.

Zdaj imaš prave možnosti: na novo določi ceno; potisni razlikovalni element v naslov („polnilo iz puha, udobje do −15 °C”); premakni izdelek v akcijo z oblikovanjem ponudb, ki ustreza njegovi marži; ali poizvedbo sprejmi kot zgornji del lijaka in jo sodi po asistiranih metrikah namesto po zadnjem kliku.

3 · Odločitve o strukturi in oblikovanju ponudb

Izdelki, ki privlačijo poizvedbe z visokim namenom, si zaslužijo lastne skupine elementov in proračune. Izdelki, ki nabirajo le generični promet, sodijo v zbirne skupine s konservativnimi cilji. To poročilo je dokazna podlaga za segmentacijo Shopping — ne občutek v želodcu.

4 · Zdravstveni pregled za PMax

PMax ti o iskanju pove skoraj nič. To poročilo je najbližje, kar boš prišel reviziji tega, kaj PMax dejansko kupuje zate na iskalni površini — na izdelek.

Glej, kako korak za korakom prehodim en pravi izvoz

Vse zgornje je zakaj. Tukaj je kako to dejansko izgleda — vsak korak, kaj preneseš, v kaj buljiš in katera prava številka pride nazaj.

Podatki so iz drugega računa: drugega srednje velikega češkega e-shopa (ne prodajalca elektronike iz GA4-okvirja zgoraj — uporabljam ga, ker je njegov katalog dovolj širok, da se vsak vzorec pokaže v polni velikosti). Njegovo surovo poročilo o iskalnih poizvedbah za Shopping sem prek Google Ads API potegnil v lokalno tabelo SQLite in nad njim pognal spodnje agregacije. Najprej eno opozorilo: to surovo poročilo ti da skupino oglasov / skupino izdelkov, pod katero je bila poizvedba prikazana, ne posameznega izdelka. Točno to vrzel zapre trik z UTM-jem — a tudi na ravni skupine izdelkov so vmesni rezultati dovolj glasni, da dokažejo poanto.

Vir za vsako številko v tem razdelku: poročilo o iskalnih poizvedbah za Shopping (Google Ads), en srednje velik češki e-shop, ~22,6 mio. vrstic, podatki potegnjeni aprila 2026.

Korak 1 · Potegni surovo poročilo in izmeri kup

Kaj narediš: izvozi poročilo o iskalnih poizvedbah za Shopping prek Google Ads API (search_term_view) v lokalno tabelo — SQLite ali BigQuery, karkoli, nad čimer lahko poženeš GROUP BY. Zakaj prav to najprej: preden karkoli združiš, moraš začutiti, kako velik in kako hrupen je surovi kup. To eno dejstvo na novo nastavi vsako nadaljnje pričakovanje.

Poženi preprost COUNT(*) in nekaj SUM-ov in to pristane:

Surovi kup — en COUNT, trije SUM-i

  • Vrstic poročila (poizvedba × skupina izdelkov) 22.640.716
  • Različnih iskalnih poizvedb 5.370.131
  • Skupin izdelkov, pod katerimi so tekle 10.393
  • Stroški / prihodek (mešani ROAS 6,8×) 2,57 mio. / 17,4 mio. CZK

Kaj imaš: 22,6 milijona vrstic, 5,4 milijona edinstvenih poizvedb. Tega ne prebere noben človek. Edina naloga te številke je, da ti pove naslednjo potezo — ta kup zložiš po dimenziji, ki plačuje račune — in da te opozori, da je vsako ročno razvrščanje vrstico za vrstico brezupno.

Korak 2 · Zavrzi 96 % tega, preden karkoli analiziraš

Kaj narediš: preštej vrstice z nič kliki, nato jih izfiltriraj. Zakaj: poročilo o iskalnih poizvedbah za Shopping beleži vsako poizvedbo, za katero se je tvoj oglas prikazal, na večino pa nihče ni kliknil. Te vrstice zgolj s prikazi te ne morejo nič stati in ne morejo konvertirati — so šum, ki tabelo dela strašljivo.

Situacija: 22,6 mio. vrstic, ne veš, kje začeti. Dejanje: WHERE clicks > 0. Rezultat: tabela se sesede na 738.444 vrstic — obvladljiva velikost.

Poplava prikazov

  • Vrstic z nič kliki (čisti prikazi) 21.902.272 — 96,7 %
  • Vrstic, ki so te sploh kaj stale 738.444 — 3,3 %

Kaj imaš: 96,7 % strašljive številke ni bilo nikoli nič drugega kot šum. Zdaj delaš z 738.000-vrstično tabelo, ne z 22,6-milijonsko — in vsaka spodnja agregacija teče nad delom, ki dejansko troši denar.

Korak 3 · Zastavi eno vprašanje, ki na novo preriše račun

Kaj narediš: pri kliknjenih vrsticah razdeli stroške na „vsaj enkrat konvertiralo” proti „nikoli ni konvertiralo” in seštej stroške vsake skupine. Zakaj: to je številka, ki iz „račun je v redu, ROAS je 6,8” naredi „večina proračuna ne počne ničesar”. To je osrednji vmesni rezultat — izračunaj ga pred vsako idejo o optimizaciji.

Zavora ničelne konverzije

  • Vrstic poročila, ki so konvertirale ničkrat 99,75 %
  • Delež skupnih stroškov, ki so ga te vrstice pojedle 85,5 %
  • Stroški brez ene same konverzije za njimi 2,20 mio. CZK (~88 tisoč €)
  • Le med kliknjenimi vrsticami — delež z nič konverzijami 92,3 %

Kaj imaš: 85 % proračuna je teklo skozi kombinacije poizvedba × skupina izdelkov, ki niso konvertirale niti enkrat. To ni napaka zaokroževanja, ki bi jo zgladil pozneje — to je glavni dogodek. In videl si ga le zato, ker si poizvedbo zložil na to, proti čemur je bila prodana.

Korak 4 · Preveri, ali je zapravljanje delo nekaj zlikovcev ali cele množice

Kaj narediš: kliknjene vrstice razvrsti po stroških, vzemi zgornji 1 % in zgornjih 10 % ter poglej, kolikšen del skupnih stroškov držijo. Zakaj: to določi tvojo taktiko. Če peščica poizvedb kuri proračun, jih zaustaviš in končal si. Če je zapravljanje tanko razpršeno, je zaustavljanje poizvedb nesmiselno — potrebuješ strukturne popravke.

Kje zapravljeni stroški dejansko sedijo

  • Zgornji 1 % kliknjenih vrstic po stroških 10,5 % stroškov
  • Zgornjih 10 % kliknjenih vrstic po stroških 29,8 % stroškov

Kaj imaš: zavora je dolgi rep, ne nekaj prestopnikov — zgornji 1 % dragih vrstic drži komaj desetino stroškov. Tako zaustavitev 20 slabih poizvedb ne spremeni ničesar. To je s podatki podprt razlog, da popraviš strukturo (kateri izdelek sedi v kateri akciji s katerim ciljem) namesto loviti posamezne poizvedbe — in opomnik, da ti Google negativnih na izdelek tako ali tako ne dovoli.

Korak 5 · Ugotovi, zakaj dolgi rep pušča: ena poizvedba, mnogo izdelkov

Kaj narediš: za vsako iskalno poizvedbo preštej, pod koliko različnimi skupinami izdelkov je bila prikazana. Zakaj: to mehanično pojasni zapravljanje. Shopping ujema poizvedbo s signali tvojega celotnega feeda, ne z ustreznostjo enega izdelka — tako ena sama poizvedba pušča v nepovezane kote tvojega kataloga in ti plačaš vsak zgrešeni zadetek.

Situacija: „naprava proti lajanju” nenehno kuri proračun. Dejanje: COUNT(DISTINCT ad_group) za ta izraz. Rezultat: prikazoval se je pod 139 različnimi skupinami oglasov / izdelkov za 976 CZK in ~0 konverzij. „lego technic” se je dotaknil 300.

Razpršitev poizvedbe po katalogu

  • Izrazov, prikazanih pod več kot eno skupino izdelkov 46,7 %
  • Največ skupin izdelkov, ki jih je dosegla ena poizvedba 6.661
  • „naprava proti lajanju" → skupine / stroški / konverzije 139 / 976 CZK / ~0

Kaj imaš: skoraj polovica tvojih poizvedb je razmazana čez več skupin izdelkov, najhujše pa dosežejo tisoče. To je motor zavore ničelne konverzije iz Koraka 3 — in točno tisto, kar lahko končno vidiš, ko vsak klik nosi ID svojega izdelka.

Korak 6 · Z očmi preleti najhujša neujemanja — absurdna so

Kaj narediš: potegni vrstice z najvišjimi stroški, ki nikoli niso konvertirale, in preberi poizvedbo ob skupini izdelkov, proti kateri je bila prodana. Zakaj: agregatne številke prepričajo tvojo preglednico; te tri vrstice prepričajo tvojega šefa. So človeku berljiv obraz Koraka 5.

Pari poizvedba × skupina izdelkov z najvišjimi stroški in nič konverzijami (prevedeno in anonimizirano; ilustrativno za prave vrstice).
Iskalna poizvedbaPrikazano pod skupino izdelkovKlikiStroškiKonv.
ovratnica za dresuro psovTorbice97270 CZK0
naprava proti lajanjuIzdelki za dojenčke76239 CZK0
lego technicRazsvetljava70169 CZK0

Poizvedba za ovratnico za dresuro psov, plačana pod skupino Torbice. Naprava proti lajanju, prodana proti Izdelkom za dojenčke. Skupina izdelkov nima nobene zveze s poizvedbo — Google je ujemal na grobe signale feeda, pobral klik in ti ga zaračunal. S poizvedbo × izdelek to vidiš na en pogled; z Googlovim standardnim poročilom nikoli. (Ilustrativni primer — kategorije prevedene in anonimizirane.)

Korak 7 · Zdaj nagrada: 0,25 %, ki plača celoten račun

Kaj narediš: obrni Korak 3 — izoliraj le vrstice, ki so konvertirale, in seštej njihove stroške in prihodek. Zakaj: to je razlog, da je celotna vaja pomembna. Ko zmagovalce ločiš od zavore, jih zaščitiš, ostale pa izstradaš.

Rezina, ki si zasluži svoje mesto

  • Vrstic, ki so konvertirale (delež vseh vrstic) 57.209 — 0,25 %
  • Kaj so stale 372 tisoč CZK (~14,9 tisoč €)
  • Kaj so vrnile 17,4 mio. CZK (~697 tisoč €)
  • ROAS te rezine 46,8×

Kaj imaš: četrtina enega odstotka vrstic teče pri 46,8× ROAS in dejansko nosi račun; preostalih 99,75 % vleče mešano številko navzdol na 6,8×. Najti to rezino, zaščititi njen proračun in vse drugo strukturno odmakniti od nje — to je celotno delo — in nič od tega ni mogoče, dokler vsaka vrstica ne nosi izdelka, proti kateremu je bila prodana. Točno to ti kupi UTM z enim parametrom z vrha tega članka.

The part you can steal

Predloga + tri pasti

{lpurl}?utm_content={product_id}
  1. Ne dajaj parametra po meri v utm_campaign. Google Ads čisti vrednosti parametrov po meri — tvoja imena akcij se prepišejo in zgodovinska kontinuiteta GA4 se zlomi. Pošlji le utm_content; samodejno označevanje poskrbi za ostalo.
  2. Uporabi le na VKLOPLJENIH akcijah Shopping + PMax. Search tega ne potrebuje; ustavljene akcije le onesnažujejo tvojo zgodovino sprememb.
  3. Past v API-ju: uvajaš programsko? Novejše različice Google Ads API so opustile client.get_type(“FieldMask”) — namesto tega uvozi field_mask_pb2.FieldMask.

FAQ

Deluje to za Performance Max?

Da, za iskalno/shopping površino. Kliki iz Display, YouTuba in Gmaila nosijo ID izdelka, a nobene poizvedbe — pri teh vrsticah pričakuj prazno dimenzijo poizvedbe.

Bo UTM pokvaril mojo atribucijo v GA4?

Ne. Samodejno označevanje (gclid) še naprej skrbi za vir/medij/akcijo; ti dodaš le vsebino oglasa. Kar bi stvari pokvarilo, je parameter po meri v utm_campaign — tega ne počni.

Zakaj le 78 % pokritost?

Soglasni način, PMax-površine brez poizvedbe in zaviralci analitike pojedo ostalo. 78 % povsem zadošča za vsak zgornji primer uporabe — bereš vzorce, ne preverjaš centov.

Lahko vidim poizvedbe, za katere se je moj oglas prikazal, a nihče ni kliknil?

Ne. Ta nabor podatkov se začne ob kliku. Analiza na ravni prikazov ostane v standardnem poročilu o iskalnih poizvedbah — brez izdelkov.

Deluje vzorec tudi izven Googla — Bing, Sklik?

Da, prenese se: vsaka platforma z URL-predlogo, makrom za izdelek in analitično dimenzijo, ki ga ujame. Konkretni makri se razlikujejo po platformah.

Kako dolgo do uporabnih podatkov?

Odvisno od obsega. Naš račun je imel uporabno poročilo v 7 dneh; manjši računi naj zberejo 30.

Bistvo vsega tega

Želiš to raven vpogleda v svojem računu?

En e-mail. Iskreno ti povem, ali se za tvojo postavitev splača.

Piši mi →