Содержание

Проверяем показы своих объявлений — Новости рекламных технологий Яндекса

Проверяем показы своих объявлений

Свежая инструкция, как и обещали.

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

Отвечаем: нет, позиции не могут сильно измениться из-за учета поведения пользователей. На место показа в первую очередь влияют хорошо знакомые вам факторы: ставка, кликабельность и качество объявления. Но раз и навсегда застолбить за собой выбранное место в блоке тоже нельзя. Разным людям и на разных устройствах реклама может показаться немного выше или ниже позиции, на которую вы рассчитывали. На это влияют не только предпочтения пользователя, но и количество ваших конкурентов прямо сейчас в регионе показа, их ставки с учётом повышающих и понижающих корректировок, степень соответствия запросу, стратегия показов — целый набор разных условий.

Так или иначе, если вы потеряли своё объявление, вот 7 способов найти его. Очевидных и не очень.

  1. Убедитесь, что активизация прошла успешно. Между включением кампании и её появлением в результатах поиска проходит до трех часов. Если объявления в статусе «Идёт активизация», они действительно пока не показываются. Подождите немного.
  2. Посмотрите «Среднюю позицию» в Мастере отчетов. Это самый надёжный способ быстро проверить показы для всех интересующих вас объявлений.
    Значение средней позиции выражается десятичной дробью: чем меньше цифра, тем выше вы показываетесь. Скажем, число 2,7 означает, что объявление чаще всего занимает второе или третье место спецразмещения, а число 6,9 — что объявление обычно показывается внизу блока гарантии.
    Если число больше 8, рекламу не получится найти на первой странице результатов поиска. Поищите в динамических показах и на странице «Все объявления».
  3. Проверьте, где вы и который час. Текущее время, день недели и ваш регион при проверке не всегда соответствуют тем, которые заданы в настройках показов рекламы.  
  4. Дневной бюджет ещё остался? Его может недоставать для непрерывных показов. Возможно, вы уже потратили дневной лимит или выбрали «Распределённый режим расходов», при котором система иногда автоматически останавливает показы, чтобы денег хватило до конца дня.
    Временные остановки показов из-за нехватки средств случаются и при автоматическом, и при ручном управлении ставками. При каждой остановке Директ присылает уведомление вам на почту.
  5. Сбросьте куки, проверьте выдачу на другом устройстве, в другом браузере или на чужом компьютере. Этот приём может помочь, если дело касается «застрявшего» в браузере кеша, поведенческих факторов и корректировок ставок. Возможно, вы оказались нецелевой аудиторией для своей рекламы или входите в особенно ценный сегмент аудитории конкурентов. Если со статистикой показов и средней позицией объявлений всё хорошо, но у вас не получается в этом убедиться, начинайте исключать факторы, которые на это влияют.
  6. С IP всё нормально? Иногда источником проблемы может быть ваш IP-адрес (например, если он ошибочно приписан к нецелевому региону). Подозреваете, что дело в этом? Пришлите его нам через форму обратной связи — мы проверим.
  7. Проверьте минус-фразы и операторы. Дьявол кроется в деталях. Если вы увлеклись использованием операторов или не глядя скопировали чужой список «проверенных» минус-слов, вы с большой вероятностью не только потеряете часть полезной аудитории, но и сами не увидите своё объявление.
    Скажем, вы зафиксировали оператором «плюс» предлог в ключевой фразе Квартиры +в Клину, а рекламу ищете по запросу Квартиры Клин купить.
    Бывает и обратное — вы случайно добавили предлог в минус-фразы, а в ключевых словах не закрепили такой же предлог операторами. Объявление с ключевой фразой автомат по продаже контактных линз с минус-словом -!по будет показываться только тем, кто задает запросы без предлога (например, продажа контактных линз автомат).
    Будьте осторожны с такими настройками и внимательно проверяйте список минус-фраз, если показов подозрительно мало. Кстати, вот отличный вебинар о подборе ключевых слов с примерами и полезный практикум по работе с операторами.

В любой непонятной ситуации пишите нам с указанием номера кампании или потерянного объявления. Найдём его вместе.

yandex.ru

Как проверить показ объявлений по фразам?Кузнецова Галина, интернет-маркетолог, бизнес-тренер в Ростове-на-Дону

Частая ситуация, когда заказчик контекстной рекламы на Яндекс Директ вводит поисковый запрос в yandex.ru, и не находит своего объявления.
Как так? Где же оно и показывается ли вообще? Вот же оно, в настройках кампании и слово есть и объявление, но я его не вижу!
Паника преждевременна. Расскажем, где же прячется ваше объявление и как проверить, показы объявлений по ключевым фразам. Только делать это не на поиске Яндекса, а в разделе Статистика.
ВНИМАНИЕ! С момента публикации интерфейс Яндекса несколько изменился, общие принципы остались те же, скриншоты в скором времени заменю.Для начала, лирическое отступление, где показываются рекламные объявления на Яндекс Директ? Это Спецразмещение, Директ,  Гарантированные и Динамические показы. Подробнее о том сколько объявлений где показывают — в Справке Яндекс Директ.
В зависимости от выбранных настроек рекламной кампании, показ объявлений будет организован по разному.

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

В разделе «Статистика» переходим на вкладку «Фразы по дням»

На этой странице выдается статистика по каждому объявлению отдельно — сколько раз по ключевому слову конкретного объявления было показов.
Можно посмотреть статистику по ключевым фразам в другом разрезе — ключевое слово/рекламная позиция/количество показов.
Для этого перейдем на вкладку «Мастер отчетов».

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

Как видим, по одному и тому же слову, объявление может показываться как в Спецразмещении, так и на прочих позициях (Директ, Гарантированные и Динамические показы).
Так что если один день ваше объявление показывается в спецразмещении, а другой в динамических показах, пугаться не стоит. Реклама идет, пользователи ее видят.

Почему же есть разброс в показах? Это зависит от настроек рекламной кампании.

1. Порядок показа объявлений в системе Яндекс.Директ зависит от эффективности рекламного объявления и цены клика. Чем дороже вы готовы заплатить за клик, тем выше будет показываться рекламное объявление. Объявления сортируются по этим параметрам. Подробнее в Справке Яндекс Директ, п.4 Цена за клик. И ответы на вопросы о стоимости клика.

Если установить цену ниже, чем цена входа в гарантированые показы, то объявление будет ротироваться с объявлениями других рекламодателей и показываться не в 100% случаях. Этот показатель показывается в колонке «Охват» в вашей рекламной кампании:

Как видим на примере — запрос «где купить резиновые сапоги» показывается только в 49% случаях, когда пользователь вводит этот запрос в поиск Яндекса. Назначенная цена за это слово — 0,64 цента, в то время как вход в гарантированные показы 1,13 у.е.
Если рекламодатель вводит этот запрос в поиск и не видит своего объявления — это нормально, потому что охват не 100%.

У многих рекламодателей сразу возникает вопрос — так зачем мне половина охвата — пусть всегда стоит 100% и в спецразмещении. Понятное желание, которое ограничивается только размерами вашего рекламного бюджета. В примере — который приведен выше, запрос «где купить резиновые сапоги» в спецразмещении стоит почти 100 руб/клик против 19 руб/клик текущей цены. Клик обойдется в 5 раз дороже, соответсвенно стоимость привлечения покупателя на сайт так же возрастет.

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

Еще случаи, когда объявления может не показываться:

1) Объявление на модерации и еще не активизировалось. Модерация может длиться до 3 часов.
2) Ограничение показов по временному таргетингу (например в настройках кампании показ настроен с 8 до 20 часов, а вы смотрите объявления в 21 час)
3) В объявлениях настроен геотаргетинг (показ объявлений жителям определенных регионов) а вы находитесь в другом регионе, или в настройках вашего поиска принудительно выбран регион, отличный от настроенных на рекламу.

4) Кеш вашего браузера. Браузеры сохраняют историю поиска и поисковой выдачи для увеличения скорости загрузки и новые изменения на сайте еще не скачаны браузером. Принудительно обновить веб-страницу — клавиша F5 на клавиатуре.
5) Закончились деньги на кампании, или стоит ограничение автобюджета (например в настройках установлено — получить 1000 кликов в неделю. После того, как 1000 кликов получено, объявление не будет показываться). То же самое с ограничением по бюджету, например тратить 50 y.e в неделю. Как только эти деньги истратяться, показ объявлений автоматически прекратиться.

Хорошей вам рекламной кампании на Яндекс Директ!

При перепечатке материалов, ссылка на galinatrening.ru обязательна.

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

galinatrening.ru

Проверка кампании Яндекс Директ

 

 

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

 

Если у клиента есть конкретная жалоба, и звучит она как она «нет/мало показов», то перед тем, как залезать в кампанию, идем в Key-Collector и парсим верхушку целевых запросов по региону. Если, например, вы продаете деревянные дома в Сочи, и беглым взглядом видите, что коммерческих ключей там всего-то 40-50 в месяц – чудес не будет. И не надо заливать тут про десять заявок в день. Если спрос низкий, первая задача директолога – собрать этот спрос полностью!

 

 

 

Если кампания работает в течение месяца и более – сразу идем в статистику в Мастере Отчетов. Здесь нас интересует CTR в спецразмещении и гарантии.  CTR ниже 10% – проблема в подборе ключевых слов, рассмотрим ее ниже. Если CTR в гарантии выше, чем в Спецразмещении  — виноваты ставки. Надо знать  — ставка в гарантии может быть выше СР при низком CTR, а нам такое не нужно!

 

 

Анализируем ключевые слова. В Мастере Отчетов смотрим, какое объявление по какому ключевику показывалось. На что любят кликать, а на что – не хотят (в таблице делаем сортировку по CTR). Если уже накопилась хорошая, длительная статистика – отключаем всю неконверсию (ниже 5%) А если по всей кампании печальный CTR – к некачественному сбору ключей добавляем факт отсутствия минус-слов (в 90% таких случаев минусов нет). То есть кампанию можно сразу останавливать и начинать заново со сбора целевых ключей и минусов.

 

 

Если минус-слов нет вообще, то тяжело вздыхаем, так как что будет с кампанией, более-менее ясно. Пример: рекламируете услуги эвакуатора без минусов – получаете показы по запросам «ремонт эвакуатора», «запчасти», «работа водителем» и прочий порожняк. Результат – дырка от бублика, а не хороший CTR и целевые посетители. Нет минусов – остановите кампанию сразу же.

 

Релевантность объявлений. Ваше объявление отвечает на поисковый запрос пользователя? Вспомните себя, когда искали в Яндексе товар или услугу.  Не предлагаете в тексте ответ на вопрос – кликов не будет! Хорошо работает такой прием – смотрите свои объявления и задаетесь вопросом – а я сам захотел бы кликнуть на это, а?

 

Есть ли в объявлении конкретная выгода для клиента? Цены, условия продажи, опыт, скидки, сроки, конкретные цифры и т.д? Если нет – ни за что не убедите кликнуть (опять же – вспомните себя на поиске).

 

Параметры кампании. Важно понимать, что означает каждая галочка и кнопка в параметрах кампании и знать, нужно ли вам ее включать.  В справке по Директу все хорошо и подробно написано.  НО. Авторасширение и показ по доп. релевантным фразам отключайте, не задумываясь. Показывайте пользователям только то, что сами хотите.

 

Быстрые ссылки, уточнения, отображаемая ссылка, контактная информация, привлекающий внимание фавикон и т.д.  тоже влияют на кликабельность, проверяйте у себя! Яндекс добавляет новые фишки и лямзики регулярно, внедряйте в своих кампаниях.

nastroika-yandex-direct.ru

Не вижу своей рекламы в Яндекс.Директ. В чем причина?

Вы заказали контекстную рекламу в Яндекс.Директ. Внесли деньги. Кампания прошла модерацию и была запущена. Но вы не видите свою рекламу на поиске Яндекса

. Возникает вопрос: почему не вижу своей рекламы в Яндексе? Где мои объявления? Наши клиенты часто задают этот вопрос. Паниковать не стоит. Этому есть простые и объективные причины.

Для кого эта статья

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

✓ директологам, которые устали отвечать клиентам на вопрос «почему я не вижу своей рекламы?». Просто дайте ссылку на эту статью.

Рассмотрим варианты причин.

Вариант 1. Реклама запущена пару часов назад

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

Вариант 2. Несоответствие регионов

Если вы находитесь в Харькове, а реклама настроена на Москву — вы свое объявление не увидите.

Город можно поменять в Настройки > Изменить город. Убираете галочку «Определять автоматически» и указываете нужный город:

После этого вы сможете видеть рекламу для Москвы, хоть фактически находитесь в другом регионе.

Вариант 3. Несоответствие времени показа

Если реклама настроена на показы с 9:00 по 18:00, а вы пытаетесь ее найти в 20:00 — то никак ее не увидите. Уточните в исполнителя время демонстрации рекламы.

Вариант 4. Отсутствие рекламы по введенной ключевой фразе

Если у вас предложение связанное с бизнесом в интернете — не факт, что вы будете демонстрироваться по ключевому запросу «бизнес» и даже по фразе «бизнес в интернете». Особенно если вы подошли к рекламной кампании серьезно. Уточните в исполнителя по каким ключевым фразам демонстрируется реклама.

Если вы будете демонстрировать рекламу по очень широкому запросу (например бизнес), то реклама будет показываться людям по всем запросам с вхождением этого слова: бизнес на собственном огороде, нелегальный бизнес, бизнес книги и т.д. Интересуют ли вас посетители, которые вводят такие запросы? Думаю нет. Потому подбирается список более узких ключевых запросов с выраженным поисковым намерением и уже по этим ключевым фразам демонстрируется реклама. Более широкие запросы используются для рекламы в Рекламной сети Яндекса (РСЯ).

Вариант 5. Низкая ставка

Реклама в Директ — это аукцион. Если ставка по конкретной фразе намного ниже конкурентов — то ваше объявление не будет показано на первой странице Яндекс ни в спецразмещении (вверху страницы), ни в гарантии (внизу страницы). В таком случае объявление показывается в динамике (на 2-3 и последующих страницах Яндекса).

Например, по запросу «бизнес без больших вложений» сайта faberlicmaximum.com нет на первой странице:

Но если мы нажмем на ссылку «Показать все» — покажутся все рекламодатели по данному запросу. Среди них будет и faberlicmaximum.com:

Также причиной отстутствия вашей рекламы на первых позициях может быть плохое качество объявления: низкий CTR и/или продуктивность.

Читайте также: Определение основных терминов в Яндекс.Директ

Вариант 6. Технические проблемы с сайтом

При настройке рекламы, как правило, устанавливается опция отключения показов при неработающем сайте.

Вариант 7. Закончились средства

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

Вариант 8. Рекламы нет на поиске, есть в РСЯ

Может быть и такой вариант, что вы исчете свою рекламу на страницах поиска Яндекса, а она настроена только для показа в Рекламной сети Яндекса (РСЯ). Уточните данный момент в исполнителя и обязательно разберитесь в разнице между показами рекламы на поиске и в РСЯ.

Ну а вообще первый показатель показов рекламы — переходы. Видите в Яндекс.Метрике, что переходы есть — все в порядке.

Обязательно отслеживайте показатели веб-аналитики. Если у вас нет доступов к Метрике — обязательно получите их в исполнителя. 

PS. Можно ли кликать свое объявление в Яндекс.Директ?

Если вы все же нашли свое объявление — его стоит кликнуть. Казалось бы нелогично, ведь за каждый клик мы платим Яндексу. Но нажав на свою рекламу вы увеличите ее CTR и уменшите стоимость клика для своего объявления. И обратная закономерность — если вы находите свое объявление и не кликаете на него — показатель CTR уменьшается и эффективность вашей рекламы падает.

ya-roman.com

Аудит рекламных кампаний и 🔝🔟 пунктов чек листа проверки яндекс директ

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

Первое: типы кампаний — поисковые, РСЯ, географические, ретаргетинговые

Заходим в ваш аккаунт Директ. Смотрим на кампании. Должны присутствовать как минимум два типа кампаний: Поисковые и РСЯ. В идеале к ним еще нужно добавить отдельно Графическую и Ретаргетинговую кампании.

Для этого смотрим сначала на названия кампаний. В идеале, в названии должен быть указан тип кампании – поисковая или Сети (РСЯ). Но если вдруг у вас там окажется абракадабра, тогда смотрим на колонку «Параметры». Там настройки выделены жирным. На картинке вы видите неактивные Сети – это значит, что здесь показ по Сетям отключен. И жирным выделено «Ручное управление», это значит, что кампания показывается в Поиске со стратегией «Ручное управление ставками». Ну и, соответственно, в данном случае видно, что функция «Дополнительные фразы» и OpenStat отключены.

Структуру оценили. Если все на месте, едем дальше.

Второе: разделение кампаний по ГЕО

Смотрим разделение кампаний по ГЕО. Простой шаг, который многие почему-то игнорируют. Да, друзья, нужно! Нужно делать разбивку рекламных кампаний по регионам. От этого напрямую зависят ваши финансовые траты.

Если вы рекламируетесь на всю Россию, то нужно сделать как минимум разбивку на Москву, область + СПб, область и на Регионы. А в идеале еще выделить кампании с крупнейшими городами.

В городах-миллионниках стоимость клика будет намного выше, чем в остальных регионах страны.

Если вы рекламируетесь только в определенном регионе, например, по Москве и области, есть смысл выделить отдельно Москву и отдельно область. Цена клика в данном случает тоже варьируется.

Третье: Метрика и UTM-метки

Проверяем настройки, необходимые для контроля. Это наличие подключенного счетчика метрики и UTM-меток.

Смотрим.

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

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

О том, как правильно проставить UTM-метки.

Четвертое: мониторинг сайта

Одна из самых часто встречающихся ошибок при настройке Яндекс Директ – это отсутствие включенного мониторинга сайта. Из моей практики аудитов кампаний, только 20% клиентов из ста включают эту галочку.

Как проверить. Заходим в кампанию. В шапке смотрим.

Как еще посмотреть. Заходим в параметры кампании:

Если галочка есть, то все в порядке и вы спасены от неожиданного слива бюджета в случае, если сайт «ляжет».

А вот если вы обнаружили, что ваш директолог этого не сделал, сами понимаете, это косячный косяк.

Пятое: мобильная версия сайта и мобильные объявления

Идем вглубь кампаний. Еще одна наиболее частая ошибка, которая обнаруживается при аудите – это наличие мобильной версии сайта, но отсутствие мобильных типов объявлений в рекламных кампаниях.

О том, для чего нужны мобильные объявления и как их делать.

Шестое: виртуальная визитка в объявлении

Наличие дополнений. Все, что придает объявлению солидности: Виртуальная визитка – должна быть проставлена в каждом объявлении, а не только на уровне кампании. Отображаемая ссылка. Быстрые ссылки с описаниями. Уточнения.

У вас это все есть? Шикарно. Идем дальше.

Седьмое: модерация объявлений

Переходим к объявлениям. Первое, на что смотрим – есть ли объявления, не прошедшие модерацию. Если есть – срочно исправляем, дабы окончательно не испортить карму кампании.

Восьмое: второй заголовок

Смотрим на само объявление. В нем один заголовок или два? Буквально на днях Яндекс добавил второй заголовок в объявления.

Девятое: «мало показов»

Заходим в кампанию и смотрим. Есть объявления со статусом «мало показов»? Это значит, что эти объявления Яндекс не показывает. Нужно принимать меры.

Десятое: кросс-минусовка

Какую еще важную деталь нужно учесть при настройке кампании? Это кросс-минусовка. Не только в пределах одной кампаний. Но и на уровне аккаунта.

Это основные пункты, по которым вы можете оценить настройку своих кампаний в Директ.

Нюансов и мелочей, которые улучшат рекламу, намного больше.

Провести Аудит!

Подпишись и следи за выходом новых статей в нашем монстрограмме

 

convertmonster.ru

Как проверить работу подрядчика по контекстной рекламе? — Toster.ru

Друзья, есть новости! В конце апреля я, от отчаяния, обратилась на этот форум в поисках совета. Напомню, тогда мне поручили проверить, эффективно ли наш подрядчик (из другого города) расходует бюджет (500 т.р.ежемесячно) на контекстную рекламу Яндекс.Директ и Google AdWords. Данных почти не было, т.к.подрядчик работал из своего аккаунта в Метрике, и доступа не давал, а Аналитикс вообще снес и настроил новый, как начал на нас работать! Тогда никто за счетами не следил, просто оплачивали счета раз в месяц. Я не знаю, почему попросили меня, и кто решил, что я в интернет-рекламе вообще разбираюсь — видимо кому-то когда-то сказала, что ходила на семинары по сайтам и продвижению.
Спасибо всем, кто дал ответ тут, кое-какая информация мне, действительно, пригодилась.
Вот что было дальше: я подняла все архивные ящики бывшего веб-департамента, обзвонила seo-компании, с кем они работали (оказалось, что все-таки какая-то работа велась по продвижению раньше), получила доступ к счетам от яндекса, гугла и подрядчика, все подсчитала. Я написала исследование на 30 страниц, похожее на курсовик, добавила простейших графиков и диаграмм из метрики (нашла все-таки старый аккаунт бывшего веб-департамента компании и покопалась в архивах), дополнила пояснениями и выводами. Написала введение-актуальность-заключение. Сравнила текущую ситуацию, и, изучив приличное количество порталов, дала предположение, как мог бы развиваться сайт и вообще наш онлайн, применяя комплексный подход (все виды оптимизации, юзабилити, технические доработки и пр.). Дошла до digital, но тут мозгов моих дальше не хватило, и я на совещании, где представляла свою работу, высказала идею пригласить в компанию профессионала в этой области (директора по интернет-маркетингу), который бы занялся онлайном вообще, и продвижением в частности. Каково же было мое удивление, когда меня через пару недель попросили найти компанию по продвижению, а еще через месяц — вышел на работу тот сотрудник, о котором я говорила, и, действительно, взял все в свои руки! Уже месяц мы работаем вдвоем, привыкаем потихоньку. Я, конечно, помогаю ему активно чем могу, стараюсь дальше развиваться, обучаться на практике. В компании создали для нас новое управление по развитию интернет-проектов (иначе, частично восстановили веб-департамент). Насколько я знаю, бюджет перераспределили, теперь эти деньги идут на продвижение с различными доп.услугами, контекст вообще пока убрали, активно дорабатывается юзабилити нашего сайта. Мне интересно!
А должность у меня — всего на всего контент-менеджер. ЗП подняли с 35 до 50. Работаю в компании год.
Всем спасибо за отзывчивость и готовность дать совет.
Удачи все и успехов. Надеемся на лучшее, ребята!

toster.ru

Автоматизация проверки битых ссылок в Яндекс Директ

/*

     Функция проверяет есть ли в вашем аккаунте Яндекс.Директ ссылки на несуществующие страницы.

 

     Версия 2.3

     — добавил проверку графических объявлений

     — поправил баги

 

 

 

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

*/

 

 

let

checkResponse = (token as text, clientlogin as nullable text, findAll as nullable text) =>

let

    // Функция для быстрых ссылок

    fnSitelinkUrl = (sitelinkSetId as text) =>

    let

        sitelinkUrl = «https://api.direct.yandex.com/json/v5/sitelinks»,

        sitelinkBody = «{«»method»»: «»get»»,

            «»params»»: {

                «»SelectionCriteria»»:

                    {

                        «»Ids»»: [«»»&sitelinkSetId&»»»]

                    },

                «»FieldNames»»: [«»Id»», «»Sitelinks»»]

                }

            }»,

        sourceSitelinks = Web.Contents(sitelinkUrl,

            [Headers = [

                #»Authorization»=auth,

                #»Accept-Language» = «ru»,

                #»Content-Type» = «application/json; charset=utf-8»,

                #»Client-Login» = clientLogin],

            Content = Text.ToBinary(sitelinkBody) ]),

        sitelinksJson = Json.Document(sourceSitelinks,65001),

        sitelinksJsonToTable = Record.ToTable(sitelinksJson),

        sitelinksExpand = Table.ExpandRecordColumn(sitelinksJsonToTable, «Value», {«SitelinksSets»}, {«Value.SitelinksSets»}),

        sitelinksExpand1 = Table.ExpandListColumn(sitelinksExpand, «Value.SitelinksSets»),

        sitelinksExpand2 = Table.ExpandRecordColumn(sitelinksExpand1, «Value.SitelinksSets», {«Sitelinks»}, {«Value.SitelinksSets.Sitelinks»}),

        sitelinksExpand3 = Table.ExpandListColumn(sitelinksExpand2, «Value.SitelinksSets.Sitelinks»),

        sitelinksExpand4 = Table.ExpandRecordColumn(sitelinksExpand3, «Value.SitelinksSets.Sitelinks», {«Href»}, {«Value.SitelinksSets.Sitelinks.Href»}),

        sitelinksDelOther = Table.SelectColumns(sitelinksExpand4,{«Value.SitelinksSets.Sitelinks.Href»}),

        sitelinksRenameCol = Table.RenameColumns(sitelinksDelOther,{{«Value.SitelinksSets.Sitelinks.Href», «SitelinkHref»}}),

        delUtmSitelinks = Table.SplitColumn(sitelinksRenameCol, «SitelinkHref», Splitter.SplitTextByDelimiter(«?», QuoteStyle.Csv), {«SitelinkHref.1»}),

        changeSitelinksTypeToText = Table.TransformColumnTypes(delUtmSitelinks,{{«SitelinkHref.1», type text}}),

        renameSitelinksCol = Table.RenameColumns(changeSitelinksTypeToText,{{«SitelinkHref.1», «SitelinkHref»}})

    in

        renameSitelinksCol,

 

    // Функция получения статусов сервера

    fnServerResponse = (urlList as text) =>

    let

        source = Web.Contents(urlList,[ManualStatusHandling={404}]),

        getMetadata = Value.Metadata(source)

    in

        getMetadata,

 

    // вводные

    clientLogin = if clientlogin = null

        then «»

        else clientlogin,

    findAll = if findAll = «YES»

        then «»

        else «, «»States»»: [«»ON»»]»,

    auth = «Bearer «&token,

 

    // получаем список кампаний в аккаунте и формируем таблицу

    url = «https://api.direct.yandex.com/json/v5/campaigns»,

    body = «{«»method»»: «»get»»,

            «»params»»: {

                «»SelectionCriteria»»:

                    {

                        «»States»»: [«»ON»»]

                        },

                «»FieldNames»»: [«»Id»», «»Name»»]}

        }»,

    userIdSource = Web.Contents(url,

        [Headers = [#»Authorization»=auth,

                    #»Accept-Language» = «ru»,

                    #»Content-Type» = «application/json; charset=utf-8»,

                    #»Client-Login» = clientLogin],

        Content = Text.ToBinary(body) ]),

    jsonList = Json.Document(userIdSource,65001),

    campaignToTable = Record.ToTable(jsonList),

    deleteNameColumn = Table.RemoveColumns(campaignToTable,{«Name»}),

    expandValueCampaign = Table.ExpandRecordColumn(deleteNameColumn, «Value», {«Campaigns»}, {«Campaigns»}),

    expandCampaign = Table.ExpandListColumn(expandValueCampaign, «Campaigns»),

    expandCampaign1 = Table.ExpandRecordColumn(expandCampaign, «Campaigns», {«Id», «Name»}, {«Id», «Name»}),

    campaignIdToText = Table.TransformColumnTypes(expandCampaign1,{{«Id», type text}}),

 

    // функция для сбора включенных объявлений и их ссылок

    fnCampaignServerResponse = (campaignsId as text) =>

    let

        urlAds = «https://api.direct.yandex.com/json/v5/ads»,

        bodyAds = «{«»method»»:

                    «»get»»,

                        «»params»»:

                            {«»SelectionCriteria»»:

                                {

                                    «»CampaignIds»»: [«»»&campaignsId&»»»]»&findAll&»

                                },

                                «»FieldNames»»: [«»Id»», «»State»», «»CampaignId»»],

                                «»TextAdFieldNames»»: [«»Href»», «»SitelinkSetId»»],

                                «»TextImageAdFieldNames»»: [«»Href»»]

                                }

                    }»,

        getAds = Web.Contents(urlAds,

            [Headers = [#»Authorization»=auth,

                        #»Accept-Language» = «ru»,

                        #»Content-Type» = «application/json; charset=utf-8»,

                        #»Client-Login» = clientLogin],

            Content = Text.ToBinary(bodyAds) ]),

        jsonListAds = Json.Document(getAds,65001),

        jsonToTableAds = Record.ToTable(jsonListAds),

        expandValueAds = Table.ExpandRecordColumn(jsonToTableAds, «Value», {«Ads»}, {«Ads»}),

        expandAds = Table.ExpandListColumn(expandValueAds, «Ads»),

        expandAds1 = Table.ExpandRecordColumn(expandAds, «Ads»,

            {«Id», «TextAd», «State», «CampaignId», «TextImageAd»},

            {«Id», «TextAd», «State», «CampaignId», «TextImageAd»}),

        expandHrefLinks = Table.ExpandRecordColumn(expandAds1, «TextAd»,

            {«Href», «SitelinkSetId»},

            {«TextHref», «SitelinkSetId»}),

        expandTextImageHref = Table.ExpandRecordColumn(expandHrefLinks, «TextImageAd», {«Href»}, {«TextImageAd.Href»}),

        getOneHref = Table.AddColumn(expandTextImageHref, «Href», each if [TextHref] = null

            then [TextImageAd.Href]

            else [TextHref]),

        delAmotherHref = Table.RemoveColumns(getOneHref,{«TextHref», «TextImageAd.Href»}),

        sitelinkSetIdToText = Table.TransformColumnTypes(delAmotherHref,{{«SitelinkSetId», type text}}),

 

        duplicateHref = Table.DuplicateColumn(sitelinkSetIdToText, «Href», «HrefClean1»),

        deleteUtm = Table.SplitColumn(duplicateHref,»HrefClean1″,Splitter.SplitTextByDelimiter(«?», QuoteStyle.Csv),{«HrefClean»}),

        deleteHttps = Table.ReplaceValue(deleteUtm,»https://»,»»,Replacer.ReplaceText,{«HrefClean»}),

        deleteHttp = Table.ReplaceValue(deleteHttps,»http://»,»»,Replacer.ReplaceText,{«HrefClean»}),

        deleteColExHref = Table.SelectColumns(deleteHttp,{«HrefClean»}),

        distinctHref = Table.Distinct(deleteColExHref),

        hrefDelNull = Table.SelectRows(distinctHref, each [HrefClean] <> null),

        hrefFnToTable = Table.AddColumn(hrefDelNull, «Custom», each fnServerResponse([HrefClean])),

        expandHrefResponseStatus = Table.ExpandRecordColumn(hrefFnToTable, «Custom», {«Response.Status»}, {«Response.Status»}),

 

        deleteColExSitelinks = Table.SelectColumns(deleteHttp,{«SitelinkSetId»}),

        distinctSitelinks = Table.Distinct(deleteColExSitelinks),

        sitelinksDelNull = Table.SelectRows(distinctSitelinks, each [SitelinkSetId] <> null),

        sitelinksFnToTable = Table.AddColumn(sitelinksDelNull, «Custom», each fnSitelinkUrl([SitelinkSetId])),

        expandSitelinks = Table.ExpandTableColumn(sitelinksFnToTable, «Custom», {«SitelinkHref»}, {«SitelinkHref»}),

        expandSitelinksResponse = Table.AddColumn(expandSitelinks, «Пользовательская», each fnServerResponse([SitelinkHref])),

        expandSitelinksResponse1 = Table.ExpandRecordColumn(expandSitelinksResponse, «Пользовательская», {«Response.Status»}, {«Response.Sitelinks»}),

 

            // запускаем функцию и мерджим статусы URL с списком всех объявлений

        mergeSitelinks = Table.NestedJoin(deleteHttp,{«SitelinkSetId»},expandSitelinksResponse1,{«SitelinkSetId»},»mergeSitelinks»,JoinKind.LeftOuter),

        mergeHref = Table.NestedJoin(mergeSitelinks,{«HrefClean»},expandHrefResponseStatus,{«HrefClean»},»mergeHref»,JoinKind.LeftOuter),

        expandMergeSitelinks = Table.ExpandTableColumn(mergeHref, «mergeSitelinks»,

            {«SitelinkHref», «Response.Sitelinks»},

            {«SitelinkHref», «Response.Sitelinks»}),

        expandMergeHref = Table.ExpandTableColumn(expandMergeSitelinks, «mergeHref», {«Response.Status»}, {«Response.Status»})

 

    in

        expandMergeHref,

 

    fnToTable = Table.AddColumn(campaignIdToText, «Custom», each fnCampaignServerResponse([Id])),

    expandFinal = Table.ExpandTableColumn(fnToTable, «Custom»,

        {«Name», «Id», «Href», «SitelinkSetId», «State», «CampaignId», «HrefClean», «SitelinkHref», «Response.Sitelinks», «Response.Status»},

        {«Name.1», «AdId», «Href», «SitelinkSetId», «State», «CampaignId», «HrefClean», «SitelinkHref», «Response.Sitelinks», «Response.Status»}),

    checkProblem = Table.AddColumn(expandFinal, «Problem?», each

        if [SitelinkHref] = null and [Response.Status] = 200

            then «No Problem»

            else

            if [Response.Sitelinks] = 200 and [Response.Status] = 200

                    then «No Problem»

                    else «Problem»),

    filterProblem = Table.SelectRows(checkProblem, each ([#»Problem?»] = «Problem»)),

    finalStep = Table.SelectColumns(filterProblem,

        {«Name», «AdId», «State», «CampaignId», «HrefClean», «SitelinkHref», «Response.Sitelinks», «Response.Status», «Problem?»})

 

in

    finalStep

in

 

checkResponse

zabitov.ru