Automatyzacja wykluczających słów kluczowych Google Ads za pomocą AI
FlowHunt automatyzuje zarządzanie wykluczającymi słowami kluczowymi w Google Ads za pomocą AI, pomagając firmom ograniczyć koszty, zoptymalizować wydatki na reklamy i poprawić wyniki kampanii bez wysiłku.
Google Ads
Negative Keywords
AI
Automation
PPC
Digital Marketing
Scripts
Zrozumienie niepożądanych wydatków na słowa kluczowe
Niepożądane wydatki na słowa kluczowe pojawiają się wtedy, gdy Twoje reklamy wyświetlają się w wynikach wyszukiwania niezwiązanych z tym, co sprzedajesz. Może to szybko wyczerpać budżet, ponieważ każde nieistotne kliknięcie kosztuje, ale nie prowadzi do sprzedaży. Na przykład firma oferująca ekskluzywne skórzane buty, jeśli ustawi szerokie słowa kluczowe jak „kup buty”, może przyciągnąć kliknięcia osób zainteresowanych trampkami lub sandałami, które nie są jej ofertą. Takie niedopasowanie słów kluczowych prowadzi do marnotrawstwa budżetu reklamowego i obniża zwrot z inwestycji (ROI). Firmy muszą zrozumieć to zjawisko, aby uniknąć niepotrzebnych strat finansowych i skoncentrować budżet na właściwych słowach kluczowych.
Rola wykluczających słów kluczowych
Wykluczające słowa kluczowe to kluczowe narzędzie w każdej kampanii Google Ads. Pozwalają reklamodawcom wykluczyć określone frazy, aby ich reklamy nie były wyświetlane przy niepożądanych wyszukiwaniach, zapewniając, że tylko trafne zapytania powodują wyświetlenie reklamy. Przykładowo, wykorzystanie wykluczających słów jak „tanie” czy „promocja” pozwala firmie ze skórzanymi butami uniknąć kliknięć od osób niezainteresowanych produktami premium. Tworząc starannie listę wykluczających słów kluczowych, firmy mogą zoptymalizować wydatki reklamowe, ograniczyć niechciane kliknięcia i zwiększyć skuteczność kampanii.
Gotowy na rozwój swojej firmy?
Rozpocznij bezpłatny okres próbny już dziś i zobacz rezultaty w ciągu kilku dni.
Sztuczna inteligencja (AI) zmienia sposób, w jaki reklamodawcy zarządzają kampaniami Google Ads. Narzędzia AI, takie jak FlowHunt, służą do grupowania słów kluczowych, pomagając firmom skuteczniej identyfikować i organizować powiązane frazy. Automatyzacja upraszcza proces wyszukiwania zarówno pozytywnych, jak i wykluczających słów kluczowych, ograniczając ilość ręcznej pracy przy zarządzaniu kampaniami. AI umożliwia wprowadzanie zmian w czasie rzeczywistym na podstawie danych o skuteczności, dzięki czemu wydatki reklamowe są nieustannie optymalizowane pod kątem najlepszego zwrotu z inwestycji.
Strategie ograniczania niepożądanych wydatków na słowa kluczowe
Aby ograniczyć niepożądane wydatki na słowa kluczowe, firmy powinny wdrożyć kilka strategii:
Regularnie aktualizuj listę słów kluczowych, aby odpowiadała zmieniającym się trendom rynkowym i zainteresowaniom klientów.
Stosuj skuteczną strategię wykluczających słów kluczowych, nieustannie badając i aktualizując listę fraz do wykluczenia.
Monitoruj i dostosowuj kampanie na podstawie danych o skuteczności.
Analizuj, które słowa kluczowe generują sprzedaż, a które nie, aby udoskonalić targetowanie i zmaksymalizować wydatki reklamowe.
Dołącz do naszego newslettera
Otrzymuj najnowsze wskazówki, trendy i oferty za darmo.
Studium przypadku: podejście PostAffiliatePro
PostAffiliatePro miał problem z miesięcznymi wydatkami na reklamy i nie osiągał oczekiwanego zwrotu z kampanii Google Ads. Postanowili wykorzystać AI do rozwiązania tego problemu. Dzięki wdrożeniu narzędzi opartych na AI, zautomatyzowali proces zarządzania słowami kluczowymi, dokładniej identyfikując pozytywne i wykluczające frazy. Zmiana ta pozwoliła zoptymalizować wydatki reklamowe, znacząco obniżyć koszty i zwiększyć efektywność kampanii. Ich doświadczenie pokazuje, jak duże korzyści daje wykorzystanie AI w skutecznym zarządzaniu wydatkami na słowa kluczowe. Analiza każdego nowego słowa kluczowego odbywa się w ciągu godziny od pierwszego wyświetlenia. Szybkość pozwala wyłapać wykluczające słowa zanim użytkownicy klikną na reklamę Google.
Zwiększony współczynnik konwersji (tylko trafne wyszukiwania przynoszą więcej sprzedaży)
Dodatkowe zasoby
Osoby zainteresowane skutecznym zarządzaniem słowami kluczowymi i optymalizacją z wykorzystaniem AI mogą skorzystać z tych materiałów:
Skrypt Google Ads do oceny każdego nowego słowa kluczowego
Poniżej prezentujemy nasz skrypt, który uruchamiamy co godzinę, by oceniać klastry słów kluczowych.
Ten skrypt automatyzuje szereg zadań związanych z zarządzaniem kampaniami Google Ads. Współpracuje z Google Sheets w celu konfiguracji i ustawień, a także realizuje operacje na koncie Google Ads, takie jak analiza zapytań, dodawanie lub wykluczanie słów kluczowych oraz integrację z API FlowHunt do zaawansowanego klastrowania słów kluczowych przez AI.
Arkusz Google do zarządzania ustawieniami skryptu
Wykluczające słowa kluczowe automatycznie stosowane w grupach reklam
Główna funkcja
Główna logika kontrolna znajduje się w funkcji main(). Otwiera ona dokument Google Sheets wskazany przez spreadsheetURL i pobiera niezbędne ustawienia konfiguracyjne takie jak apiKey, country, language i inne.
System najpierw próbuje dodać nowe pozytywne słowa kluczowe do klastra FlowHunt. Jeśli się uda, przechodzi do analizy nieprzypisanych zapytań.
Analiza słów kluczowych
Analiza nieprzypisanych słów: Funkcja przechodzi przez wszystkie grupy reklam na koncie oznaczone określoną etykietą. Pobiera zapytania z Google Ads, które nie są obecnie targetowane i miały przynajmniej jedno wyświetlenie.
System korzysta z API FlowHunt, aby znaleźć podobne słowa do analizowanego słowa kluczowego, filtrując je w oparciu o określone kryterium minimumMatch.
Zapytania spełniające kryteria są dodawane jako pozytywne słowa kluczowe lub oznaczane jako wykluczające, jeśli nie spełniają minimalnych wymagań; odpowiednie informacje zostają zaktualizowane w Google Sheet oraz w kampaniach Google Ads.
Integracja z FlowHunt
Komunikacja z API: Skrypt używa funkcji callFlowHuntApi(), by komunikować się z API FlowHunt w różnych zadaniach, w tym pobierania ID workspace i klastrowania słów kluczowych.
Dodawanie słów do klastra: Funkcja przesyła pozytywne słowa kluczowe do FlowHunt w celu klastrowania, korzystając z danych zapytań na żywo z Google Ads.
Dodane oraz wykluczające słowa kluczowe są zapisywane w osobnych arkuszach na potrzeby dalszego monitorowania i analizy.
Użytkowanie
Aby wdrożyć ten skrypt, użytkownicy powinni:
Podać poprawny adres URL do Google Sheets i upewnić się, że istnieją wymagane arkusze („Settings”, „AddedKW”, „NegativeKW”).
Skonfigurować arkusz Google Sheets z poprawnym kluczem API FlowHunt, kodami krajów oraz innymi ustawieniami operacyjnymi.
Zapewnić, że skrypt jest wykonywany w środowisku Google Ads Script z włączonym dostępem do odpowiednich API.
Dodaj skrypt do Google Ads w menu Narzędzia -> Operacje zbiorcze -> Skrypty.
Nie zapomnij ustawić rzeczywistego linku do Twojego dokumentu Google Sheet. Reszta to nasza magia. Identyfikujemy słowa kluczowe przypisane do kampanii i automatyzujemy zarządzanie słowami kluczowymi (zarówno wykluczającymi, jak i pozytywnymi).
Skrypt Google Ads do automatycznego zarządzania wykluczającymi słowami kluczowymi
//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;
}
Najczęściej zadawane pytania
Wykluczające słowa kluczowe zapobiegają wyświetlaniu reklam na nieistotne wyszukiwania, ograniczając niepotrzebne wydatki i poprawiając ROI kampanii poprzez kierowanie wyłącznie na najbardziej trafne zapytania.
Narzędzia AI, takie jak FlowHunt, analizują dane wyszukiwania w czasie rzeczywistym, identyfikują nieistotne słowa kluczowe i automatycznie aktualizują kampanie o wykluczające słowa kluczowe, oszczędzając czas i zwiększając efektywność.
Możesz oczekiwać wyższych współczynników konwersji, mniejszych wydatków na nieistotne kliknięcia i bardziej efektywnych kampanii, ponieważ AI nieustannie optymalizuje listy słów kluczowych i kierowanie reklam.
Musisz połączyć swoje konto Google Ads, skonfigurować ustawienia w arkuszu Google Sheet i wdrożyć dostarczony skrypt, aby uruchomić automatyczne zarządzanie słowami kluczowymi wspierane przez AI FlowHunt.
Viktor Zeman jest współwłaścicielem QualityUnit. Nawet po 20 latach kierowania firmą pozostaje przede wszystkim inżynierem oprogramowania, specjalizującym się w AI, programatycznym SEO i programowaniu backendu. Przyczynił się do powstania wielu projektów, w tym LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab i wielu innych.
Viktor Zeman
CEO, inżynier AI
Automatyzuj swoje Google Ads z AI
Chcesz zmaksymalizować zwrot z inwestycji w Google Ads? Odkryj, jak automatyzacja wspierana przez AI zarządza wykluczającymi słowami kluczowymi i optymalizuje wydatki reklamowe.
Flow of the Week #2: Pisarz AI, który zamienia jedno słowo kluczowe w pełny wpis na blogu
Flow of the Week #2 to zaawansowany generator blogów — darmowy pisarz AI, który bierze jedno słowo kluczowe i zwraca w pełni zbadany, strukturyzowany pod kątem ...
Zrozumienie optymalizacji PPC i grupowania słów kluczowych
Dowiedz się, jak optymalizować kampanie PPC i opanować grupowanie słów kluczowych, aby zwiększyć trafność, poprawić Wyniki Jakości, uzyskać lepszy zwrot z inwes...