
Agent PPC AI z automatyzacją wykluczających fraz
Automatyzuj wykluczające słowa kluczowe w Google Ads dzięki PPC AI Agent FlowHunt. Wykluczaj nieistotne zapytania, ogranicz marnotrawstwo budżetu i zwiększ konw...
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.
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.
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.
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.
Aby ograniczyć niepożądane wydatki na słowa kluczowe, firmy powinny wdrożyć kilka strategii:
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.
Osoby zainteresowane skutecznym zarządzaniem słowami kluczowymi i optymalizacją z wykorzystaniem AI mogą skorzystać z tych materiałów:
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.
main()
. Otwiera ona dokument Google Sheets wskazany przez spreadsheetURL
i pobiera niezbędne ustawienia konfiguracyjne takie jak apiKey
, country
, language
i inne.minimumMatch
.callFlowHuntApi()
, by komunikować się z API FlowHunt w różnych zadaniach, w tym pobierania ID workspace i klastrowania słów kluczowych.Aby wdrożyć ten skrypt, użytkownicy powinni:
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).
//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;
}
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.
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.
Automatyzuj wykluczające słowa kluczowe w Google Ads dzięki PPC AI Agent FlowHunt. Wykluczaj nieistotne zapytania, ogranicz marnotrawstwo budżetu i zwiększ konw...
Zwiększ dokładność swojego chatbota AI dzięki funkcji pomijania indeksowania w FlowHunt. Wyklucz nieodpowiednie treści, aby utrzymać rozmowy na odpowiednim pozi...
Dowiedz się, dlaczego izolacja fraz wyszukiwania jest niezbędna do optymalizacji reklam PPC. Odkryj, jak targetować najlepiej konwertujące frazy, zwiększać ROI,...