Блог за онлайн маркетинг за бизнеса

PPC

Как да визуализираме Показателя за качество (Quality Score) на ключовите думи — рецепта за скрипт на език R

9
0
0
0

Искате бързо да определите слабите места в рекламните кампании? Използвайте ясни и удобни графики с извадка от информацията за съставящи показателя за качество на ключовите думи. В тази статия ще опиша подробно колко е лесно да се анализират тези данни с помощта на езика за програмиране R.

Защо трябва да се визуализира показателят за качество?

През февруари 2016 година Google пусна нова версия на API и се появи възможност да се теглят статусите на съставящите в показателя за качество. Тогава все още нямаше готови безплатни скриптове за работа с тези данни.

Малка забележка. Мисля, че за никого от рекламодателите не е тайна как става  аукциона в Google AdWords. Всички реклами се ранжират според рейтинга, пресметнат по формулата:

[показател за качество на ключовата дума] * [оферта].

Визуализацията на показателя за качество помага да се оптимизира работата на специалиста. Получавайки високи стойности на показателя на качество за ключови думи, Вие значително ще намалите стойността на клика и за същия бюджет ще получите по-качествен трафик.

Какво трябва за създаване на скрипта?

  1. Да се изтегли и инсталира последната версия на език R.
  2. За по-удобна работа в R, съветвам да се изтегли среда за разработка R Studio.
  3. Получете user ID в Google Console (как да направим това).
  4. Да получим токен за разработчик AdWords API (как да получим токен).
  5. Акаунтът 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 console
secret  <- "XXXXXXXXXXXXXXXXXXXX"  #Secret от Client ID от google console
adwords_token <- "XXXXXXXXXXXXXXXX"  #Токен AdWords API
ga_view <- "ga:XXXXXXXXXX"  #ID представяния Google Analytics
adwordsID <- "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 Analytics
ga_auth <- Auth(clienid,secret)

Отбележете тази част на скрипта и натиснете «Ctrl+Enter».

2.2. Веднага след това, в конзолата, която по подразбиране се намира в долния ляв ъгъл на RStudio, се появява питане: искате ли да съхраните данните от акаунта за авторизация в Google акаунта. Съветвам ви да отговорите на този въпрос с отказ, посочвайки «No».

По-нататък в конзолата ще бъде генериран линк, копирайте го и го отворете в браузера. Аутентификация в Google Analytics

2.3. Чрез този линк в браузера ще се отвори списък с достъпните Google акаунти. Изберете този, в който има достъп до нужния изглед на собственост на Google Analytics. 

Изберете този, в който има достъп до нужния изглед на собственост на Google Analytics.

След това ще трябва да дадете разрешение за преглед на данни в Google Analytics. 

Да дадете разрешение за преглед на данни в Google Analytics.

2.4. След това, в браузъра се генерира ключ за достъп. Копирайте го и го вмъкнете в RStudio конзолата. в браузере генерируется ключ доступа

3. Удостоверяване в Google AdWords

3.1. За авторизация в Google AdWords трябва да се използва командата «doAuth». Копирайте и вмъкнете след всички предишни редове в RStudio следната част код:

#Автентификация в Google AdWords
adwords_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 конзолата. Разрешить доступ для просмотра данных Google AdWords

4. Получаваме данни от Google Analytics и Google AdWords

Следва част от скрипта, отговаряща за получаване и обработка на данни от Google AdWords и Google Analytics.

#Получаваме данни от Google Analytics
ga_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 AdWords
adwords_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

Код за създаване на визуализация:

#Визуализация по очаквано значение на CTR
ggplot(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 Ако имате ниска очаквана стойност на CTR, може:

  • да се повишат офертите, за да може рекламите да са на по-високи (и по-често кликани) позиции;
  • да се добавят разширения към рекламите;
  • да се напишат в текста на рекламите думи, които да привлекат вниманието на потребителите (например, «намаление», «акция» или «разпродажба»).

Изводи

Ако правилно внедрите всички точки от тази статия,то Вие ще получите скрипт, който да помогне да се визуализира показателя за качество и да се оптимизира работата на специалиста по PPC.

За да използвате скрипт в RStudio, Вие трябва да:

  1. Включите пакети «RAdwords»,«RGoogleAnalytics», «ggplot2» и «googlesheets».
  2. Използвате променливи «clienid», «secret», «adwords_token», «ga_view», «adwordsID», «start_period» и «end_period».
  3. Преминете авторизацията в Google Analytics и Google AdWords;
  4. Стартирате скрипта.
  5. Визуализирате данните. Дадох няколко примера за графики за удобен анализ на всички фактори:
  • средния показател за качество в рекламни групи;
  • разпределение на ключови думи по ниво на показателя за качество в рекламни кампании;
  • разпределение на ключови думи по ниво на релеватнност на рекламите;
  • разпределение на ключови думи по ниво на релевантност на целева страница;
  • разпределение на ключови думи по очакван CTR.

Щателно оптимизирайки показателя за качество по ключови думи, Вие можете значително да намалите стойността на клика и да получите няколко пъти по-голям трафик в рамките на определения бюджет.

Коментари (0)

Оторизирай се, за да коментираш

Абонирай се

за най-интересен бюлетин за онлайн маркетинг

Най

обсъждано популярно четено