<
  • Главная
Статьи

Що таке мова програмування R і як працювати з API Google AdWords і Яндекс.Директ з його допомогою

  1. Зміст статті:
  2. Як я відкрив для себе R або від 1С до R за 10 років
  3. Словник - трохи термінології
  4. Лістинг прикладів коду зі статті
  5. Установка мови R
  6. Що таке пакети в R
  7. Установка і підключення пакетів на мові R
  8. Отримання докладної довідки по роботі з функціями пакета
  9. R пакети для роботи з рекламними системами
  10. Принцип роботи з API AdWords
  11. Що потрібно для роботи з RAdwords
  12. Основні функції пакета RAdwords
  13. Приклад коду для отримання даних з Google AdWords за допомогою RAdwords
  14. Ще кілька прикладів роботи з RAdwords
  15. Принцип роботи з API Яндекс.Директ
  16. Основні функції пакета ryandexdirect
  17. Приклад коду для отримання статистики з Яндекс.Директ за допомогою ryandexdirect.
  18. Приклад # 2: Завантаження статистики з рекламного аккаунта в розрізі країн і регіонів.
  19. Ще кілька прикладів роботи з ryandexdirect

Матеріали для скачування

Кейси по маркетинг-аналітиці

978.32 Kb

Якщо ви ведете кілька невеликих рекламних кампаній в одному рекламному акаунті, то для аналізу їх ефективності вам досить подивитися потрібні дані в Google AdWords / Яндекс.Директ і Google Analytics / Яндекс.Метрика. Але щоб навіть побіжно оцінити ефективність пари десятків рекламних кампаній в декількох акаунтах таким способом, ви витратите в кращому випадку кілька годин. А на детальний аналіз можуть піти дні і тижні, протягом яких рекламний бюджет буде витрачатися і, можливо, далеко не найефективнішим чином.

У цій статті я розповім, як автоматизувати роботу з даними з Google AdWords і Яндекс.Директ за допомогою двох пакетів, які розширюють базові можливості мови R.

Я постарався викласти матеріал так, щоб його міг використовувати будь-який користувач - навіть той, хто поки не написав жодного рядка коду. Для цього цілком достатньо розуміння, що таке функція, хоча б в площині електронних таблиць Microsoft Excel або Google Spreadsheets. Можливо, для вас цей матеріал стане своєрідним поштовхом до вивчення R.

Зміст статті:

Що таке мова R

R - це мова програмування для статистичної обробки даних і роботи з графікою, а також вільна програмне середовище обчислень з відкритим вихідним кодом. Саме таке визначення ви можете знайти на сторінках Вікіпедії .

R був створений двома співробітниками статистичного факультету Оклендського Університету Робертом Джентелменом і Россом Айхекой. Свою назву мова отримала по першій букві імен його творців.

Як я відкрив для себе R або від 1С до R за 10 років

Матеріали для скачування   Кейси по маркетинг-аналітиці   978

На початку статті дозволю собі невеличкий відступ про те, як я взагалі прийшов до обробки даних в R. Багато зараз говорять про Big Data, але насправді не так багато компаній, яким недостатньо простих табличних агрегаторів на кшталт Excel. Упевнений, що мій шлях допоможе вам розібратися, на якому ви зараз етапі.

З 2007 по 2009 рік основною частиною моєї роботи була розробка технічних завдань для програмістів 1С на впровадження будь-яких нових звітів. Оскільки в той час була 1С версії 7.7., Говорити про будь-яке інтегрованому конструкторі звітів не доводилося. Щоб отримати дані в якомусь новому зрізі, доводилося писати ТЗ і чекати його обробки від програмістів.

За пару років я досить непогано розібрався з Microsoft Excel і поставив одну зі своїх останніх ТЗ програмістам 1С. Ця була одна велика вивантаження сирих даних за чеками, що містить всі можливі поля. Таким чином я переїхав з 1С в Excel, і табличний агрегатор від Microsoft був моїм вірним зброєносцем найближчі кілька років.

Можливо, я і зараз би використовував Excel, якби він не був такий ненажерливий навіть на вибірці середнього обсягу. Якщо вам треба обробити пару десятків тисяч рядків то, Excel з цим впорається швидко і ефективно. Але найбільш уважні користувачі офісу Microsoft помітили, що кількість рядків на робочому аркуші останній раз піднімалося в версії 2007 року і до сих пір навіть в самих нових версіях становить 1 048 576 рядків і 16 384 стовпчика. І справа не в тому, що Microsoft шкода додати більшу кількість рядків. Просто Excel занадто ненажерливий на таких обсягах даних, і обробка навіть декількох сотень тисяч рядків займе всю вашу оперативну пам'ять. А в сучасному світі таблицею в мільйон рядків навряд чи когось здивуєш.

Саме тому приблизно в 2012 році я почав вчити SQL. На обробку мільйона рядків, навіть при складних запитах з використанням JOIN, в будь-який з популярних систем управління базами даних (СКБД) при нормально проіндексованих таблицях у вас піде не більше хвилини. Таким чином питання зберігання і обробки даних я закривав за допомогою SQL, а для візуалізації і раніше використовував Excel.

У 2015 році Microsoft випустив платформу Power BI - одне з лідируючих BI рішень на даний момент. По суті, Power BI з'явилася як збір надбудов над Excel, Power View (для створення інтерактивних дашборда), Power Query (для завантаження даних з різних джерел) і PowerPivot (для створення моделі даних і зв'язку між таблицями). Це дуже зручний інструмент для завантаження даних з безлічі різних джерел, їх очищення, побудови моделі даних і візуалізації. Ми в Netpeak дуже активно використовуємо цю платформу для аналітики рекламних кампаній та ефективності відділу контекстної реклами і нашого корпоративного блогу .

Оскільки задачу зберігання даних закривають СУБД (ми використовуємо MySQL і Google BigQuery), а питання візуалізації на 80% закриває Power BI, залишалася проблема автоматизації трансферу даних. Отже, потрібен був інструмент, в якому можна автоматизувати трансфер і інші рутинні операції, що виконуються вручну.

Саме для вирішення завдань автоматизації я став вивчати R, і за останні два роки він став моїм основним робочим інструментом. Насправді R може закрити і завдання візуалізації, а можливості цієї мови обмежуються лише вашою фантазією. У цій статті я розповім, як з його допомогою отримати дані з API інтерфейсів найбільш популярних рекламних майданчиків, тому що саме це було головним завданням в агентстві інтернет-маркетингу Netpeak.

Словник - трохи термінології

У статті неодноразово будуть згадуватися деякі терміни. Щоб не було неоднозначності в поняттях, в цьому блоці я дам кілька визначень.

Функція - згрупований набір команд, який повертає якесь значення, функції в R. Як я вже писав вище, функції в R аналогічні функціям в MS Excel.

Аргументи - практично будь-яка функція запитує на вхід якісь значення, на основі яких потім виробляє якісь дії і обчислення. Всі ці значення ви привласнюєте аргументів функції. Наприклад, згадаємо функцію ВПР в Excel, її синтаксис виглядає наступним чином:

= ВПР (шукане значення; діапазон для пошуку значення; номер стовпця в діапазоні з повертається значенням; [точне або приблизне збіг - вказується як 0 / БРЕХНЯ або 1 / ІСТИНА])

Всі значення, які ви вказуєте всередині дужок після імені функції - це і є аргументи функції. Функція ВПР має 3 обов'язкових аргументу: шукане значення, діапазон для пошуку значення, номер стовпця в діапазоні з повертається значенням; і один необов'язковий аргумент - точне або приблизне збіг.

Оператор присвоювання - щоб привласнити будь-якого об'єкта якесь значення, в мові R існує оператор присвоювання «<-». Наприклад, щоб створити змінну X, яка буде містити значення 10, необхідно виконати наступну команду.

X

Вектор - в мові R є іменований одновимірний масив, що містить набір однотипних елементів (числові, логічні, або текстові значення - ніякі поєднання не допускаються). Для створення векторів невеликої довжини використовується т.зв. функція конкатенації c () (від «concatenate» - об'єднувати, пов'язувати). В якості аргументів цієї функції через кому перераховують об'єднуються в вектор значення.

Наприклад, вектор camp_name, що містить назви рекламних кампаній, можна створити наступним чином:

camp_name

DataFrame - клас об'єктів в R, відповідний звичним для нас таблицями. Насправді це набір векторів однієї довжини, але саме так ми і представляємо всі таблиці, з якими звикли працювати.

Приклад вбудованого в R дата фрейма mtcars. Дані були витягнуті з журналу Motor Trend US 1974 року і включають витрати пального, 10 аспектів автомобільного дизайну і різних характеристик для 32 автомобілів (моделі 1973-74):

Лістинг прикладів коду зі статті

У статті будуть наведені приклади коду звернення до API Google AdWords і Яндекс.Директ на мові R. Всі приклади ви можете копіювати безпосередньо з тексту статті або завантажувати з репозиторію на GitHub, перейшовши за цим засланні .

Установка мови R

Для засвоєння викладеного в статті матеріалу я рекомендую виконувати представлені приклади коду безпосередньо на вашому ПК, тому для початку давайте встановимо R.

R є кросплатформним мовою. Ви можете встановити його як на Windows, так і на MacOS і Unix-подібні операційні системи.

Процес установки не відрізняється від установки звичайної програми. Він не вимагає ніяких налаштувань, тому для установки досить перейти по цій засланні , Вибрати у верхній частині сторінки вашу операційну систему, скачати і встановити R на свій ПК.

Що таке пакети в R

На даний момент R обзавівся досить значним співтовариством користувачів і розробників, багато з яких пишуть власні пакети, що розширюють базові можливості цієї мови.

Пакет для R - це модуль, що містить набір функцій і наборів даних. Основним репозиторієм зберігання пакетів для R є CRAN , І на момент написання цього абзацу в CRAN було доступно 12148 пакетів. Крім CRAN величезна кількість пакетів користувачі викладають у відкритий доступ на GitHub. Як правило, там можна знайти найбільш актуальні версії пакетів від їх розробників, і зараз на GitHub вже 77 тисяч репозиторіїв на мові R .

Установка і підключення пакетів на мові R

Щоб скористатися функціями або наборами даних з будь-якого пакета, його попередньо необхідно встановити. Для установки пакета з CRAN досить скористатися функцією install.packages, яка має 1 обов'язковий аргумент - назва пакета.

Давайте встановимо пакет devtools.

install.packages ( "devtools")

Пакет devtools містить набір функцій для розробки власних функцій на R, а також для установки пакетів з сторонніх репозиторіїв, включаючи GitHub.

Так як вище я вже писав, що найбільш актуальні версії пакетів знаходяться на GitHub, а не в CRAN, то давайте спробуємо встановити з цього репозиторію пакет RAdwords, який призначений для роботи з зрозуміло який рекламної системи, і який ми більш детально розглянемо в цій статті .

Щоб встановити пакет з GitHub в пакеті devtools, є функція install_github. Однак тому пакет devtools не входить в базову комплектацію R, щоб скористатися його функціями, необхідно попередньо підключити його до сесії R за допомогою команди library.

# Підключаємо пакет devtools
library (devtools)

# Встановлюємо пакет RAdwords
install_github ( 'jburkhardt / RAdwords')

В даному випадку функція install_github має також всього 1 обов'язковий аргумент - ім'я користувача, автора сховища на GitHub ( https://github.com/jburkhardt ) І назва сховища RAdwords ( https://github.com/jburkhardt/RAdwords ).

Отримання докладної довідки по роботі з функціями пакета

В R будь-пакет і кожна функція пакету мають докладну довідку з описом кожного аргументу, деталями роботи з функцією і прикладами її використання.

Щоб отримати список функцій пакета з описом того, що кожна з функцій робить, скористайтеся командою help і передайте в аргументі package назву пакета, за яким хочете отримати список функцій. Наприклад, щоб отримати довідку за функціями пакета RAdwords, треба запустити наступну команду:

help (package = «RAdwords»)

В результаті буде відкрита html сторінка такого змісту:

Якщо вам необхідно отримати довідку з якоїсь однієї конкретної функції, то можна в help передати її назву. Наприклад, для отримання довідки по функції doAuth підключіть пакет RAdwords за допомогою функції library і запустіть help.

help ( "doAuth")

R пакети для роботи з рекламними системами

RAdwords - пакет, що дозволяє працювати з API Google AdWords

Посилання на офіційну документацію RAdwords

Репозиторій на GitHub

Автор: Johannes Burkhardt

Установка пакета: devtools :: install_github ( 'jburkhardt / RAdwords')

Принцип роботи з API AdWords

Google AdWords має досить широкий API інтерфейс для завантаження даних з вашого рекламного облікового запису, який складається з 49 звітів . Можливо, спочатку буде досить складно визначити, який саме з цих звітів вам може знадобитися. В офіційній документації для полегшення пошуку потрібного звіту приведена така таблиця:

В офіційній документації для полегшення пошуку потрібного звіту приведена така таблиця:

Кожен звіт складається з власного набору полів. Поля, в свою чергу, можуть бути атрибутами, сегментами і метриками.

Поля, в свою чергу, можуть бути атрибутами, сегментами і метриками

Атрибути - це поля, вимірювання або параметри, що містять інформацію про будь-яких настройках або константи, які не змінюють угруповання запитуваних даних. Наприклад, такі настройки аккаунта, як валюта (поле AccountCurrencyCode ), Ніяк не поміняють кількість рядків, запитуваних зі звіту «Campaign Performance Report».

Сегменти - також є параметрами, але при цьому змінюють угруповання запитуваних даних. Наприклад, якщо запросити дані зі звіту «Campaign Performance Report» з полем Date , Яке є атрибутом, то запитувані дані по ефективності кампаній будуть згруповані по датам.

Метрики - кількісні показники, такі як кліки, покази, загальний обсяг витрачених коштів і т.д.

За допомогою пакета RAdwords ви можете звертатися до будь-якого з цих звітів і запитувати доступні в звіті поля, не розбираючись з тонкощами формування та відправки HTTP запитів до API сервісу, а також різні нюанси роботи самого API інтерфейсу.

Що потрібно для роботи з RAdwords

Для роботи з пакетом RAdwords вам знадобиться доступ до API Google AdWords. Про те, як його отримати, досить докладно описано в довідці .

Щоб налаштувати доступ до API, вам буде потрібно ідентифікатор і секретний ключ клієнта OAuth2. Під клієнтом тут мається на увазі ваше клієнтську програму, а не клієнтський обліковий запис AdWords.

  1. Увійдіть в керуючий аккаунт і відкрийте сторінку "Облікові дані" в Google Developers Console.
  2. У спадному меню проектів виберіть «Створити проект». Потім вкажіть назву проекту і натисніть кнопку «Створити».
  3. Виберіть «Створити облікові дані», а потім - «Ідентифікатор клієнта OAuth».
  4. Якщо система запропонує вказати назву продукту, натисніть «Налаштувати вікно запиту доступу», вкажіть запитувану інформацію та натисніть «Зберегти», щоб повернутися до екрана «Облікові дані».
  5. У розділі «Тип додатка» виберіть «Інші типи». Вкажіть назву в полі, що з'явилося.
  6. Натисніть кнопку «Створити». З'являться ідентифікатор і секретний ключ клієнта OAuth2. Скопіюйте та збережіть їх. На наступному кроці їх потрібно буде додати в файл конфігурації.

Основні функції пакета RAdwords

Насправді в RAdwords не так багато функцій. Ось список основних з них:

  • doAuth - аутентифікація в API. Для її проходження вам буде потрібно токен розробника AdWords, ідентифікатор і секретний ключ клієнта, створеного в Google Console на попередньому кроці.
  • reports - повертає вектор доступних звітів в API у відповідь на запит.
  • metrics - повертає вектор полів, доступних в звіті, у відповідь на запит.
  • statement - підготовка запиту до API AdWords.
  • getData - Зробити запит на отримання даних з API.

Приклад коду для отримання даних з Google AdWords за допомогою RAdwords

# Підключення пакета library (RAdwords) # Аутентифікація adwords_auth

Відкрити приклад коду на GitHub

Функція statement формує тіло запиту. В аргументі select ви в вигляді вектора передаєте назва всіх запитуваних полів. В аргумент report назву звіту, з якого запитуєте дані. В аргументи start і end передаєте звітний період.

Важливо: дату необхідно перевести в формат РРРРММДД. За замовчуванням формат дати в R - РРРР-ММ-ДД. Ви можете або у вигляді рядка передати потрібні дати, або перетворити будь-яку дату за допомогою функції format.Date, як в моєму прикладі вище.

Функція getData запитує в агрумент clientCustomerId номер рекламного облікового запису AdWords в форматі 000-000-0000.

На початку скрипта ми створили змінну adwords_auth і передали в неї за допомогою функції doAuth облікові дані, необхідні для доступу до API Google AdWords. В аргумент google_auth функції getData необхідно передати збережені раніше облікові дані.

В аргумент statement слід передавати тіло запиту, створене за допомогою функції statement.

Після виконання наведеного вище коду в робочому оточенні буде створено об'єкт AdwData, який буде містити таблицю (Data frame) з усією запитаної з API інформацією.

Ще кілька прикладів роботи з RAdwords

ryandexdirect - пакет дозволяє працювати з API Яндекс.Директ Яндекс.Метрика

Посилання на офіційну документацію ryandexdirect

Репозиторій на GitHub

Автор: Олексій Селезньов

Установка пакета на Windows: devtools :: install_github ( "selesnow / ryandexdirect") Установка пакета на MacOS і Linux: devtools :: install_github ( "selesnow / ryandexdirect«, subdir = «utf8»)

Принцип роботи з API Яндекс.Директ

5 версія API Яндекс.Директ, на відміну від попередньої, досить сильно нагадує API Google AdWords при роботі з отриманням статистики.

Для отримання статистики в 5 версії API використовується сервіс Reports . За допомогою даного сервісу ви так само, як і з API AdWords, можете запитувати будь-які поля, доступні в одному з 7 звітів.

Звіти в сервісі Reports.

Тип звіту Опис CAMPAIGN_PERFORMANCE_REPORT Статистика по кампаніям ADGROUP_PERFORMANCE_REPORT Статистика по групах оголошень AD_PERFORMANCE_REPORT Статистика по оголошеннях CRITERIA_PERFORMANCE_REPORT Статистика за умовами показу CUSTOM_REPORT Статистика з довільними угрупованнями SEARCH_QUERY_PERFORMANCE_REPORT Статистика по пошуковим запитам

Найбільш загальний тип звіту - CUSTOM_REPORT. Він не додає ніяких додаткових угруповань.

Всі поля звітів розділені по типу:

  • фільтр - поле вікорістовується только для фільтрації Даних и не может буті віведено в звіті.
  • сегмент - при віведенні в звіті поле вікорістовується для групувань Даних.
  • метрика - поле містіть числове значення, розраховане відповідно до завдань фільтрамі и угрупованнямі.
  • атрибут - поле містіть фіксоване значення відповідно до завдань угрупованнямі. Додавання такого поля в звіт НЕ виробляти до з'явиться нового угрупування.

Наприклад, поле CampaignId для типу звіту CUSTOM_REPORT є сегментом - якщо його додати до звіту, дані будуть згруповані по кампаніям. А для типу звіту ADGROUP_PERFORMANCE_REPORT поле CampaignId є атрибутом - дані вже згруповані по AdGroupId, а ідентифікатор кампанії є для кожної групи фіксованим значенням.

Актуальний список всіх доступних полів з їх типами для кожного звіту можна знайти в офіційній довідці Яндекс.Директ.

Деякі поля не можна одночасно запитувати в рамках одного запиту:

  • Поля Date, Week, Month, Quarter, Year є взаємовиключними: тільки одне з них може бути присутнім в звіті.
  • Поля CriterionType, CriteriaType, AudienceTargetId, DynamicTextAdTargetId, Keyword, SmartBannerFilterId є взаємовиключними: тільки одне з них можна використовувати для фільтрації даних.
  • Поле ClickType несумісне з полями Impressions, Ctr, AvgImpressionPosition.
  • Поле ImpressionShare несумісне з полями AdFormat, AdId, Age, CarrierType, Gender, MobilePlatform, RlAdjustmentId, TargetingLocationId, TargetingLocationName.
  • Поля Criterion, CriterionId, CriterionType несумісні з полями Criteria, CriteriaId, CriteriaType.

Основні функції пакета ryandexdirect

На момент написання цієї статті в поточній версії пакету ryandexdirect є 20 функцій. Нижче я перерахую основні, які використовую для роботи зі статистикою:

  • yadirGetToken - отримання токена доступу до API. Токен є обов'язковим для роботи з усіма іншими функціями пакета, таким чином ви авторізуетесь для роботи з API Директа.
  • yadirGetReport - отримання статистики з сервісу Report.
  • yadirGetDictionary - отримання довідкової інформації, наприклад довідник регіонів або курсів валют.
  • yadirGetLogsData - отримання сирих даних з Logs API Яндекс.Метрики.
  • yadirGetMetrikaGAData - отримання даних з API Яндекс.Метрики, сумісних з Google Analytics Core Reporting API (v3).

Крім роботи зі статистикою, за допомогою ryandexdirect можна зупиняти і відновлювати покази на рівні оголошень, ключових слів і рекламних кампаній.

Для цього є 6 функцій:

  • yadirStartAds - відновити покази по оголошеннях.
  • yadirStopAds - зупинити покази по оголошеннях.
  • yadirStartCampaigns - відновити покази по рекламним кампаніям.
  • yadirStopCampaigns - зупинити покази по рекламним кампаніям.
  • yadirStartKeyWords - відновити покази за ключовими словами.
  • yadirStopKeyWords - зупинити покази за ключовими словами.

Приклад коду для отримання статистики з Яндекс.Директ за допомогою ryandexdirect.

Приклад # 1: Завантаження статистики по кампаніям в розрізі дат.

Для початку розглянемо найпростіший приклад коду, за допомогою якого можна завантажити основну статистику по рекламним кампаніям в розрізі днів.

# Підключаємо пакет library ( "ryandexdirect") # Отримуємо токен розробника tok

Відкрити приклад коду на GitHub

Я думаю, наведений код цілком зрозумілий, але, про всяк випадок, дам невеликі пояснення:

  • Спочатку ми підключаємо пакет за допомогою команди library.
  • Далі отримуємо токен розробника за допомогою yadirGetToken і зберігаємо його в об'єкт tok. Насправді не потрібно кожного разу при зверненні до API отримувати новий токен. Термін життя одного токена - більше 30 днів з моменту останнього використання, тому отримавши його один раз, ви можете його використовувати в скриптах у вигляді рядка. Наприклад, передати в об'єкт tok значення отриманого раніше токена ось так: tok <- «abcdefg1234567»
  • Запитуємо дані з API функцією yadirGetReport.
  • Аргумент ReportType на вході вимагає назву звіту, з якого ви будете запитувати потрібні вам поля. Оскільки ми плануємо отримати дані на рівні рекламних кампаній, найбільш підходящим звітом для нас буде «CAMPAIGN_PERFORMANCE_REPORT».
  • В аргумент DateRangeType необхідно передати, як ви будете визначати період. У нашому випадку ми беремо дані за останні 30 днів, але у вас є досить широкі можливості визначення тимчасового інтервалу:
    • TODAY - поточний день.
    • YESTERDAY - вчора.
    • LAST_3_DAYS, LAST_5_DAYS, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, LAST_90_DAYS, LAST_365_DAYS - вказане кількість попередніх днів, не включаючи поточний день.
    • THIS_WEEK_MON_TODAY - поточний тиждень, починаючи з понеділка, включаючи поточний день.
    • THIS_WEEK_SUN_TODAY - поточний тиждень, починаючи з неділі, включаючи поточний день.
    • LAST_WEEK - минулий тиждень з понеділка по неділю.
    • LAST_BUSINESS_WEEK - минула робочий тиждень з понеділка по п'ятницю.
    • LAST_WEEK_SUN_SAT - минулий тиждень з неділі по суботу.
    • THIS_MONTH - поточний календарний місяць.
    • LAST_MONTH - повний попередній календарний місяць.
    • ALL_TIME - вся доступна статистика, включаючи поточний день.
    • CUSTOM_DATE - довільний період. При виборі цього значення необхідно вказати дати початку і закінчення періоду в параметрах DateFrom і DateTo.
    • AUTO - період, за який статистика могла змінитися. Період вибирається автоматично залежно від того, чи відбулася в попередній день коригування статистики. Детальніше див. У розділі «Як отримати актуальну статистику» .
  • В аргумент FieldNames необхідно передати вектор, що містить назви запитуваних зі звіту полів. У нашому випадку ми перераховуємо список запитуваних полів: Date, CampaignName, CampaignId, Impressions, Clicks, Cost. Список всіх доступних полів можна знайти в офіційній довідці .

Після виконання наведеного коду в робочому оточенні буде створено об'єкт data, який буде представляти таблицю (Data frame), що містить запитані з API дані.

Приклад # 2: Завантаження статистики з рекламного аккаунта в розрізі країн і регіонів.

Давайте трохи ускладнити завдання і розглянемо, як отримати дані по показам, кліках і витраченим коштам з рекламного аккаунта в розрізі країн і регіонів.

Справа в тому, що поле LocationOfPresenceName, містить максимально точну назву географічного місця знаходження користувача (села, міста або області). І якщо ми, наприклад, хочемо подивитися дані в розрізі областей, а не міст, то необхідно завантажити довідник регіонів і привести його до потрібного вигляду за допомогою рекурсивного сканування довідника.

Виконаємо наведений нижче код.

# Підключаємо пакет library ( "ryandexdirect") # Отримуємо токен розробника tok

Відкрити приклад коду на GitHub

Перше, що ми робимо після підключення пакету, отримання токена і оголошення потрібних нам змінних - це запит географічного довідника за допомогою функції yadirGetDictionary.

Довідник, який повертає API, містить всього 4 поля:

  • GeoRegionId - ідентифікатор регіону.
  • GeoRegionName - назва регіону.
  • GeoRegionType - тип регіону: World, Continent, Region, Country, Administrative area, District, City, City district, Village.
  • ParentId - ідентифікатор вищого регіону.

Як я вже писав вище, у відповідь на запит API поверне статистику по максимально точного місця знаходження користувача, згідно з поданою в GeoRegionType ієрархії. Це означає, що якщо користувач, клікнула по оголошенню, знаходиться в селі (Village - нижній рівень ієрархії географічного довідника), який занесений до географічний довідник, то дані щодо кількості кліків і витраченим коштам будуть віднесені до ID саме цього села.

Таким чином ви отримуєте з API дані з різних географічних ієрархій, села, міста, області, регіони, континенти і т.д.

Щоб подивитися дані, згруповані безпосередньо по адміністративних округах або країнам, нам необхідно для кожного елемента географічного довідника визначити, якою адміністративний округ і країну він входить. Тобто привести довідник до наступного вигляду:

Тобто привести довідник до наступного вигляду:

Наступна частина коду знаходить для кожного елемента довідника адміністративний регіон і країну, в яку цей елемент входить.

В результаті ми перетворимо отриманий раніше довідник до наступного вигляду:

  • AreaID - ID адміністративного округу, до якого входить поточний елемент довідника.
  • CountryID - ID країни округу, до якого входить поточний елемент довідника.
  • GeoRegionId - ID поточного елемента довідника.
  • ParentId - ID батьківського елемента.
  • GeoRegionType - тип регіону поточного елемента довідника.
  • CountryName - назва країни, в яку входить поточний елемент довідника.
  • GeoRegionName - назва регіону поточного елемента довідника.
  • AreaName - назва адміністративного округу, до якого входить поточний елемент довідника.

Після того, як ми перетворили довідник, запитуємо статистику з рекламного аккаунта, сгруппированную по полю LocationOfPresenceId. За допомогою функції merge об'єднуємо дані статистики з даними з географічного довідника по полях LocationOfPresenceId і GeoRegionId.

Використовуючи аргумент all.x = T, ми говоримо про те, що необхідно до таблиці X (дані статистики) приєднати таблицю Y (географічний довідник) за допомогою лівого зовнішнього з'єднання ( LEFT JOIN ). Тобто ми беремо всі рядки з таблиці статистики і приєднуємо до них потрібні рядки з географічного довідника по ключу GeoRegionId.

Таким чином ми отримали звіт по первинним показниками ефективності рекламних кампаній в розрізі країн і регіонів.

Ще кілька прикладів роботи з ryandexdirect

Висновки

Мова R допоможе вам автоматизувати роботу зі статистикою з багатьох джерел, включаючи будь-які рекламні системи і платформи веб-аналітики. На даний момент існує великий вибір готових рішень у вигляді пакетів, які розширюють базові можливості R.

При використанні потрібного пакету вам не доведеться тижнями вивчати документацію по роботі з API інтерфейсом будь-якого сервісу, тому що 90% роботи за вас вже хтось зробив. Вам залишається лише знайти в потрібному пакеті пару функцій, необхідних для виконання вашого завдання, і вивчити їх аргументи.

Успіхів вам у побудові автоматизації та вивченні мови R. Якщо залишилися питання або потрібна порада, буду радий відповісти вам в коментарях.



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью