کمپینهای Performance Max به دلیل اتوماسیون پیشرفته و سادگی در اجرا، به یکی از انتخابهای محبوب در میان تبلیغکنندگان PPC تبدیل شدهاند. اما یک چالش اساسی همیشه وجود داشته است: نبود شفافیت در Search Queries که تبلیغات شما را فعال میکنند. این کمبود باعث میشد بهینهسازی کمپینها تا حد زیادی محدود شود.
دسترسی به دادههای Search Terms در کمپین پرفورمنس مکس
در فوریه 2023، گوگل با معرفی گزارش campaign_search_term_insight امیدهای زیادی ایجاد کرد. این گزارش شامل یک فیلد برای نمایش Search Terms بود و امکان طراحی اسکریپتها و اتوماسیونهای جدید برای بهینهسازی کمپینها را فراهم کرد.
اگرچه اسکریپتهای اولیهای که بر اساس این گزارش طراحی شدند، منتشر شدند، اما شامل دادههای واقعی Search Terms نمیشدند. این محدودیت به دلیل وجود یک باگ در گزارش گوگل بود که فقط شامل داده های Category Labels بود.
این مشکل اخیراً برطرف شده است و اکنون امکان دسترسی به دادههای Search Terms در اسکریپتها و گزارشها فراهم شده است. این تحول جدید فرصتی عالی برای کمپین منیجرها ایجاد کرده تا کمپینهای Performance Max خود را به شکلی کاملاً بهینهتر مدیریت کنند.
برای دریافت گزارش مربوط به سرچ ترم ها در کمپین های پی مکس، از اسکریپت زیر استفاده کنید:
// Copyright 2023
// Free to use or alter for everyone. A mention would be nice ;-)
//
// Idea By: Mike Rhodes
// Put on steroids by: Tibbe van Asten
//
// Created: 15-08-2023
// Last update: 18-08-2023: fixed a little mistake in the query, that prevents you from collecting more than 30 days data
//
// ABOUT THE SCRIPT
// Export search term from Pmax campaigns to a spreadsheet.
//
////////////////////////////////////////////////////////////////////
var config = {
LOG : false,
// Change the number of days of which data must be exported. Only change the number!
DATE_RANGE: last_n_days(30),
// Edit the URL of an empty Google Sheet in here, with '/edit' at the end
SPREADSHEET_URL : ""
}
////////////////////////////////////////////////////////////////////
function main() {
var spreadsheet = SpreadsheetApp.openByUrl(config.SPREADSHEET_URL);
let campaignIterator = AdsApp
.performanceMaxCampaigns()
.withCondition("campaign.status = ENABLED")
.get();
while(campaignIterator.hasNext()){
let campaign = campaignIterator.next();
let query = AdsApp.report(
"SELECT campaign_search_term_insight.category_label, metrics.clicks, metrics.impressions, metrics.conversions, metrics.conversions_value " +
"FROM campaign_search_term_insight " +
"WHERE campaign_search_term_insight.campaign_id = '" + campaign.getId() + "' " +
"AND segments.date BETWEEN '" + config.DATE_RANGE.split(',')[0] + "' AND '" + config.DATE_RANGE.split(',')[1] + "' " +
"ORDER BY metrics.impressions DESC"
);
if(config.LOG === true){
Logger.log("Report " + campaign.getName() + " contains " + query.rows().totalNumEntities() + " rows.");
}
let sheet = checkTab(spreadsheet, campaign.getName());
query.exportToSheet(sheet);
} // campaignIterator
}
////////////////////////////////////////////////////////////////////
function checkTab(file, tabName){
if(SpreadsheetApp.openById(file.getId()).getSheetByName(tabName)){
var tab = SpreadsheetApp.openById(file.getId()).getSheetByName(tabName);
if(config.LOG === true){
Logger.log("Selected tab " + tabName);
}
} else {
var tab = SpreadsheetApp.openById(file.getId()).insertSheet(tabName);
if(config.LOG === true){
Logger.log("Created tab " + tabName);
}
}
// Remove default tab in Dutch
if(SpreadsheetApp.openById(file.getId()).getSheetByName("Blad1")){
var defaultSheet = SpreadsheetApp.openById(file.getId()).getSheetByName("Blad1")
SpreadsheetApp.openById(file.getId()).deleteSheet(defaultSheet);
}
// Remove default tab in English
if(SpreadsheetApp.openById(file.getId()).getSheetByName("Sheet1")){
var defaultSheet = SpreadsheetApp.openById(file.getId()).getSheetByName("Sheet1")
SpreadsheetApp.openById(file.getId()).deleteSheet(defaultSheet);
}
return tab;
} // function checkTab
////////////////////////////////////////////////////////////////////
function last_n_days(n) {
var from = new Date(), to = new Date();
to.setUTCDate(from.getUTCDate() - n);
from.setUTCDate(from.getUTCDate() - 1);
return google_date_range(from, to);
} // function last_n_days()
////////////////////////////////////////////////////////////////////
function google_date_range(from, to) {
function google_format(date) {
var date_array = [date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate()];
if (date_array[1] < 10) date_array[1] = '0' + date_array[1];
if (date_array[2] < 10) date_array[2] = '0' + date_array[2];
return date_array.join('');
}
var inverse = (from > to);
from = google_format(from);
to = google_format(to);
var result = [from, to];
if (inverse) {
result = [to, from];
}
return result.join(',');
} // function google_date_range()
چگونه از دادههای Search Terms استفاده کنیم؟
- دادهها را استخراج کنید:
- گزارش campaign_search_term_insight را فعال کنید.
- اسکریپتها یا اتوماسیونهای خود را بهروزرسانی کنید تا دادههای جدید را دریافت کنند.
- تحلیل دادهها:
- سرچ ترم ها را به دو دسته Brand و Non-Brand تقسیم کنید تا بدانید کمپین شما بیشتر روی چه نوع سرچ ترم هایی تمرکز دارد.
- فرصتهای جدید را شناسایی کنید: سرچ ترم هایی که قبلاً در کمپینهای شما قرار نداشته اند، میتوانند افراد جدیدی را به سمت شما جذب کنند.
- بهینهسازی کمپین:
- افزودن کلمات کلیدی: سرچ ترم های ارزشمند را به کمپینهای سرچ ادز خود اضافه کنید.
- Negative Keywords: سرچ ترم های نامربوط یا کمارزش را شناسایی کرده و از بودجه کمپین خود محافظت کنید.
نگتیو کردن سرچ ترم در کمپین های پی مکس
یکی از چالش های اصلی در بهینه سازی کمپین های پرفورمنس مکس گوگل ادز این است که سرچ ترم های غیرمرتبط را نگتیو کنیم. با توجه به اینکه در گزارش اینسایت، راهی برای انجام این کار وجود ندارد، شما برای نگتیو کردن کیوردها در کمپین های پی مکس، باید از یکی از دو روش زیر استفاده کنید: (البته در حال حاضر)
۱. نگتیو کردن در سطح اکانت: اگر مطمئن هستید که به یک سری از کیوردها در سطح تمام کمپین ها نیازی ندارید، میتوانید از این روش برای نگتیو کردن استفاده کنید.
۲. ارتباط با بخش پشتیبانی گوگل ادز و درخواست برای نگتیو کردن یک سری از کیوردها در کمپین پی مکس. در این حالت باید از بخش help با پشتیبانی گوگل ادز ارتباط برقرار کرده و درخواست خود را برای نگتیو کردن یک سری از کیوردها، اعلام کنید. این کار توسط تیم پشتیبانی برای شما انجام خواهد شد.