RCurl за използване в Google Adwords

Бих искал да изтегля данни, отнасящи се до ключови думи направо в/от R. Разбирам, че RCurl най-вероятно би бил правилният начин, но не съм сигурен как да продължа със задачата. Може би някой тук може да ме насочи на правия път?

PS. Може леко да редактирам този въпрос, докато отговорите се изсипват, защото имам някои идеи как бих могъл да изтегля данни от Adwords с помощта на R; идеите обаче са неясни и всякакви отговори вероятно биха ги направили по-ясни.

Много благодаря.


РЕДАКТИРАНЕ: Моят опит

Следното е, което опитах до сега.

1. приложете getURL към URL адреса за вход, за да идентифицирате ids на полетата Имейл и Парола

require(RCurl)
loginURL<- "https://accounts.google.com/ServiceLogin?service=adwords"
ch<- getCurlHandle()
curlSetOpt(curl=ch,ssl.verifypeer=FALSE,cainfo=system.file("CurlSSL", "cacert.pem", package = "RCurl"),cookiejar="./cookies.txt",cookiefile="./cookies.txt",verbose=TRUE,header=TRUE,followlocation=TRUE,autoreferer=TRUE)

try1<- getURL(loginURL,curl=ch)

2. Идентифицирах кои са ids за важните полета (имейл и парола)

<div class="email-div">
  <label for="Email"><strong class="email-label">Email</strong></label>
  <input type="email" spellcheck="false"  

  name="Email" id="Email" value=""

    >
</div>
<div class="passwd-div">
  <label for="Passwd"><strong class="passwd-label">Password</strong></label>
  <input type="password" name="Passwd" id="Passwd"

3. След това използвах горните полета, за да приложа функцията postForm в loginURL, за да вляза в Google Adwords

params<- list(
"Email"="myemail",
"Passwd"="mypassword",
"GALX"="3b6rR7Jvk30")

loggedIn<- postForm(loginURL,.params=params,curl=ch)

Въпреки това нямам идея как да проверя дали съм влязъл успешно.

Освен това, URL адресът за инструмента за планиране на ключови думи в потребителския интерфейс на Google Adwords е:

https://adwords.google.com/ko/KeywordPlanner/Home?__c=XXXXXXXXXX&__u=XXXXXXXXXX&__o=cues

където c= отразява customer id, а u= отразява user id. Това, което мислех да направя, като се има предвид това, беше да вляза с моя браузър, да поставя URL адреса, показан по-горе, в R и след това да се опитам да намеря идентификаторите за полета, които ще бъдат от значение за мен, като например идентификатора за keywords text box в инструмента за планиране на ключови думи, към който евентуално бих могъл да изпратя ключови думи от R.

Но когато се опитам да приложа getURL на гореспоменатия уебсайт, не получавам необходимите/очакваните xml tags или key value pairs. Вместо:

<html><head><noscript><meta http-equiv="refresh" content="0; URL=https://adwords.google.com/select/interstitial_short_js.html"></noscript></head><body><script type="text/javascript" language="javascript">var jsRedirect = true;var url = "/um/StartNewLogin?dst=/ko/KeywordPlanner/Home?__c%3D7857647860%26__u%3D4575929980%26__o%3Dcues";
if (self.document.location.hash) {url = url + ((url.indexOf('?') == -1)? '?' : '&') + "frag=" + self.document.location.hash.substring(1); }
window.location.assign(url);
</script> </body> </html>

Това ме навежда на мисълта, че вероятно си имам работа с Javascript или AJAX тук. И така, как да извлечете данни от Javascript или AJAX с помощта на RCurl и това правилният въпрос ли е да зададете?

Благодаря и извинения за дългата редакция.


person info_seekeR    schedule 25.12.2013    source източник
comment
API на Google Adwords е предоставен за много езици за тази цел (Python, Java, Ruby и т.н. ...), developers.google.com/adwords/api/docs/guides/awql можете да опитате да свържете R с един от тези API, като използвате помощна библиотека или изтеглите данните локално в csv и ги импортирате в Р   -  person Luca Fiaschi    schedule 15.02.2014
comment
@LucaFiaschi благодаря ти. Наистина, това е, върху което работя тези дни. Малко ми е трудно, тъй като съм сравнително начинаещ, но се надявам да успея. И когато го направя, ще свържа усилията си с този въпрос, за да помогна на други потребители.   -  person info_seekeR    schedule 16.02.2014
comment
@info_seekeR, успя ли?   -  person David Arenburg    schedule 06.07.2014
comment
@DavidArenburg, за съжаление не, и оттогава съм настрана от задачата. Търся сътрудници, които биха могли да помогнат, но това е настрана.   -  person info_seekeR    schedule 06.07.2014
comment
Това е много лошо, аз също търся решение за това   -  person David Arenburg    schedule 06.07.2014
comment
@DavidArenburg, да, моите извинения. Просто AJAX е твърде труден за мен да „дешифрирам“, когато осъществявам достъп до adwords API с RCurl. Ще търся повече сътрудници и веднага щом се намери решение, ще уведомя тук и може дори да го направя пакет.   -  person info_seekeR    schedule 06.07.2014
comment
Междувременно има cran.r-project.org/web/packages/ RAdwords/index.html   -  person Matt Bannert    schedule 13.02.2018


Отговори (2)


Виждали ли сте междувременно нашия RAdwords пакет?

Той осигурява процес на удостоверяване за R с API на Adwords и интерфейс за зареждане на данни от API на Adwords директно в R.

Примерен код за зареждане на данни за ключови думи:

#install package from CRAN
install.packages('RAdwords')
#load package
library(RAdwords)
#start authentication process
google_auth <- doAuth()
#build statement object
body <- statement(select=c('AccountDescriptiveName','Date', 'CampaignName', 'AdGroupName','KeywordText', 'KeywordMatchType', 'Clicks', 'Cost'),
                  report="KEYWORDS_PERFORMANCE_REPORT",
                  start="20140320",
                  end="20140321")
#download data as data frame
data <- getData(clientCustomerId='xxx-xxx-xxxx',
                google_auth = google_auth,
                statement=body,
                transformation = T)
#all available report types
reports()
#all available metrics of specific report type
metrics("KEYWORDS_PERFORMANCE_REPORT")
person jburkhardt    schedule 09.02.2015

Нямам достатъчно репутация, за да коментирам (нелепо!), следователно този отговор.

Отговорът ми се отнася до частта от въпроса ви относно това как да проверя резултата от влизането. Бих го направил по следния начин:

loggedIn<- postForm(loginURL, .params=params, curl=ch)

info <- getCurlInfo(ch)

# 1) check the value of info$response.code here and act accordingly
# 2) you probably need the value to be 200 or between 200 and 300, but for more details
# on HTTP status codes, see this page: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
person Aleksandr Blekh    schedule 06.03.2014
comment
Благодаря ти! Само за ваша информация и тази на други потребители, опитвам се да получа достъп до Adwords с помощта на R (както други направиха за Google Analytics) и ако успея, ще публикувам кода си тук. - person info_seekeR; 09.04.2014