Kort sagt: PPC-automatisering blev inte plötsligt möjlig — den blev plötsligt prisvärd. AI lade inte till några funktioner; den kapade återbetalningstiden på dem vi haft sedan 2019 och förvandlade sexmånadersbyggen till tvåveckorsbyggen. Vinnarna är inte färre specialister utan super-seniorer som äntligen bygger arbetsflödena som förr aldrig lönade sig — som triage av negativa sökfrågor med en lokal Gemma-modell.
Hela argumentet i en mening
Att automatisera PPC på rätt sätt var alltid möjligt — det betalade sig bara aldrig, så nästan ingen gjorde det. AI gav oss inga nya förmågor; den kapade kostnaden för att använda de gamla, och just den ekonomiska förskjutningen lägger ett decennium av “vi skulle gärna, men det lönar sig aldrig” tillbaka på bordet. Allt nedan är beviset, berättat inifrån verktygen jag faktiskt bygger med — inte från en leverantörs keynote.
Här är vad du konkret får ut av texten: de tre eror som gjorde PPC-automatisering för dyr att bry sig om, det exakta ögonblicket då kalkylen vände i år, och ett verkligt jobb — att rensa bort skräpsökfrågor med en lokal modell med öppen källkod — uppdelat steg för steg, med mellanresultatet du faktiskt skulle sitta och titta på, visat i varje skede. När du är klar kan du skilja på “AI gav oss nya förmågor” (mestadels falskt) och “AI ändrade vem som har råd med de gamla” (det som faktiskt spelar roll), och du har ett flöde du kan kopiera.
Jag drev en liten blogg om Google Ads-skript mellan 2015 och 2017, sedan slutade jag skriva. Inte för att idéerna sinade — utan för att klyftan mellan “det här är möjligt” och “det här är värt att göra för en kund” envist förblev bred i ett decennium. Nästan allt du läst om att AI dödar PPC-specialisten har fattat mekanismen om bakfoten. AI ändrade inte vad du kan göra i betald sök. Det mesta var alltid möjligt. Det den ändrade är vem som kan göra det, och till vilken kostnad — och det är en mycket större sak än ännu en knapp för automatisk budgivning. Låt mig berätta hur jag vet.
Skript-eran: några dagar för ett “enkelt” skript
Varför jag börjar här: för att visa dig att taket aldrig var tekniken. Det var arbetet, ända från det första verktyget jag rörde vid.
Google Ads Scripts kändes som magi när de kom. JavaScript, direkt i kontot, som loopade över kampanjer. I praktiken var ett “enkelt” skript — pausa sökord över ett CPA-tröskelvärde, flagga trasiga slutliga URL:er — några dagars skrivande och felsökning så fort du tog hänsyn till specialfallen, kvoterna, de tysta felen.
Sedan kom delen som ingen budgeterade för: att köra det över flera konton. Ett skript per konto, kopierat fram och tillbaka, som hamnade ur synk och gick sönder i tysthet när en kunds namnkonvention inte matchade de andra. Skalning och distribution var ett eget jobb. Så de flesta skript där ute kom aldrig längre än till rapportering — dra ut några siffror till ett kalkylark enligt schema. Allt som faktiskt ändrade kontot var för bräckligt, och för dyrt att underhålla, för att vara värt det för de flesta byråer.
Lärdomen du tar med dig: även det “enkla” automatiseringslagret bromsades av underhållskostnaden, inte av förmågan.
API-eran: två dagar till första frågan, två år till ett verktyg
Varför just den här spelar roll: det är här återbetalningsklyftan blev så bred att den blev ett affärsbeslut, inte ett ingenjörsbeslut.
Google Ads API — AdWords API på den tiden — var den verkliga kraften, och den verkliga väggen. Jag såg vår systemarkitekt, en man med över 25 års ingenjörskonst bakom sig, lägga två hela dagar på att läsa dokumentation innan han fick en enda fråga att returnera data. Det är ingen pik mot honom. Det är helt enkelt vad du gav dig in på.
Vi satsade allt ändå och byggde PPC Robot: ett djupt anpassningsbart verktyg för rapportering och drift, tekniskt vackert, genuint kraftfullt. Det tog också två utvecklare, på heltid, i två år. Utvecklingen som krävdes för att hålla det igång låg någonstans runt 100 000 euro om året — ungefär, en storleksordning — och det betalade sig aldrig. Det täckte en bråkdel av vad våra PPC-specialister faktiskt behövde, så till slut parkerade vi det i ett begränsat internt läge. Inte för att det var dåligt. För att kalkylen aldrig gick ihop.
Och vi levererade ändå verkliga saker ovanpå det API:et, för fyra och fem år sedan:
Vad den motorn faktiskt producerade
- 404 / kontroll av trasiga slutliga URL:er över konton levererat
- Shopping-kampanjgenerator från feeden levererat
- Shopping / Performance Max-segmentering levererat
- BigQuery-pipeline + rapportering till Sheets / Excel levererat
- Statuskontroller av Merchant Center-konto levererat
Titta på listan och lägg märke till en sak: inget av det är exotiskt med dagens mått. Allt var möjligt. Det kostade bara en förmögenhet att bygga och en förmögenhet att hålla vid liv. Varje meningsfull funktion — ett sökordsanalysverktyg, ett expansionsverktyg, annonsöversättning, en Shopping-generator — mättes i månader. Det är erans hela lärdom i en mening: taket var aldrig tekniken. Det var återbetalningstiden.
Två saker som brast i år
Varför jag blir konkret nu: “AI ändrade allt” är ett påstående du borde vägra ta på tro. Så här är två jobb som förr var olönsamma och nu inte är det — bägge saker jag kör, inga hypoteser — och för det första visar jag dig exakt vad varje steg producerar.
1. Att utesluta fel sökfrågor
Att rensa irrelevanta sökfrågor ur ett konto är värdefullt och själsdödande. Det gamla sättet var en halvmanuell genomgång av tusentals sökfrågor, mönster i ögat, negativa sökord tillagda för hand. Föreställ dig det: en löparskobutik betalar för klick på “löparskor reparation”, “nike air max historia” och “gratis löparskor” — inget av det säljer eller utför den. Multiplicera det med tusentals rader, varje vecka, över varje konto. Det är jobbet ingen vill ha och alla behöver.
Det som ändrades: ett Python-skript drar sökfrågorna från Google Ads API och lämnar dem till en modell med öppen källkod — Googles Gemma 4 — med ordentliga instruktioner och, det avgörande, kontext om sajten: sitemapen, sajt-/DB-strukturen, brödsmuletaxonomin, product feed. Resultatet: modellen flaggar inte bara enskilda skräpsökfrågor; den lyfter fram mönstren bakom dem, snabbare och billigare än en mänsklig genomläsning. Här är det flödet som fem konkreta steg.
DRA — hämta de råa sökfrågorna
Dra sökfrågerapporten från Google Ads API: sökfråga, klick, kostnad, konverteringar. Varför först: det här är bevisen — de faktiska pengarna som redan lagts på varje term. Du vill ha kostnaden knuten till varje rad så att modellen kan skilja dyrt skräp från ofarligt skräp. Du får: en platt tabell över varje term kontot betalat för i perioden.
FÖRANKRA — bygg ett kontextpaket om sajten
Sätt samman vad sajten faktiskt är, i en form modellen kan läsa: XML-sitemapen, brödsmuletaxonomin, product feed (id, titel, kategori) och DB-/kategoristrukturen. Varför det här är hela grejen: en modell utan kontext gissar; en modell som vet att du inte har någon kategori för “reparation” eller “uthyrning” resonerar. Du får: ett kontextpaket som gör modellen till en som känner din katalog i stället för en som gissar.
FRÅGA — klassificera sökfrågor och sätt namn på mönstren
Prompta Gemma 4 med termerna plus kontextpaketet: klassificera varje sökfråga som relevant / irrelevant för det vi säljer, och — det viktiga — returnera mönstren bakom de irrelevanta (en token, en avsikt, fel kategori). Varför mönster, inte rader: att flagga 200 skräpsökfrågor sparar dig en eftermiddag; att sätta namn på kategorin av skräp låter dig utesluta de nästa tusen du inte ens sett ännu. Du får: en lista över irrelevanta sökfrågor och, ovanför den, den handfull regler som genererade den.
GRANSKA — validera reglerna, inte raderna
En människa läser mönstren — fem till tio av dem — inte 5 000 enskilda rader. Varför det här är tidsbesparingen: omdömet tillämpas en gång per regel i stället för en gång per sökfråga, och en felaktig regel är uppenbar på ett sätt som en enda felmärkt rad aldrig är. Du får: en kort, betrodd lista över uteslutningsmönster som en människa faktiskt godkänt.
PUSHA — lägg till de negativa på rätt nivå
Pusha de godkända negativa tillbaka genom API:et på rätt nivå — annonsgrupp, kampanj eller delad lista — beroende på hur brett mönstret är. Varför nivån spelar roll: en sajtövergripande skräptoken (“gratis”, “wikipedia”) hör hemma på en delad lista, inte begravd i en annonsgrupp. Du får: kontot rensat, och en återanvändbar lista med negativa sökord som fortsätter funka nästa vecka.
Den tysta rubriken här är inte “AI är smart”. Det är att en modell med öppen källkod som körs lokalt räcker — du behöver inte ens ett frontier-API för att det ska löna sig. Det är ekonomin i rörelse, inte förmågan.
Se det köra: vad varje steg faktiskt spottar ur sig
De fem stegen är receptet; det här är maten. Nedan står den konkreta artefakt varje steg lämnar dig för vår löparskobutik — det du bokstavligen tittar på innan du går vidare. Formerna är exakt vad verktygen returnerar; raderna är illustrativa, ingen verklig kund. (Illustrativa exempel genomgående.)
DRA → de råa sökfrågorna, med pengarna knutna till sig. Varje term kontot betalat för, sorterad så att slöseriet syns:
Search term Clicks Cost Conv
running shoes 420 €310 12
free running shoes 88 €61 0
running shoes repair 54 €40 0
nike air max history 31 €24 0
running shoes wikipedia 19 €14 0
Fyra av de fem raderna är ren utgift med noll konverteringar — 139 € kontot aldrig hade behövt betala. Problemet är uppenbart i fem rader och osynligt i femtusen.
FÖRANKRA → kontextpaketet modellen resonerar mot. Ingen prosa — en kompakt karta över vad sajten verkligen är:
sitemap.xml → 1,010 URLs (categories, products, blog)
breadcrumb tax. → Footwear > Running > Road / Trail
product feed → 1,205 SKUs (id, title, category, price)
DB structure → no "repair", "rental" or "history" nodes exist
Den sista raden är den som gör jobbet: modellen vet nu att “repair” inte är något den här butiken erbjuder, i stället för att gissa.
FRÅGA → utlåtanden, och mönstren ovanför dem. Modellen returnerar ett utlåtande per sökfråga — men vinsten är blocket längst ner:
Query Verdict Why
free running shoes irrelevant freebie intent, no purchase
running shoes repair irrelevant service we don't offer
nike air max history irrelevant informational, no buy intent
running shoes wikipedia irrelevant reference-seeker
→ PATTERN: tokens "free", "repair", "history", "wikipedia"
= non-commercial modifiers absent from our taxonomy.
Recommend excluding as a shared negative list.
Fyra rader blev en regel. Den regeln fångar skräp av typen “running shoes free shipping returns” som du inte sett ännu — vilket är hela poängen.
GRANSKA → en människa godkänner regeln. Du läser en rad — “non-commercial modifiers absent from our taxonomy” — håller med om att den stämmer, och du är klar. Inget scrollande genom 5 000 rader. Omdömet fälls en gång.
PUSHA → de negativa landar på rätt nivå. Eftersom mönstret är sajtövergripande går det på en delad lista med negativa sökord, inte i en annonsgrupp:
Shared negative list: "non-commercial modifiers"
free · repair · history · wikipedia · manual · pdf
Applied to: all Search campaigns
Ett mönster, en lista, varje kampanj skyddad — och den fortsätter göra rätt för sig nästa vecka utan ännu en mänsklig genomgång. Det är ögonblicket då en själsdödande veckorutin blir en tiominuters granskning.
2. Sökordsanalys
Det andra jobbet är det som förr var en egen budgetpost. Riktig sökordsanalys — den sort som kartlägger efterfrågan mot dina målsidor och berättar vad som saknas på sajten — innebar förr dussintals timmar av datadragning (AdWords API, förslagsrutor, OpenRefine), halvmanuell städning, klassificering per målsida, och trend-/sökvolym-/gap-rapportering ovanpå.
Ett sökordsanalysprojekt, då vs. nu
- Det gamla sättet — datadragning, städning, klassificering, rapport 50–100 tim
- Vad kunden betalade för det ≈ 2 000–4 000 €
- Samma projekt idag, med en bra skill ensiffrigt antal tim
- Och resultatet är mer träffsäkert
Det är inte bara billigare. Det är bättre — mer precist, med timmarna lagda på validering och omdöme i stället för på rörmokeri. Den kombinationen, billigare och bättre, är precis det som skulle vara omöjligt. Jag har brutit ner den moderna versionen från början till slut i marknadsexpansions-blueprinten och innehållsgapsanalysen — bägge med det verkliga mellanresultatet visat i varje steg.
Ekonomin, före och efter
Det här är hela tesen i en tabell. Samma jobb, samma kvalitetsribba — bara kostnaden för att göra dem flyttade sig. Dokumenterade siffror där jag har dem; resten är storleksordning från en byrås två decennier av att göra det här.
| Jobbet | Det gamla sättet | Idag |
|---|---|---|
| Sökordsanalys (ett projekt) | 50–100 tim · 2 000–4 000 € fakturerat | ensiffrigt antal tim · mer träffsäkert |
| Triage av negativa sökfrågor | halvmanuell genomgång, tusentals rader för hand | skript + lokal modell sätter namn på mönstren |
| Leverera en ny automatiseringsfunktion | månader (2 utv. × 2 år för ett helt verktyg) | veckor |
| Hålla en rapporteringsmotor vid liv | ~100k € / år, betalade sig aldrig | nära noll med en lokal modell |
Läs tabellen uppifrån och ner och mönstret är detsamma på varje rad: kolumnen för förmåga ändrades inte — vi kunde göra allt det här 2019. Kolumnen för pris störtdök. Det är ingen teknikberättelse. Det är en berättelse om återbetalningstid, och återbetalningstiden är vad som avgör om en smart idé någonsin byggs.
Det du ska ta till dig: AI handlade mindre om att låsa upp nya PPC-förmågor och mer om att kapa återbetalningstiden på de gamla. När ett sexmånadersbygge blir ett tvåveckorsbygge töms plötsligt hela backloggen av “vi skulle gärna, men det lönar sig aldrig”.
Vad det här faktiskt betyder för branschen
Varför jag tar tydlig ställning här: den populära tolkningen — “AI gör slut på PPC-specialisten” — är en lat analys, och att få den om bakfoten har verkliga karriärkonsekvenser för folk som läser det här.
“PPC-specialisternas era är över” är nonsens. Motsatsen händer. Bra specialister tillbringade år frustrerade över att det smarta — det de tydligt kunde se — “inte var värt att bygga”. Nu får de bygga det. Automatiskt, lönsamt, i skala. En hel hylla av PPC-strategier som förr var olönsamma eller rent absurda att ens försöka sig på ligger plötsligt på bordet.
Det som händer är en skarpare uppdelning inom hantverket. På ena sidan, juniorer utan fantasi, vision eller verktygsvana — folk som behandlar plattformens gränssnitt som hela jobbet. På andra sidan, super-seniorer som behärskar verktygen, uppfinner arbetsflödena, tänker utanför plattformens ramar, kopplar samman datakällor som ingen annan kopplar, och bygger sig egna specialiserade dashboards i stället för att vänta på att en leverantör ska skeppa en funktion.
Och för att stoppa den uppenbara feltolkningen: det här är inte en berättelse om billigare tjänst. Verktyg, beräkningskraft och utveckling kostar fortfarande pengar. Poängen är att ett projekt som förr var sex månaders utveckling nu är två veckor — så investeringen blir äntligen vettig. Kunden får en dramatiskt bättre tjänst för ett liknande pris, inte en sämre för mindre.
Varför jag skriver igen
Jag slutade blogga för flera år sedan eftersom klyftan mellan idé och ekonomiskt vettigt genomförande var för bred för att vara intressant. Den klyftan stängdes precis. Så bloggen är tillbaka, och den kommer att vara konkret: användningsfall med verkliga siffror, de exakta flödena, de faktiska resultaten — inklusive de stökiga delarna och gränserna. De första djupdykningarna är redan uppe; fler är på väg.
Om din reaktion på allt det här är “vi skulle äntligen kunna göra den där grejen vi alltid velat” — bra. Det är hela poängen med eran. Nu bygger vi det.
Delen du kan stjäla
Triage av negativa sökfrågor med en lokal modell med öppen källkod (Gemma 4) — femstegsflödet ovan, som ett copy-paste-recept:
1. PULL Google Ads API → search-terms report (query, clicks, cost, conv)
2. GROUND Build a context pack the model can reason against:
- sitemap.xml (what the site actually sells)
- site / DB structure + breadcrumb taxonomy
- product feed (id, title, category)
3. ASK Prompt Gemma 4: "Given this site context, classify each query as
relevant / irrelevant to what we sell. Return the irrelevant ones
AND the PATTERNS behind them (token, intent, category mismatch)."
4. REVIEW Human validates the ~10 patterns, not 5,000 rows one by one.
5. PUSH Add negatives back via the API at the right level (shared list for
site-wide junk tokens; ad group for local noise).Tre saker som avgör om det här lönar sig:
- Kontext är hela grejen. En modell utan sajtkontext gissar; en modell med din sitemap, taxonomi och feed resonerar. Förankra den innan du litar på den.
- Jaga mönster, inte rader. Vinsten är inte att flagga enskilda skräpsökfrågor — det är att modellen sätter namn på kategorin av skräp så att du utesluter de nästa tusen också.
- Öppen källkod räcker. Du behöver inget frontier-API för det här. En bra lokal modell håller data internt och kostnaden nära noll — vilket är precis varför det till slut lönar sig.
FAQ
Säger du att byråer ska sparka sina PPC-specialister?
Tvärtom. Specialisterna som förstår strategi och verktyg är nu mer värdefulla, för att de äntligen kan genomföra idéerna som förr var olönsamma. Det som krymper är värdet av att bara trycka på knappar i plattformens gränssnitt.
Är siffran 100 000 €/år och två utvecklare i två år exakt?
Nej — ta den som en storleksordning. Poängen är inte det exakta eurobeloppet; det är att en enda intern rapporteringsmotor bar en sexsiffrig årskostnad och ändå aldrig betalade sig. Det är den ekonomin hela texten handlar om.
Behöver jag en dyr frontier-modell för det här?
Inte för jobb som triage av negativa sökfrågor. En kapabel modell med öppen källkod som Gemma 4, körd lokalt med bra sajtkontext, klarar jobbet — och då behåller du kontrollen över både dina data och dina kostnader.
Vad gör AI-genomgången av negativa sökfrågor bättre än att jag själv ögnar igenom?
Två saker: den läser hela sökfrågerapporten i stället för ett urval, och den returnerar mönstren, inte bara raderna. Du validerar tio regler i stället för femtusen rader, och de reglerna fortsätter fånga nytt skräp nästa vecka. Människan godkänner fortfarande — modellen sköter bara genomläsningen.
Så det här är bara hype med ny fernissa?
Vore det så hade jag inte börjat skriva igen. Förändringen är smal och verklig: inte nya funktioner, utan en kapad återbetalningstid på de befintliga. Det är en affärsförändring, inte en magisk — och det är därför backloggen plötsligt töms.
Vad kommer faktiskt att finnas på den här bloggen?
Konkreta användningsfall med siffror, flödena bakom dem och resultaten — inklusive gränser och fellägen. Mindre manifest, mer “här är exakt det vi körde och vad det gav tillbaka”.