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.

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.
Wykorzystanie AI w zarządzaniu słowami kluczowymi
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.
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.
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.
Główna funkcja
- Główna logika kontrolna znajduje się w funkcji
main()
. Otwiera ona dokument Google Sheets wskazany przezspreadsheetURL
i pobiera niezbędne ustawienia konfiguracyjne takie jakapiKey
,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.
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
var spreadsheetURL;
var spreadsheet;
var sheetSettings;
var sheetAddedKW;
var sheetNegativeKW;
var apiKey;
var labelName;
var country;
var language;
var location;
var urlsCount;
var minimumMatch;
var workspaceId;
function main() {
// 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();
}
}
function analyzeNotAssignedWords() {
Logger.log("*** START Checking not assigned keywords");
// Iterate through all ad groups in the account
var adGroupsIterator = AdsApp.adGroups().get();
while (adGroupsIterator.hasNext()) {
var adGroup = adGroupsIterator.next();
var groupName = 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
var searchTermsQuery = "SELECT Query FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE AdGroupId = " + adGroup.getId() +
" AND QueryTargetingStatus = \"NONE\" " +
"DURING TODAY";
var searchTermsIterator = AdsApp.report(searchTermsQuery).rows();
var adGroupKeywords = [];
while (searchTermsIterator.hasNext()) {
var searchTerm = searchTermsIterator.next();
var searchTermText = searchTerm["Query"].trim();
var similarQueries = getSimilarQueries(groupName, searchTermText)
var filteredSimilarQueries = getFilteredSimilarQueries(similarQueries);
if (filteredSimilarQueries.length > 0) {
var keywordOperation = adGroup.newKeywordBuilder().withText("[" + searchTermText + "]").build();
if (keywordOperation.isSuccessful()) {
adGroupKeywords.push(searchTermText);
var rowData = [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);
var rowData = [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");
}
function getSimilarQueries(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") {
return JSON.parse(result.result);
}
return []
}
function getFilteredSimilarQueries(similarQueries) {
filtered = [];
for (var i=1; i<similarQueries.length; i++){
if (similarQueries[i].count>=minimumMatch) {
filtered.push(similarQueries[i]);
}
}
return filtered;
}
function addPositiveKWsToCluster() {
Logger.log("*** START Checking new campaign keywords");
// Iterate through all ad groups in the account
var adGroupsIterator = AdsApp.adGroups().get();
var processedKWs = sheetAddedKW.getDataRange().getValues();
var processedKWsMap = {};
var rowsAdded = 0;
for (var i = 1; i < processedKWs.length; i++) { // Start at 1 to skip header row if exists
var groupName = processedKWs[i][0];
var keyword = processedKWs[i][1];
processedKWsMap[groupName + '|' + keyword] = true;
}
while (adGroupsIterator.hasNext()) {
var adGroup = adGroupsIterator.next();
var groupName = adGroup.getId() + " - " + adGroup.getName();
if (hasLabel(adGroup, labelName)) {
var keywordsIterator = adGroup.keywords().get();
var adGroupKeywords = [];
while (keywordsIterator.hasNext()) {
var keyword = keywordsIterator.next();
if (keyword.isEnabled()) {
var key = groupName + '|' + keyword.getText();
if (!processedKWsMap[key]) {
adGroupKeywords.push(keyword.getText());
var rowData = [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");
return rowsAdded;
}
function addKeywordsToFlowHunt(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});
}
function getSettingValue(settingName) {
var data = sheetSettings.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
if (data[i][0] === settingName) {
return data[i][1];
}
}
return null;
}
function getWorkspaceId() {
result = callFlowHuntApi("/auth/me", "GET")
if (result !== null) {
return result.api_key_workspace_id;
}
}
function callFlowHuntApi(endpoint, method, requestBody) {
var url = "https://api.flowhunt.io/v2" + endpoint;
var headers = {
"Api-Key": apiKey,
"Content-Type": "application/json"
};
var options = {
"method" : method, // or "post", "put", etc.
"headers" : headers,
"payload": JSON.stringify(requestBody)
};
try {
var response = UrlFetchApp.fetch(url, options);
var responseData = JSON.parse(response.getContentText());
Logger.log(responseData);
return responseData;
} catch (e) {
Logger.log("An error occurred: " + e.message);
}
return null;
}
function hasLabel(adGroup, labelName) {
var labels = adGroup.labels().get();
while (labels.hasNext()) {
var label = labels.next();
if (label.getName() === labelName) {
Logger.log("Processing Adgroup " + adGroup.getName());
return true;
}
}
return false;
}
Najczęściej zadawane pytania
- Dlaczego wykluczające słowa kluczowe są ważne w Google Ads?
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.
- Jak AI automatyzuje zarządzanie wykluczającymi słowami kluczowymi?
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ść.
- Jakich rezultatów można się spodziewać po automatyzacji wykluczających słów kluczowych za pomocą AI?
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.
- Jak skonfigurować automatyzację FlowHunt dla moich Google Ads?
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.

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.