Как сделать dashboard для мониторинга контекстной рекламы с помощью Power BI. Яндекс директ power bi


Как связать Яндекс.Директ с Microsoft Power BI — Netpeak Blog

Яндекс.Директ собирает много данных, но, к сожалению, в веб-интерфейсе доступно очень мало информации для анализа. В этой статье я подробно опишу, как получить статистику о рекламных кампаниях c помощью языка R для визуализации в Power BI.

Microsoft Power BI — один из лидеров BI-индустрии. Бесплатной базовой версии вполне достаточно для решения большинства задач, благодаря этому инструмент довольно быстро стал очень популярным среди аналитиков и маркетологов.

1. Установите язык R и необходимые пакеты функций

1.1. Скачайте и установите актуальную версию R, а также интегрированную среду разработки R Studio, в которой вам будет удобнее работать.

1.2. В R Studio откройте все доступные панели с помощью сочетания клавиш Ctrl+Alt+Shift+0. В область Source вставьте код.

if(!"devtools" %in% installed.packages()[,1]){install.packages("devtools")} library(devtools) install_github('selesnow/ryandexdirect')

Чтобы запустить процесс установки пакетов, выделите код с помощью мыши и запустите его нажатием Ctrl+Enter.

Установите язык R и необходимые пакеты функций

2. Получите токен доступа к API Яндекс.Директ

2.1. Для получения токена доступа к API Директа воспользуйтесь кодом:

library(ryandexdirect) ya_token <- ya_token <- yadirGetToken()

Для запуска также необходимо вставить код в область «Source» в R Studio, выделить с помощью мыши и запустить сочетанием клавиш Ctrl+Enter.

2.2. В открывшемся окне браузера предоставьте пакету «ryandexdirect» доступ к данным — нажмите кнопку «Разрешить». После этого откроется страница со сгенерированным токеном доступа к API.

Получите токен доступа к API Яндекс.Директ

Токен доступа еще понадобится, поэтому скопируйте его в любой текстовый документ и смело можете закрывать R Studio.

3. Загрузите данные в Microsoft Power BI

Чтобы обрабатывать данные из Яндекс.Директ в Power BI, необходимо настроить импорт. Рассмотрим два способа настройки: с помощью сценария на языке R и готового документа Power BI .

3.1. С помощью сценария на языке R

3.1.1. Откройте Power BI, нажмите «Получить данные» и выберите коннектор R-скрипт.

В диалоговое окно «Выполнить сценарий R» вставьте следующий код:

#Подключаем пакет library(ryandexdirect) #Получаем список кампаний campList <- yadirGetCampaignList(logins = "<ВАШ ЛОГИН НА ЯНДЕКСЕ>", token = "<ВАШ ТОКЕН В ВИДЕ СТОКИ>") #Получаем статистику по кампаниям Stat <- yadirGetSummaryStat(campaignIDS = campList$Id, dateStart = Sys.Date() - 90, dateEnd = Sys.Date(), token = "<ВАШ ТОКЕН В ВИДЕ СТОКИ>")

В код подставьте ваш логин Яндекс.Директ и токен доступа к API, полученный на втором шаге. Значения необходимо в кавычках.

С помощью сценария на языке R

3.1.2. Нажмите «ОК», и начнется процесс загрузки данных.

начнется процесс загрузки данных

В результате получите в Power BI две таблицы:

  • campList — со списком рекламных кампаний;
  • Stat — со статистикой по кампаниям.

Все денежные данные будут возвращены в условных единицах Яндекса. Текущий курс всегда можете найти в справке.

денежные данные будут возвращены в условных единицах

3.1.3. Связь между таблицами можете настроить непосредственно в Power BI по полям Id из таблицы campList и CampaignID из таблицы Stat.

По полям Id из таблицы campList

3.2. С помощью файла Power BI с коннектором к Яндекс.Директ

Второй способ более простой, потому что я уже создал документ Power BI и настроил отправку запроса к Яндекс.Директ через пользовательские параметры.

3.2.1. Скачайте файл с коннектором. В интерфейсе Power BI откройте выпадающее меню «Изменить запросы» и выберите команду «Изменить параметры».

выбираем команду «Изменить параметры»

3.2.2. Введите свой логин в Яндексе и API-токен, полученный на втором шаге. Нажмите «ОК».

Введите полученный логин

Выводы

На основе данных, импортированных из Яндекс.Директ в Microsoft Power BI, вы сможете создавать понятные отчеты и обновлять их в режиме реального времени. Подытожим основные шаги: 

  1. Установите актуальную версию языка R и R Studio. Инсталлируйте пакет «devtools» и «ryandexdirect».
  2. Получите токен доступа к API Яндекс.Директ и сохраните его.
  3. Загрузите данные в Power BI: 
    • с помощью сценария на языке R;
    • с помощью документа Power BI с коннектором к Яндекс.Директ.

На этом все. Если у вас что-либо не получится — пишите комментарии, постараюсь помочь.

netpeak.net

Получаем статистику Яндекс.Директ в Excel и PowerBI силами power query

/*

     Функция, при помощи которой мы забираем данные из API Reports Яндекс.Директ

 

     Версия 1.3

     -- "YESTERDAY" и "TODAY" теперь можно писать маленькими буквами :)

     -- в полях теперь можно делать пробелы

 

     Документация по API Reports: https://tech.yandex.ru/direct/doc/reports/reports-docpage/

     Список типов отчетов: https://tech.yandex.ru/direct/doc/reports/type-docpage/

     Список полей для отчета: https://tech.yandex.ru/direct/doc/reports/fields-list-docpage/

 

 

     Создатель: Эльдар Забитов (http://zabitov.ru)

*/

 

 

 

let

    pqyd = (Token as text, ClientLogin as nullable text, FieldNames as text, ReportType as text, DateFrom as text, DateTo as text) =>

let

    ClientLogin = if ClientLogin = null then "" else ClientLogin,

// Проверяем на TODAY и YESTERDAY

    DateFrom = Text.Upper(DateFrom),

    DateTo = Text.Upper(DateTo),

    dateFrom = if DateFrom = "TODAY"

        then Date.ToText(DateTime.Date(DateTime.LocalNow()), "yyyy-MM-dd")

    else

        if DateFrom = "YESTERDAY"

            then Date.ToText(Date.AddDays(DateTime.Date(DateTime.LocalNow()), -1), "yyyy-MM-dd")

        else DateFrom,

 

    dateTo = if DateTo = "TODAY"

        then Date.ToText(DateTime.Date(DateTime.LocalNow()), "yyyy-MM-dd")

    else

        if DateTo = "YESTERDAY"

            then Date.ToText(Date.AddDays(DateTime.Date(DateTime.LocalNow()), -1), "yyyy-MM-dd")

        else DateTo,

 

// Обрабатываем параметр Fieldnames, делаем список, добавляем нужные значения

// Все это нужно чтобы можно было просто написать список полей через запятую :)

    new = Text.Split(FieldNames, ","),

    ToTable = Table.FromList(new, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

    deleteSpace = Table.ReplaceValue(ToTable," ","",Replacer.ReplaceText,{"Column1"}),

    PlusFieldName = Table.AddColumn(deleteSpace, "Custom", each "<FieldNames>"&[Column1]&"</FieldNames>"),

    delete = Table.SelectColumns(PlusFieldName,{"Custom"}),

    transpot = Table.Transpose(delete),

    merge = Table.CombineColumns(transpot, Table.ColumnNames(transpot),Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),

    fieldnamestext = merge[Merged]{0},

    ReportName = ReportType&"-"&dateFrom&"-"&dateTo&fieldnamestext,

 

// Присваиваем полученный токен

    AuthKey = "Bearer "&Token,

    url = "https://api.direct.yandex.com/v5/reports",

 

// Создаем тело запроса со всеми параметрами

    body =

        "<ReportDefinition xmlns=""http://api.direct.yandex.com/v5/reports"">

        <SelectionCriteria>

        <DateFrom>"&dateFrom&"</DateFrom>

        <DateTo>"&dateTo&"</DateTo>

        </SelectionCriteria>

        "&fieldnamestext&"

        <ReportName>"&ReportName&"</ReportName>

        <ReportType>"&ReportType&"</ReportType>

        <DateRangeType>CUSTOM_DATE</DateRangeType>

        <Format>TSV</Format>

        <IncludeVAT>YES</IncludeVAT>

        <IncludeDiscount>NO</IncludeDiscount></ReportDefinition>",

 

// Сам запрос

Source = Web.Contents(url,[

           Content = Text.ToBinary(body) ,

 

// Заголовки запроса

         Headers = [#"Authorization"=AuthKey ,

                    #"Client-Login"=ClientLogin,

                    #"Accept-Language"="ru",

                    #"Content-Type"="application/x-www-form-urlencoded",

                    #"returnMoneyInMicros" = "false"]

 

             ]

        )

in

    Source

in

pqyd

zabitov.ru

Идеальная модель атрибуции для Яндекс Директ при помощи Power BI

«Политика ООО «ВЕБ АЙ ТИ» в отношении организации обработки и обеспечения безопасности персональных данных»

1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящая политика ООО «ВЕБ АЙ ТИ» в отношении обработки персональных данных (далее – Политика) утверждена в соответствии с п. 2 ст. 18.1 Федерального закона «О персональных данных» и действует в отношении всех персональных данных, которые ООО «ВЕБ АЙ ТИ» (далее – Оператор) может получить от субъекта персональных данных. 1.2. Действие Политики распространяется на персональные данные, полученные как до, так и после утверждения настоящей Политики. 1.3. Настоящая Политика является общедоступным документом, декларирующим концептуальные основы деятельности Оператора при обработке и защите персональных данных.

2. ПЕРСОНАЛЬНЫЕ ДАННЫЕ, ОБРАБАТЫВАЕМЫЕ ОПЕРАТОРОМ 2.1. В рамках настоящей Политики под персональными данными понимается: 2.1.1. Персональные данные, полученные Оператором для заключения и исполнения договора, стороной которого, либо выгодоприобретателем или поручителем, по которому является субъект персональных данных. 2.1.2. Персональные данные, полученные Оператором в связи с реализацией трудовых отношений. 2.2. Сроки и условия прекращения обработки и хранения персональных данных субъекта персональных данных определяются в установленном законодательством Российской Федерации порядке.

3. ЦЕЛИ СБОРА, ОБРАБОТКИ И ХРАНЕНИЯ И ПРАВОВОЕ ОБОСНОВАНИЕ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ 3.1. Оператор собирает, обрабатывает и хранит персональные данные субъекта персональных данных в целях: 3.1.1. Заключения и исполнения договора. 3.1.2. Реализации трудовых отношений. 3.1.3. Осуществления и исполнения, возложенных законодательством Российской Федерации на Оператора функций, полномочий и обязанностей на основании и в соответствии со ст. 23, 24 Конституции Российской Федерации; Федеральным законом «О персональных данных»; Федеральным законом «Об информации, информационных технологиях и о защите информации» и другими требованиями законодательства Российской Федерации в области обработки и защиты персональных данных.

4. УСЛОВИЯ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ И ИХ ПЕРЕДАЧА ТРЕТЬИМ ЛИЦАМ 4.1. Оператор осуществляет обработку персональных данных с использованием средств автоматизации и без использования средств автоматизации. 4.2. Оператор вправе передать персональные данные субъекта персональных данных третьим лицам в следующих случаях: 4.2.1. Субъект персональных данных явно выразил свое согласие на такие действия. 4.2.2. Передача предусмотрена действующим законодательством Российской Федерации в рамках установленной процедуры. 4.3. При обработке персональных данных субъекта персональных данных Оператор руководствуется Федеральным законом «О персональных данных», другими требованиями законодательства Российской Федерации в области обработки и защиты персональных данных и настоящей Политикой.

5. ПРАВА СУБЪЕКТА ПЕРСОНАЛЬНЫХ ДАННЫХ 5.1. Субъект персональных данных имеет право на получение информации, касающейся обработки его персональных данных, в том числе содержащей: 5.1.1. Подтверждение факта обработки персональных данных Оператором. 5.1.2. Правовые основания и цели обработки персональных данных. 5.1.3. Применяемые Оператором способы обработки персональных данных. 5.1.4. Наименование и место нахождения Оператора, сведения о лицах (за исключением работников Оператора), которые имеют доступ к персональным данным или которым могут быть раскрыты персональные данные на основании договора с Оператором или на основании федерального закона. 5.1.5. Обрабатываемые персональные данные, относящиеся к соответствующему субъекту персональных данных, источник их получения, если иной порядок представления таких данных не предусмотрен федеральным законом. 5.1.6. Сроки обработки персональных данных, в том числе сроки их хранения. 5.1.7. Порядок осуществления субъектом персональных данных прав, предусмотренных настоящим Федеральным законом. 5.1.8. Информацию об осуществленной или о предполагаемой трансграничной передаче данных. 5.1.9. Наименование или фамилию, имя, отчество и адрес лица, осуществляющего обработку персональных данных по поручению оператора, если обработка поручена или будет поручена такому лицу. 5.2. Информация, касающаяся обработки персональных данных субъекта персональных данных, предоставляемая субъекту персональных данных, не должна содержать персональные данные, относящиеся к другим субъектам персональных данных, за исключением случаев, когда имеются законные основания для раскрытия таких персональных данных. 5.3. Субъект персональных данных вправе требовать от Оператора уточнения его персональных данных, их блокирования или уничтожения в случае, если персональные данные являются неполными, устаревшими, неточными, незаконно полученными или не являются необходимыми для заявленной цели обработки, а также принимать предусмотренные законом меры по защите своих прав.

6. СВЕДЕНИЯ О РЕАЛИЗУЕМЫХ ТРЕБОВАНИЯХ К ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ 6.1. Важнейшим условием реализации целей деятельности Оператора является обеспечение необходимого и достаточного уровня безопасности информационных систем персональных данных, соблюдения конфиденциальности, целостности и доступности обрабатываемых персональных данных и сохранности носителей сведений, содержащих персональные данные на всех этапах работы с ними. 6.2. Созданные у Оператора условия и режим защиты информации, отнесенной к персональным данным, позволяют обеспечить защиту обрабатываемых персональных данных. 6.3. У Оператора в соответствии с действующим законодательством Российской Федерации разработан и введен в действие комплекс организационно-распорядительных, функциональных и планирующих документов, регламентирующих и обеспечивающих безопасность обрабатываемых персональных данных. 6.4. Введены режим безопасности обработки и обращения с персональными данными, а также режим защиты помещений, в которых осуществляется обработка и хранение носителей персональных данных. 6.5. Назначены ответственный за организацию обработки персональных данных, администраторы информационных систем персональных данных и администратор безопасности информационных систем персональных данных, им определены обязанности и разработаны инструкции по обеспечению безопасности информации. 6.6. Определен круг лиц, имеющих право обработки персональных данных, разработаны инструкции пользователям по работе с персональными данными, антивирусной защите, действиям в кризисных ситуациях. 6.7. Определены требования к персоналу, степень ответственности работников за обеспечение безопасности персональных данных. 6.8. Проведено ознакомление работников, осуществляющих обработку персональных данных, с положениями законодательства Российской Федерации по обеспечению безопасности персональных данных и требованиями к защите персональных данных, документами, определяющими политику Оператора в отношении обработки персональных данных, локальными актами по вопросам обработки персональных данных. Проводится периодическое обучение указанных работников правилам обработки персональных данных. 6.9. Предприняты необходимые и достаточные технические меры для обеспечения безопасности персональных данных от случайного или несанкционированного доступа, уничтожения, изменения, блокирования доступа и других несанкционированных действий: 6.9.1. Введена система разграничения доступа. 6.9.2. Установлена защита от несанкционированного доступа к автоматизированным рабочим местам, информационным сетям и базам персональных данных. 6.9.3. Установлена защита от вредоносного программно-математического воздействия. 6.9.4. Осуществляется регулярное резервное копированием информации и баз данных. 6.9.5. Передача информации по сетям общего пользования осуществляется с использованием средств криптографической защиты информации. 6.10. Организована система контроля за порядком обработки персональных данных и обеспечения их безопасности. Спланированы проверки соответствия системы защиты персональных данных, аудит уровня защищенности персональных данных в информационных системах персональных данных, функционирования средств защиты информации, выявления изменений в режиме обработки и защиты персональных данных.

7. ДОСТУП К ПОЛИТИКЕ 7.1. Действующая редакция Политики на бумажном носителе хранится по адресу: 129085, г. Москва, Проспект Мира, д. 101В, стр. 2. 7.2. Электронная версия действующей редакции Политики размещена на сайте Оператора в сети «Интернет».

8. АКТУАЛИЗАЦИЯ И УТВЕРЖДЕНИЕ ПОЛИТИКИ 8.1. Политика утверждается и вводится в действие распорядительным документом, подписываемым руководителем Оператора. 8.2. Оператор имеет право вносить изменения в настоящую Политику. При внесении изменений в наименовании Политики указывается дата последнего обновления редакции. Новая редакция Политики вступает в силу с момента ее размещения на сайте Оператора, если иное не предусмотрено новой редакцией Политики. 8.3. К настоящей Политике и отношениям между субъектом персональных данных и Оператором применяются нормы действующего законодательства Российской Федерации.

blog.webit.ru

Power BI: Расчет корректировок ставок Яндекс.Директ с помощью подключения к API Яндекс.Метрики

DESCRIPTION

Расчет корректировок ставок Яндекс.Директ с помощью подключения к API Яндекс.Метрики Power BI Расчет…

TRANSCRIPT

Расчет корректировок ставок Яндекс.Директ с помощью подключения к API Яндекс.Метрики Power BI Расчет корректировок ставок Яндекс.Директ с помощью подключения к API Яндекс.Метрики Сергей Лосев https://fb.com/LossevSergey 1 https://fb.com/LossevSergey О корректировках ставок Корректировки ставок позволяют рекламодателям повысить или понизить цену клика при показе объявления определенной аудитории. Цену клика можно корректировать с помощью коэффициентов. Коэффициент — это заданная в процентах величина, на которую изменяется ставка. Целевая аудитория — для аудитории, соответствующей определенным условиям подбора. Мобильные — для рекламы на мобильных телефонах и смартфонах. Пол и возраст — для аудитории определенного пола или возраста. 2 https://fb.com/LossevSergey https://fb.com/LossevSergey 2 Disclaimer В дальнейших примерах в качестве ключевого параметра взят показатель отказов. Да, в качестве расчетного параметра было бы более правильно взять какую-нибудь цель, но цель у каждого сайта/бизнеса может быть своя, и считаться по-разному, а показатель отказов есть у всех, и считается он для всех одинаково. Рассмотрим анализ корректировок только для пола 3 https://fb.com/LossevSergey https://fb.com/LossevSergey 3 https://fb.com/LossevSergey 4 https://fb.com/LossevSergey 5 В среднем, у мужчин показатель отказов меньше, чем у женщин, поэтому есть смысл бюджет на мужчин увеличить, а на женщин уменьшить. Средний показатель отказов по кампании равен примерно ~(40%+60%)/2=50%. Тогда мы можем добавить мужчинам +10% ставки, а женщинам -10%, чтобы сумма корректировок равнялась нулю https://fb.com/LossevSergey 6 Корректировки на уровне кампании https://fb.com/LossevSergey 7 https://fb.com/LossevSergey 8 Корректировки на уровне кампании Идеальная настройка кампании – по всем полам и по всем возрастам https://fb.com/LossevSergey 9 Совсем идеальная настройка – скорректировать ставки на уровне каждой группы кампании https://fb.com/LossevSergey 10 Подключение к API Метрики https://fb.com/LossevSergey 11 Рассмотрим простое подключение к API и скачаем список счетчиков, доступных в аккаунте Яндекс.Метрики Документация – наше всё! https://fb.com/LossevSergey 12 * Read The Funny Manual https://tech.yandex.ru/metrika/doc/ref/reference/get-counter-list-docpage/ https://fb.com/LossevSergey 13 Смотрим пример https://fb.com/LossevSergey 14 Токен – ваш «временный пароль» к АПИ Как получить, подробнее тут - https://tech.yandex.ru/oauth/ https://fb.com/LossevSergey 15 Указываем адрес ресурса https://fb.com/LossevSergey 16 Получаем данные, указывая get-параметры из документации вторым аргументом функции Web.Contents https://fb.com/LossevSergey 17 В ответ получаем JSON, который распарсиваем функцией Json.Document https://fb.com/LossevSergey 18 В списке – записи с параметрами счетчиков https://fb.com/LossevSergey 19 Для дальнейшей работы преобразовываем список в таблицу https://fb.com/LossevSergey 20 Фильтруем и оставляем только интересующие счетчики https://fb.com/LossevSergey 21 Разворачиваем поля данных в столбцы и получаем таблицу со всеми параметрами счетчика https://fb.com/LossevSergey 22 Выведем на экран то, что получилось. Используем для этого визуализацию Таблица https://fb.com/LossevSergey 23 Прокликаем нужные галочки или перетащим интересующие поля в свойства визуализации https://fb.com/LossevSergey 24 А как получить данные о визитах и отказах? https://fb.com/LossevSergey 25 В доках – требуется указать адрес ресурса с get-параметрами. https://tech.yandex.ru/metrika/doc/api2/api_v1/data-docpage/ https://fb.com/LossevSergey 26 https://fb.com/LossevSergey 27 Создаём вручную таблицу с интересующими параметрами (ид счетчика, визиты, отказы итд). Не обязательно задавать все параметры, а пустые мы чуть позже отфильтруем https://fb.com/LossevSergey 28 Почти как в родном Excel’е https://fb.com/LossevSergey 29 При необходимости, редактируем таблицу нажатием на шестеренку тут Создаем пустой запрос и указываем URL ресурса, который взяли из документации. В нашем случае – в формате CSV https://fb.com/LossevSergey 30 Добавляем в качестве шага подготовленную ранее таблицу с параметрами https://fb.com/LossevSergey 31 Удаляем пустые значения параметров, иначе АПИ Метрики выдаст ошибку https://fb.com/LossevSergey 32 https://fb.com/LossevSergey 33 Конвертируем таблицу в запись. И передаем в функцию Web.Contents вторым аргументом https://fb.com/LossevSergey 34 Попутно «пришиваем» к записи полученный ранее токен https://fb.com/LossevSergey 35 Полученный ответ читаем как CSV-файл https://fb.com/LossevSergey 36 Делаем из первой строки названия столбцов https://fb.com/LossevSergey 37 Пропускаем одну строку с общими и средними результатами https://fb.com/LossevSergey 38 Изменяем тип некоторых данных с текста на числа, т.к. Метрика отдает все в виде текста https://fb.com/LossevSergey 39 Небольшое украшательство - переименовываем столбцы, укорачивая их названия https://fb.com/LossevSergey 40 В итоге получаем следующую таблицу https://fb.com/LossevSergey 41 То же самое переносим на лист визуализации. Слева – что спросили, справа – что получили https://fb.com/LossevSergey 42 Добавим к таблице вычисляемый столбец «Конверсии» https://fb.com/LossevSergey 42 https://fb.com/LossevSergey 43 Добавим меру «Показатель отказов» https://fb.com/LossevSergey 43 https://fb.com/LossevSergey 44 Вычислим окончательную корректировку ставок, добавив меру «Корректировка» https://fb.com/LossevSergey 44 https://fb.com/LossevSergey 45 Создадим окончательную таблицу https://fb.com/LossevSergey 45 https://fb.com/LossevSergey 46 Добавим вычисленные значения, перетянув соответствующие поля https://fb.com/LossevSergey 46 https://fb.com/LossevSergey 47 Добавим условное форматирование к полю «Корректировка» https://fb.com/LossevSergey 47 https://fb.com/LossevSergey 48 Раскрасим условное форматирование поля «Корректировка» как нам нравится https://fb.com/LossevSergey 48 https://fb.com/LossevSergey 49 Добавим визуальный элемент «Срез» https://fb.com/LossevSergey 49 https://fb.com/LossevSergey 50 И укажем поле «Кампания» https://fb.com/LossevSergey 50 https://fb.com/LossevSergey 51 Добавим еще срез и укажем поле «Пол» https://fb.com/LossevSergey 51 https://fb.com/LossevSergey 52 Зажав Ctrl и кликнув по срезу «Пол» в М и Ж, исключим тех, кто не определился с полом https://fb.com/LossevSergey 53 Укажем в срезе по кампаниям N-10433217: различия в эффективности между М и Ж незначительные https://fb.com/LossevSergey 54 Укажем в срезе по кампаниям N-10433275: различия в эффективности между М и Ж незначительные https://fb.com/LossevSergey 55 Кампания N-10433397: существенные различия между М и Ж. Можно перераспределить бюджет https://fb.com/LossevSergey 56 Добавим интерактива – сделаем срезы визуальными. Добавим диаграмму https://fb.com/LossevSergey 57 И наполним диаграмму полями, как указано ниже https://fb.com/LossevSergey 58 Теперь, при клике по секторам, таблица будет фильтроваться по М https://fb.com/LossevSergey 59 Или по Ж https://fb.com/LossevSergey 60 Добавим гистограмму и заполним поля, как на картинке https://fb.com/LossevSergey 61 Теперь, кликая по гистограмме, мы фильтруем таблицу и сегментируем круговую диаграмму по кампаниям https://fb.com/LossevSergey 62 И наоборот – кликая по сегменту диаграммы, сегментируем кампании гистограммы по полу https://fb.com/LossevSergey 63 А что, если мы хотим увидеть на гистограмме не сегментирование, а фильтрацию? Необходимо добавить фильтрацию во взаимодействие диаграмм https://fb.com/LossevSergey 64 Нужно кликнуть на эту воронку. Теперь, кликая по сегменту круговой диаграммы, на гистограмме фильтруется только указанный пол https://fb.com/LossevSergey 65 Аналогично поступаем с гистограммой, чтобы фильтровать круговую диаграмму по кампаниям https://fb.com/LossevSergey 66 А что, если мы хотим рассматривать данные только в разрезе одной кампании, при этом, иметь возможность выбрать только женский пол, а также одновременно визуализировать, как распределяются конверсии и отказы на одной диаграмме? %) https://fb.com/LossevSergey 67 Добавим лишь одно поле в гистограмму https://fb.com/LossevSergey 68 В шапку гистограммы добавятся новые иконки https://fb.com/LossevSergey 69 Теперь, нажав иконку детализации, мы можем перейти к drill-down’у https://fb.com/LossevSergey 70 И, кликнув по любому бару на гистограмме, «проваливаемся» на следующий уровень https://fb.com/LossevSergey 71 Теперь, если мы выключим drill-down и выберем, скажем, Ж, таблица полностью отфильтруется, а на диаграмме увидим, как распределены конверсии и отказы https://fb.com/LossevSergey 72 Если же мы теперь кликнем с зажатым Ctrl на М, то увидим, как распределены М и Ж одновременно. А таблица примет вид, как ранее на слайде со срезами Почитать https://fb.com/LossevSergey 73 https://habrahabr.ru/post/311600/ - Power Query: как перестать бояться функционального программирования и начать работать в расширенном редакторе запросов https://yandex.ru/support/direct/impressions/bids-adjustment.xml - Яндекс.Директ, Корректировки ставок https://tech.yandex.ru/metrika/doc/ref/concepts/About-docpage/ - API Яндекс.Метрики V1 https://tech.yandex.ru/metrika/doc/api2/concept/about-docpage/ - API Яндекс.Метрики V2 https://powerbi.microsoft.com/ru-ru/ - Скачать Power BI https://powerbi.microsoft.com/ru-ru/documentation/powerbi-desktop-getting-started/ - Документация по Power BI - Начало работы с Power BI Desktop Скачать файл с примером - https://1drv.ms/u/s!Aq7ba36yLJYqpk6rqV3S7qIWbAln Обратная связь 74 https://fb.com/LossevSergey

vdocuments.us

Аудитор рекламных кампаний Яндекс.Директ для Excel/Power BI

Аудитор яндекс.директ

Уже пару месяцев свободные вечера посвящаю этому аудитору.Это, очевидно, первая версия. Аудитор будет дополняться функционалом и поэтому ваши комментарии с пожеланиями будут крайне уместны.

Чтобы получать все обновления кода автоматически, советую использовать краткий код функции. Почему в этом случае код будет всегда актуален я описывал здесь.

Ссылка на полную версию в Github

Краткий код функции

let sourceFn = Expression.Evaluate( Text.FromBinary( Binary.Buffer( Web.Contents("https://raw.githubusercontent.com/ezabitov/PQYandexDirectChecker/master/Main.m") ) ), #shared) in sourceFn

let

        sourceFn = Expression.Evaluate(

            Text.FromBinary(

                Binary.Buffer(

                    Web.Contents("https://raw.githubusercontent.com/ezabitov/PQYandexDirectChecker/master/Main.m")

                )

            ), #shared)

in

        sourceFn

Что умеет

Забирает список кампаний из аккаунта, кладет в таблицу, а далее столбцами показывает те или иные настройки, например:— Средний дневной расход за месяц;— Кол-во битых ссылок;— Кол-во отклоненных объявлений;— Стратегии показа;— и т.д.

Как запустить

Все как обычно 🙂

  1. Вставляем код в расширенный редактор Power Query/Power BI;
  2. Вводим токен, который предварительно получаем здесь;
  3. Если агентский аккаунт, заполняем «clientlogin», если не агентский — пропускаем;
  4. Если хотим аудировать все кампании в аккаунте, пишем «YES» в строке «allCampaigns», если только активные — пропускаем;
  5. Жмем «Invoke»/«Вызвать» и ждем пока пройдут все проверки.

Если возникла ошибка

Если вы столкнулись с какой-либо ошибкой, напишите, пожалуйста, мне в facebook, на почту или в комментарии к записи.

Если у вас возникла ошибка как на скриншоте ниже, это означает что Яндекс еще готовит данные, чтобы отдать их в аудитор, попробуйте обновить запрос через 10-15 секунд.Ошибка при формировании запроса

zabitov.ru

Как сделать dashboard для мониторинга контекстной рекламы с помощью Power BI

Автор: Соболев Денис, руководитель отдела аналитики digital-агентства webit

Сейчас на рынке очень популярен такой инструмент, как Power BI. Его применяют в самых разных областях, в том числе и в интернет-маркетинге. Мы решили рассказать, как его можно использовать для работы с показателями контекстной рекламы на примере выгрузки статистики из рекламной системы Яндекс.Директ и Google Analytics.

Получение данных через API из необходимых источников

Для того чтобы собирать статистику, сначала ее необходимо получить. Давайте начнем с Яндекс.Директа.

Яндекс.Директ

Для получения статистики из Яндекс.Директа, проще всего использовать API Яндекс.Метрики. Для этого мы используем уже готовый Power Query скрипт Максима Уварова.Для простоты можно скачать уже готовый Power BI файл c последней версией коннектора.

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

Для начала надо понять, какие именно параметры и метрики мы хотим получить. Полный список можно посмотреть здесь.

Для Яндекс.Директа нас интересуют следующие параметры (dimensions): ym:ad:date,ym:ad:directOrder,ym:ad:directPhraseOrCond и метрики (metrics): ym:ad:clicks,ym:ad:RUBAdCostТо есть мы будем выгружать дату, название кампании, условие показа, клики и стоимость.

Давайте настроим сам BI файл. Для этого сначала получаем токен:

А также находим id нужного нам счетчика метрики:

Теперь заполняем все эти данные в BI-файл. Для начала вызываем функцию getDirectIDs:

В ответ получает ID нашего аккаунта Яндекс.Директе:

Теперь у нас есть вся необходимая информация, чтобы выгрузить статистику. Выбираем функцию PQYM, заполняем поля и нажимаем «Вызывать»:

В результате мы получаем статистику по нашим рекламным кампаниям:

Далее нам необходимо преобразовать эту информацию для дальнейшей работы:

1) Указать тип данных в каждом столбце.2) Убрать номера РК, оставить только названия.3) Убрать минус-слова и кавычки из условий показа.4) Переименовать столбцы для более удобной работы с ними и дальнейшего сведения, чтобы не было путаницы.

Статистика по Яндекс.Директу готова, можем двигаться дальше. В целом, алгоритм получения статистики из Яндекс.Метрики аналогичен, просто применяем другие показатели и метрики при вызове функции.

Google Analytics

Для оценки эффективности клиентских рекламных кампаний мы используем данные по достижению целей из Google Analytics. Давайте рассмотрим, как их можно получить через API.

Первым делом необходимо установить нужный аддон для Google Spreadsheets:

Находим нужный нам аддон и устанавливаем его:

Следующим этапом формируем конфигурационный файл для отчета:

Для того чтобы получить данные, нам надо знать следующие вещи:

1) ID представления в Google Analytics, его можно найти в настройках представления

2) Необходимые параметры и метрики для выгрузки

3) Временной отрезок, за который выгружаются данные

Аддон позволяет выгружать несколько отчетов, например, достижения по целям и расход из Google Adwords, но нам сейчас нужен только один, заполняем его по примеру:

Как видно, здесь у нас присутствуют такие метрики, как ga:goal1Completions, это как раз данные по достижению целей. Вместо цифры 1 необходимо указать номера нужных вам целей, они есть в настройках Google Analytics:

После того, как данные будут заполнены, запускаем отчет:

В итоге мы получаем всю статистику по достижению целей на отдельной вкладке:

Не забываем настроить автообновление раз в сутки:

Самое сложное осталось позади, теперь добавляем наши данные в Power BI. Для этого публикуем их по ссылке:

Полученную ссылку добавляем в Power BI:

Получаем в итоге таблицу:

Преобразовываем ее в следующем порядке:

1) Удаляем верхние 14 строк2) Используем первую строку как заголовки3) Устанавливаем типы данных для столбцов4) Переименовываем столбцы5) Складываем информацию по всем достижениям целей

На выходе получаем таблицу, аналогичную статистике из Яндекс.Директа.

Небольшое отступление:

Если при настройке отчета Big Analytics Data использовать следующие настройки, то можно получить статистику по расходам Google Adwords, если между Adwords и Analytics установлена связь:

Сведение данных в общую таблицу

Теперь нам нужно для работы объединить запросы:

Данные по столбцам, название которых совпадает, сведутся автоматически, отсутствующие данные заполняются значением null, которое лучше заменить на ноль:

Все, данные собраны и подготовлены, можно переходить к визуальной части.

Вспомогательные данные

Сегменты кампаний

Для удобства создания визуализаций мы также используем сегменты для наших рекламных кампаний.

Для создания сегментов берем нашу таблицу с данными из Яндекс.Директа и преобразовываем ее:

1) Удаляем ненужные столбцы2) Удаляем дубликаты3) Разделяем столбец с названиями РК по разделителю “_”4) Переименовываем столбцы для удобства, оставив необходимые

На выходе получаем такую таблицу:

Работа с датами

Часто возникает ситуация, что нам необходимо смотреть динамику по месяцам или неделям, для того чтобы анализировать текущую ситуацию. Средствами Power BI это реализовывается не очень удобно, так что мы сделали вспомогательную таблицу:

Далее, аналогично таблице с данными из Google Analytics мы добавляем ее в наш BI файл и немного преобразовываем, добавляя в нее месяц:

Визуальная часть

Установление связей

Первое, что нам необходимо сделать — установить связи между нашими таблицами:

Это позволит нам строить фильтры для визуализаций более гибко.

Создание мер

Теперь давайте подумаем, каких метрик нам не хватает для отслеживания эффективности рекламных кампаний. Мы выделили что дополнительно хотим видеть CPA и конверсию, создаем их:

1) Считаем сумму обращений:

2) Считаем конверсию:

3) Считаем CPA:

Создание визуализаций

Давайте сделаем общий dashboard, который нам позволит мониторить текущую ситуацию по клиенту в целом:

Так как реклама запущена недавно, то статистики по клиенту не очень много, но мы наглядно видим текущую ситуацию.

Не забываем добавить разные уровни даты для удобства переключения на графиках:

Переходя на разные уровни мы можем оценить динамику:

Дополнительно построим матрицу с информацией по кампаниям и ключевым словам:

Данный вид визуализации позволяет нам сгруппировать данные по нужным нам сегментам и мы видим текущую картину вплоть до ключевого слова.

Результат работы

И в завершение статьи мы публикуем данную визуализацию, с которой можно повзаимодействовать динамически и посмотреть ее возможности (данные предоставлены тестовые и не являются реальными).

Ссылка на просмотр, если отключены iframe:

https://app.powerbi.com/view?r=eyJrIjoiYjdkZTdhN2MtZDY3OC00YTYxLWExNjAtNzNhYzBjNDQyODA4IiwidCI6ImNlZjk4ZTU4LTgxZjctNDE5NC1iZTgyLWY2M2E3ZGU4YTdhZSIsImMiOjl9

Источник: searchengines.ru

Похожие статьи:

seo-inform.ru

Идеальная модель атрибуции для Яндекс Директ при помощи Power BI

Читайте также

Автор: Александр Морин, ведущий специалист отдела контекстной рекламы компании Webit.

Работая над оптимизацией рекламных кампаний в Яндекс Директ, мы столкнулись с несколькими проблемами. У клиента есть многостраничный сайт по продаже электронных подписей. Пользователи заходят на сайт несколько раз, изучают материал, затем могут оставить заявку или позвонить. У нас нет доступа к CRM клиента, поэтому мы не можем отследить дальнейший путь пользователя. Это затрудняет оптимизацию кампаний, так как неизвестно, с каких кампаний были продажи. При отсутствии отчетов по продажам, мы работаем на уровне обращений.

При составлении отчетов по обращениям возникает несколько стандартных проблем:

• пользователи совершают обращение после нескольких визитов на сайт, поэтому модель атрибуции Last Click дает некорректные данные

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

• клиент хотел бы видеть данные по обращениям (включая звонки) в едином отчете

При попытках сведения статистики с учетом атрибуции, столкнулись с техническими проблемами:

• вопрос выбора модели атрибуции, которая наиболее точно покажет вклад каждого источника в конверсию

• стандартный API Google Analytics не отдает данные в заданных моделях атрибуции

• не все звонки корректно передавались в Google Analytics

Проблема требовала глобального решения. Мы предпочли не только избавиться от погрешностей, но и дополнить решение собственной моделью атрибуции. Для нас важно было учитывать активность пользователя при движении к конверсии.

Например, перейдя с поиска первый раз, пользователь просмотрел 10 страниц, перейдя потом с контекстной рекламы в РСЯ — 5 страниц, а в третий раз перешел с ретаргетинга и совершил конверсию, но просмотрел всего 2 страницы. Можно предположить, что самая важная часть его знакомства с сайтом состоялась при переходе с поиска. Исходя из этого, мы назначаем ценность каждому рекламному каналу и можем рассчитать вклад канала в конечную конверсию.

Для измерения активности пользователей мы выбрали показатель «хиты». Он включает в себя посещения страниц и все события в Google Analytics.

Мы поставили задачу объединить пользователей по Client ID, исключить дублирование обращений и учесть поведение людей на сайте при моделировании атрибуции. Это позволит составить сводный отчет по всем рекламным кампаниям. Его можно показать клиенту и использовать для оптимизации рекламы. При этом у нас будет четкое обоснование выбора модели атрибуции, а у клиента будет уверенность в качестве нашей работы.

Реализация

1. Client ID

Нужно добавить Client ID в Google Analytics. Это основной параметр для сведения данных и построения моделей атрибуции. Из всех инструкций по установке Client ID, мы выбрали метод Simo Ahava. После сбора статистики по Client ID в течение нескольких месяцев, получили данные для анализа.

2. Big Analytics Data

Для выгрузки данных по API из Google Analytics мы выбрали инструмент Big Analytics Data. Он бесплатный, удобный, позволяет регулярно обновлять данные. Также, он показывает семплирование данных и позволяет его обходить. Работает как дополнение к Google SpreadSheets, устанавливается аналогично:

Ниже показана конфигурация отчета. Параметр ga:dimension1 — пользовательский параметр Client ID. Цели с номерами 4 и 5 — формы на сайте.

После обработки данных, получили таблицу:

3. Запрос по API к коллтрекингу

Помимо данных из Google Analytics, нужны данные коллтрекинга. Изучив справку API коллтрекинга, написали запрос:

После преобразования данных, получили табличку, похожую на приведенную выше, но уже по звонкам:

4. Объединение таблиц: аналитика и коллтрекинг

Соединяем таблички в единое целое:

Складываем заявки и звонки, получая единый столбец — обращения (app). Сводим данные по client_id, дате, источнику, каналу и кампании:

В итоге получили таблицу с Client ID, источниками, каналами и кампаниями, хитами и обращениями. Теперь можно строить модели атрибуции.

5. Группировка All Rows

Основной метод объединения данных по Client ID в Power Query — группировка All Rows (Все строки). C её помощью мы получили табличку из 2 столбцов — Client ID и все остальные данные:

В каждой ячейке второго столбца содержится таблица с подробными данными по этому Client ID:

Теперь нужно посчитать суммарное количество хитов по каждому Client ID, чтобы в дальнейшем можно было узнать долю каждого источника.

Используем функцию List.Sum для подсчета общего количества хитов (hits_sum):

Аналогичным способом считаем сумму обращений (app_sum). В итоге получаем два новых столбца:

После чего разворачиваем столбец «Все строки», нажимая на значок справа от названия столбца:

Таблица возвращается к прежнему виду, но теперь у нас есть сумма хитов и сумма обращений по каждому Client ID:

6. Удаление дублей в обращениях

Сводим к единице или нулю количество обращений по каждому Client ID. Если клиент не обращался — ноль, если обратился хотя бы один раз — единица:

7. Вычисление количества обращений

Рассчитываем ценность каждого визита в обращении (value). Если суммарное количество хитов равно нулю, считаем, что пользователь сразу вышел с сайта. Если есть хотя бы один хит — считаем отношение количества хитов в конкретном визите к общему числу хитов:

В итоге получаем ценность каждого сеанса в рамках цепочки конверсий. Её нужно умножить на общее количество конверсий по Client ID:

В итоге получили количество обращений по каждой сессии.

8. Статистика по кампаниям

Агрегируем данные по рекламным кампаниям, считаем количество обращений (value_app):

В таком методе расчета мы неизбежно получаем дробные значения, так как распределение конверсий идет в соответствии со множеством действий пользователя на сайте.

9. Оптимизация рекламных кампаний

Подгружаем расходы, строим график по расходам (costs) и стоимости обращения по модели «активность пользователя» (CPA_active). Видим, какие кампании нуждаются в оптимизации:

10. Сравниваем модели атрибуции

Из графика сравнения моделей атрибуции видно, что модель Last Click идет в отрыве от остальных и не является объективной.

Модель атрибуции по данным активности очень похожа на линейную модель, но мы считаем её более интересной благодаря учету действий пользователя на сайте.

Красный столбец — стоимость обращения по модели атрибуции «активность пользователя».

Желтый столбец — стоимость обращения по модели атрибуции «First Click».

Фиолетовый столбец — стоимость обращения по модели атрибуции «Last Click»

Оранжевый столбец — стоимость обращения по линейной модели атрибуции.

Итог:

Мы объединили пользователей по Client ID, исключили дублированные заявки и звонки, учли пути пользователей к конверсии, использовали данные о поведении людей на сайте. Теперь можно проводить более точную оптимизацию рекламных кампаний и демонстрировать отчетность клиенту с четким обоснованием выбора модели атрибуции. Так как все данные автоматически подтягиваются в единый отчет, в любой момент можно посмотреть статистику и принять решение о дальнейших действиях.

В качестве метрики активности можно использовать не только хиты. Более интересная метрика — длительность активного посещения. Для этого нужен циклический скрипт учета активности пользователей. Если каждые 30 секунд активного пребывания на сайте запускать событие, ценность можно распределять в соответствии с длительностью активного посещения. Это более точная метрика, так как она включает в себя время реальной активности пользователя: движения мыши, скролл и клики по элементам. Не советую брать в качестве показателя активности время посещения из Google Analytics — по нашим наблюдениям данные некорректны.

Если вы хотите исключить участие некоторых каналов в моделировании атрибуций — нужно отфильтровать их на этапе загрузки данных из Google Analytics. Лучше оставить только платные источники, чтобы понять, как распределяется ценность между ними. Перераспределять бюджеты по этим данным — наиболее целесообразно.

Мы получили бесплатное решение, которое можно применять для любого клиента. Если клиенту важна атрибуция и не подходит Last Click — рекомендую пользоваться атрибуцией с учетом активности пользователя. По результатам сравнения моделей атрибуции, в нашем случае она была ближе всего к линейной модели. Очевидный её плюс перед другими моделями — учет данных о поведении пользователя на сайте.

Источник: searchengines.ru

seo-max1.esy.es


Смотрите также