Как да визуализираме Показателя за качество (Quality Score) на ключовите думи — рецепта за скрипт на език R
Искате бързо да определите слабите места в рекламните кампании? Използвайте ясни и удобни графики с извадка от информацията за съставящи показателя за качество на ключовите думи. В тази статия ще опиша подробно колко е лесно да се анализират тези данни с помощта на езика за програмиране R.
Защо трябва да се визуализира показателят за качество?
През февруари 2016 година Google пусна нова версия на API и се появи възможност да се теглят статусите на съставящите в показателя за качество. Тогава все още нямаше готови безплатни скриптове за работа с тези данни.
Малка забележка. Мисля, че за никого от рекламодателите не е тайна как става аукциона в Google AdWords. Всички реклами се ранжират според рейтинга, пресметнат по формулата:
[показател за качество на ключовата дума] * [оферта].
Визуализацията на показателя за качество помага да се оптимизира работата на специалиста. Получавайки високи стойности на показателя на качество за ключови думи, Вие значително ще намалите стойността на клика и за същия бюджет ще получите по-качествен трафик.
Какво трябва за създаване на скрипта?
- Да се изтегли и инсталира последната версия на език R.
- За по-удобна работа в R, съветвам да се изтегли среда за разработка R Studio.
- Получете user ID в Google Console.
- Да получим токен за разработчик AdWords API (как да получим токен).
- Акаунтът Google Analytics трябва да бъде свързан с Google AdWordss.
След това може да се премине към внедряване на скрипта.
1. Пристъпваме към работа в R
1.1. Практически, винаги работата със скриптове на R започва с включване на нужния набор от пакети. Ние ще използваме пакета «RAdwords», но ще го инсталираме от GitHub хранилище, ползвайки пакета «devtools», защото в CRAN (основното R хранилище) няма последната версия на «RAdwords».
При работа с пакета «RAdwords» с кирилица може да възникнат редица проблеми, затова имената на рекламните кампании, групи и ключови думи ще зареждаме от базата на Google Analytics с помощта на пакета «RGoogleAnalytics».
За създаване на диаграми ще използваме пакета «ggplot2», а за изтегляне на данни в Google Таблици ще ни трябва пакета «googlesheets».
Инсталирането и включването на пакети става с помощта на команда install.packages и require.
#Инсталиране и включване на нужните пакетиinstall.packages("devtools")require("devtools")install.packages("RGoogleAnalytics")require(RGoogleAnalytics)install_github('jburkhardt/RAdwords')require(RAdwords)install.packages("googlesheets")require(googlesheets)install.packages("ggplot2")require(ggplot2)
1.2. Следващата част от скрипта е обявяване на променливите за свързване към API Google AdWords и Google Analytics:
- clienid — Client ID от Google Console;
- secret — Secret от Client ID отGoogle Console;
- adwords_token — токен AdWords API;
- ga_view — ID изглед на собственост Google Analytics;
- adwordsID — ID на акаунта AdWords.
##Обявяваме променливитеclienid <- "XXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com" #Client ID от google consolesecret <- "XXXXXXXXXXXXXXXXXXXX" #Secret от Client ID от google consoleadwords_token <- "XXXXXXXXXXXXXXXX" #Токен AdWords APIga_view <- "ga:XXXXXXXXXX" #ID представяния Google AnalyticsadwordsID <- "XXX-XXX-XXX" #ID на акаунта AdWords
В отчета ще бъдат показвани не само съставящите на показателя на качество, но и някои статистически данни: показвания, кликове, средна позиция и така нататък. На този етап е нужно да се определи периода, за който планираме информацията. Да въведем още две променливи:
- start_period — дата за начало на отчетния период;
- end_period — дата за край на отчетния период.
Искам да обърна внимание, че в AdWords няма исторически данни за динамиката на промени на показателя за качество, вие ще получите само информация към текущия момент.
#Определяме отчетния периодstart_period <- c(day = "01", month = "05", year = "2016")end_period <- c(day = "05", month = "06", year = "2016")
В статията «How to Measure Lost Revenue in Google AdWords With The Help Of Language R?» аз вече описах процеса на автентификация в Google Analytics и Google AdWords, затова в точки 2 и 3 ще посоча само стъпковия алгоритъм.
2. Удостоверяване в Google Analytics
2.1. Следващата стъпка — авторизация в Google Analytics. За да я преминем, в пакета «RGoogoleAnalytics» има команда «Auth». Добавете в скрипта следните редове.
#Автентификация в сървиси.#Автентификация в Google Analyticsga_auth <- Auth(clienid,secret)
Отбележете тази част на скрипта и натиснете «Ctrl+Enter».
2.2. Веднага след това, в конзолата, която по подразбиране се намира в долния ляв ъгъл на RStudio, се появява питане: искате ли да съхраните данните от акаунта за авторизация в Google акаунта. Съветвам ви да отговорите на този въпрос с отказ, посочвайки «No».
По-нататък в конзолата ще бъде генериран линк, копирайте го и го отворете в браузера.
2.3. Чрез този линк в браузера ще се отвори списък с достъпните Google акаунти. Изберете този, в който има достъп до нужния изглед на собственост на Google Analytics.
След това ще трябва да дадете разрешение за преглед на данни в Google Analytics.
2.4. След това, в браузъра се генерира ключ за достъп. Копирайте го и го вмъкнете в RStudio конзолата.
3. Удостоверяване в Google AdWords
3.1. За авторизация в Google AdWords трябва да се използва командата «doAuth». Копирайте и вмъкнете след всички предишни редове в RStudio следната част код:
#Автентификация в Google AdWordsadwords_auth <- doAuth(F)
Отбележете този фрагмент от скрипта с помощта на мишката и натиснете «Ctrl+Enter».
3.2. Ще трябва да въведете данните от акаунта client ID и Secret, които са били генерирани при създаване на Developer Client в конзолата за Google разработчик.
3.3. След това ще трябва да се въведе токена за AdWords API разработчик (как да го получите подробно е описано тук). Ако вече имате потвърден токен, можете да го намерите в управляващия Google AdWords акаунт. За целта, преминете в настройките на акаунта и натиснете иконката с изобразена зъбчатка в горния десен ъгъл на интерфейса. В настройките изберете «Център AdWords API». Искам да отбележа, че за работа със скрипта в токена трябва да има най-малко базово ниво на достъп.
3.4. След това, браузерът ще се отвори автоматично, където отново трябва да изберете нужния Google акаунт, да разрешите достъпа за преглед на Google AdWords данни, да копирате генерирания ключ и да го вмъкнете в RStudio конзолата.
4. Получаваме данни от Google Analytics и Google AdWords
Следва част от скрипта, отговаряща за получаване и обработка на данни от Google AdWords и Google Analytics.
#Получаваме данни от Google Analyticsga_auth <- Auth(clienid,secret)ValidateToken(ga_auth)query.list <- Init(start.date = paste(start_period["year"],start_period["month"],start_period["day"],sep = "-"), end.date = paste(end_period["year"],end_period["month"],end_period["day"],sep = "-"), dimensions = "ga:adwordsCriteriaID, ga:keyword, ga:adGroup, ga:campaign, ga:adwordsAdGroupID, ga:adwordsCampaignID", metrics = "ga:impressions", filters = "ga:medium==cpc, ga:source==google", table.id = ga_view, max.results = 10000)ga.query <- QueryBuilder(query.list)gaData <- GetReportData(ga.query, ga_auth, split_daywise = FALSE, paginate_query = FALSE)#Получаваме данни от Google AdWordsadwords_auth <- doAuth()body <- statement(select=c('AccountDescriptiveName', 'Id', 'FinalUrls', 'Status', 'AdGroupId', 'AdGroupStatus', 'CampaignId', 'CampaignStatus', 'Impressions', 'Clicks', 'Cost', 'Ctr', 'AveragePosition', 'CreativeQualityScore', 'PostClickQualityScore', 'SearchPredictedCtr', 'QualityScore'),report="KEYWORDS_PERFORMANCE_REPORT",start=paste0(start_period["year"],start_period["month"],start_period["day"]),end=paste0(end_period["year"],end_period["month"],end_period["day"]))adwordsData <- getData( clientCustomerId = adwordsID, google_auth = adwords_auth, statement = body, transformation = T, apiVersion = "201601")#Съединяваме данните от Google Analytics и Google AdWords в една таблицаtotalDataRaw <- merge(adwordsData, gaData, by.x = c("KeywordID", "AdgroupID", "CampaignID"), by.y = c("adwordsCriteriaID","adwordsAdGroupID","adwordsCampaignID"), all.adwordsData = TRUE)#Почистваме таблицата от излишните колони и подреждаме колоните в нужния редtotalData <- data.frame(Campaign = totalDataRaw$campaign, AdGroup = totalDataRaw$adGroup, KeyWord = totalDataRaw$keyword, Impressions = totalDataRaw$Impressions, Clicks = totalDataRaw$Clicks, Cost = totalDataRaw$Cost, CTR = totalDataRaw$CTR, Position = totalDataRaw$Position, Qualityscore = totalDataRaw$Qualityscore, Adrelevance = totalDataRaw$Adrelevance, Landingpageexperience = totalDataRaw$Landingpageexperience, Expectedclickthroughrate = totalDataRaw$Expectedclickthroughrate)#Групираме данните по показателя за качество на нисък, среден и високfor(i in 1:length(totalData$Qualityscore)){if(as.integer(totalData$Qualityscore[i]) <= 4){ totalData$QSGroup[i] <- "Low" }else if(as.integer(totalData$Qualityscore[i]) >= 5 & as.integer(totalData$Qualityscore[i]) <= 7){ totalData$QSGroup[i] <- "Middle" }else if(as.integer(totalData$Qualityscore[i]) >= 8 & as.integer(totalData$Qualityscore[i]) <= 10){ totalData$QSGroup[i] <- "High" }}
След изпълняването на тази част на скрипта в RStudio се появява обект «totalData» — таблица с данни за съставящите показателя за качество по всяка ключова дума.
5. Визуализация на данни
В R има достатъчно широк набор от възможности за визуализация на данни. Да подготвим набор от данни за визуализация с помощта на следния код:
#Подготовка на данни за визуализацияadrelevance <- totalData[,c(1,10)]landingpageexperience <- totalData[,c(1,11)]expectedclickthroughrate <- totalData[,c(1,12)]qsgroup <- totalData[,c(1,13)]avgQS <- aggregate(as.integer(totalData$Qualityscore) ~ totalData$Campaign, FUN = "mean")colnames(avgQS) <- c("Campaign","QS")
Следват няколко примера на диаграми, които вие можете да създадете за анализ на съставящите показателя за качество.
5.1. Среден показател за качество в кампания
Код за създаване на визуализация:
#Визуализация на средния показател за качество в кампанияggplot(avgQS, aes(x = Campaign, y = QS))+ geom_bar(stat = "identity", position = "dodge", fill = "cyan4")+ theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 7))+ ggtitle("Average Quality Score by Campaign")
С помощта на тази графика може бързо да определите кампаниите, над които трябва да поработите. В конкретния случай, в четвъртата кампания средният показател за качество на ключови думи е доста нисък — по-малко от пет (първите две кампании са настроени на насочване в дисплейна мрежа, в тази връзка, на тях не си струва да се обръща внимание).
5.2. Разпределение на ключовите думи по ниво на показателя за качество в рекламни кампании
В хода на подготовка на данни в таблица «totalData» бе добавена колона «QSGroup», в която всяка ключова дума съответства на една от три групи в зависимост от показателя за качество:
- «Low» — ключови думи с показател за качество под 5;
- «Middle» — група ключови думи с показател за качество от 5 до 7;
- «High» — ключови думи с показател за качество над 7.
Код за създаване на визуализация:
#Визуализация по групиран показател за качествоggplot(qsgroup, aes(x = Campaign, fill = QSGroup))+ geom_bar(stat = "count", position = "fill")+ scale_fill_manual(breaks=c("High","Middle","Low"),values=c(High = "forestgreen", Middle = "tan1" , Low = "firebrick1"))+ theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 7))+ ggtitle("Number of keywords by Quality Score Group")
На представената по-горе графика се вижда, че в четвъртата кампания над 70% от ключовите думи се намират в група «Low», тоест показателят за качество по тези думи е под 5.
5.3. Разпределение на ключовите думи по ниво на релевантност на рекламите
Всяка ключова дума съответства на една от четирите групи в зависимост от това каква оценка е поставил Google:
- «Above average» — над средното;
- «Average» — средна оценка;
- «Below average» — под средното;
- «Not applacate» — неопределено.
Код за построяване на визуализация:
#Визуализация по релевантност на обявиggplot(adrelevance, aes(x = Campaign, fill = Adrelevance))+ geom_bar(stat = "count", position = "fill")+ scale_fill_manual(values=c("forestgreen", "tan1" , "firebrick1","grey" ))+ theme(axis.text.x = element_text(angl
Релевантността на рекламите оказва най-малко влияние на показателя за качество, независимо от това, повишаването на оценката на тази съставна не е сложно. Вие можете да отделите ключовите думи с ниска релевантност на реклами в отделна рекламна група или да добавите в рекламна кампания нови реклами, които съдържат ключовите думи в заглавието или текста.
5.4. Разпределение на ключови думи по ниво на релевантност на целева страница
Код за създаване на визуализация:
#Визуализация по качество на целева страницаggplot(landingpageexperience, aes(x = Campaign, fill = Landingpageexperience))+ geom_bar(stat = "count", position = "fill")+ scale_fill_manual(values=c("forestgreen", "tan1" , "firebrick1","grey" ))+ theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 7))+ ggtitle("Landing page experience by Campaign")
Оценката на съдържанието на страницата на сайта, на който води рекламната обява, е важна при определянето на показателя за качество. Подобряването й е достатъчно сложно, тъй като Google алгоритъмът отчита много фактори — от контента на самата страница до удобството за ползване на сайта.
5.5. Разпределение на ключови думи по очаквано значение на CTR
Код за създаване на визуализация:
#Визуализация по очаквано значение на CTRggplot(expectedclickthroughrate, aes(x = Campaign, fill = Expectedclickthroughrate))+ geom_bar(stat = "count", position = "fill")+ scale_fill_manual(values=c("forestgreen", "tan1" , "firebrick1","grey" ))+ theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 7))+ ggtitle("Expected CTR by Campaign")
Ако имате ниска очаквана стойност на CTR, може:
- да се повишат офертите, за да може рекламите да са на по-високи (и по-често кликани) позиции;
- да се добавят разширения към рекламите;
- да се напишат в текста на рекламите думи, които да привлекат вниманието на потребителите (например, «намаление», «акция» или «разпродажба»).
Изводи
Ако правилно внедрите всички точки от тази статия,то Вие ще получите скрипт, който да помогне да се визуализира показателя за качество и да се оптимизира работата на специалиста по PPC.
За да използвате скрипт в RStudio, Вие трябва да:
- Включите пакети «RAdwords»,«RGoogleAnalytics», «ggplot2» и «googlesheets».
- Използвате променливи «clienid», «secret», «adwords_token», «ga_view», «adwordsID», «start_period» и «end_period».
- Преминете авторизацията в Google Analytics и Google AdWords;
- Стартирате скрипта.
- Визуализирате данните. Дадох няколко примера за графики за удобен анализ на всички фактори:
- средния показател за качество в рекламни групи;
- разпределение на ключови думи по ниво на показателя за качество в рекламни кампании;
- разпределение на ключови думи по ниво на релеватнност на рекламите;
- разпределение на ключови думи по ниво на релевантност на целева страница;
- разпределение на ключови думи по очакван CTR.
Щателно оптимизирайки показателя за качество по ключови думи, Вие можете значително да намалите стойността на клика и да получите няколко пъти по-голям трафик в рамките на определения бюджет.