Automatisering av negativa sökord i Google Ads med AI
FlowHunt automatiserar hanteringen av negativa sökord i Google Ads med AI och hjälper företag att minska kostnader, optimera annonsspendering och förbättra kampanjresultat enkelt.
Google Ads
Negative Keywords
AI
Automation
PPC
Digital Marketing
Scripts
Oönskad annonsspendering på sökord uppstår när dina annonser visas i sökresultat som inte matchar det du säljer. Detta kan snabbt tömma din budget, eftersom varje irrelevant klick kostar pengar utan att leda till försäljning. Till exempel, om ett företag som säljer exklusiva läderskor riktar sig mot breda sökord som ”köpa skor”, kan de få klick från personer som är intresserade av sneakers eller sandaler, vilket inte är vad de erbjuder. Denna felmatchning i sökordsinriktning kan leda till bortkastad annonsspendering och lägre ROI. Företag behöver förstå detta för att undvika onödiga ekonomiska förluster och fokusera sin budget på rätt sökord.
Negativa sökords roll
Negativa sökord är ett viktigt verktyg i alla Google Ads-kampanjer. De låter annonsörer exkludera specifika söktermer från att utlösa deras annonser, så att endast relevanta sökningar leder till annonsvisningar. Till exempel kan användning av negativa sökord som ”billiga” eller ”rabatt” hjälpa läderskoföretaget att undvika klick från personer som inte är intresserade av premiumprodukter. Genom att noggrant skapa en lista över negativa sökord kan företag optimera sin annonsspendering, minska oönskade klick och öka kampanjens totala effektivitet.
Redo att växa ditt företag?
Starta din kostnadsfria provperiod idag och se resultat inom några dagar.
Artificiell intelligens (AI) förändrar hur annonsörer hanterar Google Ads-kampanjer. AI-verktyg som FlowHunt är skapade för att gruppera sökord, vilket hjälper företag att identifiera och organisera relaterade sökord mer effektivt. Denna automatisering förenklar processen att hitta både positiva och negativa sökord, vilket minskar det manuella arbetet vid kampanjhantering. AI-driven sökordshantering möjliggör realtidsförändringar baserat på prestationsdata, så att annonsspenderingen kontinuerligt optimeras för bästa möjliga ROI.
Strategier för att minska oönskad annonsspendering
För att minska oönskad annonsspendering på sökord bör företag tillämpa flera strategier:
Uppdatera din sökordslista regelbundet för att matcha förändrade marknadstrender och konsumentintressen.
Implementera en stark strategi för negativa sökord genom att ständigt undersöka och uppdatera listan över termer du vill exkludera.
Övervaka och justera kampanjer baserat på prestationsdata.
Analysera vilka sökord som leder till försäljning och vilka som inte gör det för att förfina inriktningen och maximera annonsspenderingen.
Gå med i vårt nyhetsbrev
Få de senaste tipsen, trenderna och erbjudandena gratis.
Fallstudie: PostAffiliatePros tillvägagångssätt
PostAffiliatePro stod inför problem med sin månatliga annonsspendering och hade svårt att få den ROI de önskade från sina Google Ads-kampanjer. De bestämde sig för att använda AI för att lösa detta problem. Genom att införa AI-drivna verktyg automatiserade de sin sökordshantering och identifierade både positiva och negativa sökord mer exakt. Denna förändring gjorde att de kunde optimera sin annonsspendering, minska kostnaderna avsevärt och förbättra kampanjernas effektivitet. Deras erfarenhet understryker fördelarna med att använda AI-teknik för att effektivt hantera sökordsutgifter. Analyser av varje nytt sökord körs inom en timme från den första visningen av sökordet. Hastigheten hjälper till att fånga negativa sökord innan besökare kan klicka på Google-annonsen.
Förbättrad konverteringsgrad (endast relevanta sökningar ger fler försäljningar)
Ytterligare resurser
För dig som vill lära dig mer om effektiv sökordshantering och AI-optimering, överväg att utforska dessa resurser:
Google Ads Script för att utvärdera varje nytt sökord
Här är vårt skript som vi kör varje timme för att utvärdera sökordskluster.
Detta skript syftar till att automatisera flera uppgifter relaterade till hantering av Google Ads-kampanjer. Det interagerar med Google Sheets för konfiguration och inställningar, och utför operationer på Google Ads-konton, såsom analys av söktermer, tillägg eller exkludering av sökord samt integration med FlowHunt API för avancerad AI-sökordsgruppering.
Google Sheet för att hantera skriptinställningar
Negativa sökord appliceras automatiskt på annonsgrupper
Huvudfunktion
Den centrala styrlogiken finns i funktionen main(). Denna funktion öppnar det Google Sheets-dokument som anges av spreadsheetURL, hämtar nödvändiga konfigurationsinställningar såsom apiKey, country, language och andra.
Systemet försöker först lägga till nya positiva sökord till FlowHunt-klustret. Om det lyckas fortsätter det med att analysera icke-tilldelade söktermer.
Sökordsanalys
Analys av icke-tilldelade ord: Funktionen går igenom alla annonsgrupper i Ads-kontot som är markerade med en specifik etikett. Den hämtar söktermer från Google Ads som för närvarande inte är inriktade och har haft minst ett visningstillfälle.
Systemet använder FlowHunt API för att hitta liknande sökord till det som analyseras och filtrerar dem baserat på ett angivet minimumMatch-kriterium.
Söktermer som uppfyller kriterierna läggs till som positiva sökord eller markeras som negativa om minimikraven inte är uppfyllda, och denna information uppdateras i relevant Google Sheet samt i dina Google Ads-kampanjer.
FlowHunt-integration
API-integration: Skriptet förlitar sig på funktionen callFlowHuntApi() för att interagera med FlowHunt API för olika uppgifter, inklusive att hämta arbetsytans ID och gruppera sökord.
Lägg till sökord i kluster: Denna funktion skickar positiva sökord tillbaka till FlowHunt för gruppering, så att de baseras på live sökfrågedata från Google Ads.
Tillagda och negativa sökord loggas i separata blad för löpande uppföljning och granskning.
Användning
För att använda detta skript behöver användare:
Ange en giltig Google Sheets-URL och se till att nödvändiga blad (“Settings”, “AddedKW”, “NegativeKW”) finns.
Konfigurera Google Sheets med korrekt FlowHunt API-nyckel, landskoder och andra driftsinställningar.
Säkerställ att skriptet körs i en Google Ads Script-miljö med rätt API-åtkomst aktiverad.
Lägg till skriptet i dina Google Ads via menyn Verktyg -> Massåtgärder -> Skript.
Glöm inte att ange den faktiska länken till ditt Google Sheet-dokument. Resten är vår magi. Vi identifierar sökord som tillhör kampanjen och automatiserar hanteringen av sökord (både negativa och positiva).
Google Ads Script för automatisk hantering av negativa sökord
//Global variables
varspreadsheetURL;
varspreadsheet;
varsheetSettings;
varsheetAddedKW;
varsheetNegativeKW;
varapiKey;
varlabelName;
varcountry;
varlanguage;
varlocation;
varurlsCount;
varminimumMatch;
varworkspaceId;
functionmain() {
// Provide the Google Sheets URL here
spreadsheetURL="https://docs.google.com/spreadsheets/d/....... FULL URL TO GOOGLE SHEET";
spreadsheet=SpreadsheetApp.openByUrl(spreadsheetURL);
sheetSettings=spreadsheet.getSheetByName("Settings");
sheetAddedKW=spreadsheet.getSheetByName("AddedKW");
sheetNegativeKW=spreadsheet.getSheetByName("NegativeKW");
apiKey=getSettingValue("FlowHuntAPIkey")
labelName=getSettingValue("LabelName")
country=getSettingValue("CountryCode")
language=getSettingValue("LanguageCode")
location=getSettingValue("Location")
urlsCount=getSettingValue("TopUrlsCount")
minimumMatch=getSettingValue("MinimumMatch")
workspaceId=getWorkspaceId()
if (workspaceId.length<10) {
Logger.log("Failed to load workspace id from FlowHunt, check API key");
return;
}
Logger.log("FlowHunt WorkspaceId: "+workspaceId);
if (addPositiveKWsToCluster() ==0) {
// Analyze new keywords just if all positive keywords added already
analyzeNotAssignedWords();
}
}
functionanalyzeNotAssignedWords() {
Logger.log("*** START Checking not assigned keywords");
// Iterate through all ad groups in the account
varadGroupsIterator=AdsApp.adGroups().get();
while (adGroupsIterator.hasNext()) {
varadGroup=adGroupsIterator.next();
vargroupName=adGroup.getId() +" - "+adGroup.getName();
if (hasLabel(adGroup, labelName)) {
// Get the search terms for the current ad group ordered by clicks in the last X days
varsearchTermsQuery="SELECT Query FROM SEARCH_QUERY_PERFORMANCE_REPORT "+"WHERE AdGroupId = "+adGroup.getId() +" AND QueryTargetingStatus = \"NONE\" "+"DURING TODAY";
varsearchTermsIterator=AdsApp.report(searchTermsQuery).rows();
varadGroupKeywords= [];
while (searchTermsIterator.hasNext()) {
varsearchTerm=searchTermsIterator.next();
varsearchTermText=searchTerm["Query"].trim();
varsimilarQueries=getSimilarQueries(groupName, searchTermText)
varfilteredSimilarQueries=getFilteredSimilarQueries(similarQueries);
if (filteredSimilarQueries.length>0) {
varkeywordOperation=adGroup.newKeywordBuilder().withText("["+searchTermText+"]").build();
if (keywordOperation.isSuccessful()) {
adGroupKeywords.push(searchTermText);
varrowData= [groupName, searchTermText, new Date(), "ADDING AS POSITIVE, REVIEW!", JSON.stringify(filteredSimilarQueries)];
sheetAddedKW.appendRow(rowData);
} else {
Logger.log("Failed to add keyword as positive:"+searchTermText)
}
} else {
// add to negative
adGroup.createNegativeKeyword("["+searchTermText+"]");
Logger.log("Excluded search term in ad group '"+groupName+"': "+searchTermText);
varrowData= [groupName, "["+searchTermText+"]", new Date(), JSON.stringify(similarQueries)];
sheetNegativeKW.appendRow(rowData);
}
}
if (adGroupKeywords.length>0) {
//Add all keywords in the list to FlowHunt Cluster
addKeywordsToFlowHunt(groupName, adGroupKeywords);
}
}
}
Logger.log("*** FINISHED Checking not assigned keywords");
}
functiongetSimilarQueries(groupName, query) {
result=callFlowHuntApi("/serp/serp/cluster/query_intersections?workspace_id="+workspaceId, "POST", {
"query":query,
"country":country,
"language":language,
"location":location,
"group_name":groupName,
"live_mode":true,
"max_position":urlsCount });
Logger.log(result)
if (result.status=="SUCCESS") {
returnJSON.parse(result.result);
}
return []
}
functiongetFilteredSimilarQueries(similarQueries) {
filtered= [];
for (vari=1; i<similarQueries.length; i++){
if (similarQueries[i].count>=minimumMatch) {
filtered.push(similarQueries[i]);
}
}
returnfiltered;
}
functionaddPositiveKWsToCluster() {
Logger.log("*** START Checking new campaign keywords");
// Iterate through all ad groups in the account
varadGroupsIterator=AdsApp.adGroups().get();
varprocessedKWs=sheetAddedKW.getDataRange().getValues();
varprocessedKWsMap= {};
varrowsAdded=0;
for (vari=1; i<processedKWs.length; i++) { // Start at 1 to skip header row if exists
vargroupName=processedKWs[i][0];
varkeyword=processedKWs[i][1];
processedKWsMap[groupName+'|'+keyword] =true;
}
while (adGroupsIterator.hasNext()) {
varadGroup=adGroupsIterator.next();
vargroupName=adGroup.getId() +" - "+adGroup.getName();
if (hasLabel(adGroup, labelName)) {
varkeywordsIterator=adGroup.keywords().get();
varadGroupKeywords= [];
while (keywordsIterator.hasNext()) {
varkeyword=keywordsIterator.next();
if (keyword.isEnabled()) {
varkey=groupName+'|'+keyword.getText();
if (!processedKWsMap[key]) {
adGroupKeywords.push(keyword.getText());
varrowData= [groupName, keyword.getText(), new Date(), "Already present in campaign"];
sheetAddedKW.appendRow(rowData);
processedKWsMap[key] =true;
}
}
}
if (adGroupKeywords.length>0) {
//Add all keywords in the list to FlowHunt Cluster
addKeywordsToFlowHunt(groupName, adGroupKeywords);
} else {
Logger.log("No new keywords in Group: "+groupName);
}
rowsAdded=rowsAdded+adGroupKeywords.length }
}
Logger.log("*** FINISHED Checking new campaign keywords");
returnrowsAdded;
}
functionaddKeywordsToFlowHunt(GroupName, adGroupKeywords) {
requests= []
adGroupKeywords.forEach(function(keyword) {
requests.push(
{
"query":keyword,
"country":country,
"language":language,
"location":location,
"group_name":GroupName,
"count_urls":30 }
);
});
callFlowHuntApi("/serp/serp/cluster/add_queries?workspace_id="+workspaceId, "POST", {"requests":requests});
}
functiongetSettingValue(settingName) {
vardata=sheetSettings.getDataRange().getValues();
for (vari=0; i<data.length; i++) {
if (data[i][0] ===settingName) {
returndata[i][1];
}
}
returnnull;
}
functiongetWorkspaceId() {
result=callFlowHuntApi("/auth/me", "GET")
if (result!==null) {
returnresult.api_key_workspace_id;
}
}
functioncallFlowHuntApi(endpoint, method, requestBody) {
varurl="https://api.flowhunt.io/v2"+endpoint;
varheaders= {
"Api-Key":apiKey,
"Content-Type":"application/json" };
varoptions= {
"method":method, // or "post", "put", etc.
"headers":headers,
"payload":JSON.stringify(requestBody)
};
try {
varresponse=UrlFetchApp.fetch(url, options);
varresponseData=JSON.parse(response.getContentText());
Logger.log(responseData);
returnresponseData;
} catch (e) {
Logger.log("An error occurred: "+e.message);
}
returnnull;
}
functionhasLabel(adGroup, labelName) {
varlabels=adGroup.labels().get();
while (labels.hasNext()) {
varlabel=labels.next();
if (label.getName() ===labelName) {
Logger.log("Processing Adgroup "+adGroup.getName());
returntrue;
}
}
returnfalse;
}
Vanliga frågor
Negativa sökord förhindrar att dina annonser visas för irrelevanta sökningar, minskar bortkastad annonsspendering och förbättrar kampanjens ROI genom att fokusera endast på de mest relevanta sökningarna.
AI-verktyg som FlowHunt analyserar sökdata i realtid, identifierar irrelevanta sökord och uppdaterar automatiskt dina kampanjer med negativa sökord, vilket sparar tid och ökar effektiviteten.
Förvänta dig högre konverteringsgrad, minskad annonsspendering på irrelevanta klick och mer effektiva kampanjer när AI kontinuerligt optimerar dina sökordslistor och målgrupper.
Du behöver koppla ditt Google Ads-konto, konfigurera inställningar i ett Google Sheet och implementera det tillhandahållna skriptet för att möjliggöra automatiserad sökordshantering med FlowHunts AI.
Viktor Zeman är delägare i QualityUnit. Även efter 20 år som ledare för företaget är han främst mjukvaruingenjör, specialiserad på AI, programmatisk SEO och backendutveckling. Han har bidragit till många projekt, inklusive LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab och många andra.
Viktor Zeman
VD, AI-ingenjör
Automatisera dina Google Ads med AI
Redo att maximera din ROI från Google Ads? Upptäck hur AI-driven automatisering hanterar dina negativa sökord och optimerar annonsspenderingen.
Flow of the Week #2: AI-skribenten som förvandlar ett nyckelord till ett helt blogginlägg
Flow of the Week #2 är Advanced Blog Generator — en gratis AI-skribent som tar ett nyckelord och returnerar en helt undersökt, SEO-strukturerad artikel på 1 500...
Förenkla innehållsskapandet med din egen AI-drivna idégenerator för innehåll
Säg hejdå till skrivkramp och få skräddarsydda innehållsidéer. Lär dig hur du bygger din egen anpassade AI Content Idea Generator med FlowHunt, som genererar un...
Lås upp tillväxt med marknadsföringsautomation, prediktiv lead scoring och personaliserad marknadsföring med AI. Expertmålgruppsinriktning, optimering av annons...
7 min läsning
Cookie-samtycke Vi använder cookies för att förbättra din surfupplevelse och analysera vår trafik. See our privacy policy.