Выгрузка данных из Яндекс.Директ с указанием условия подбора (корректировки) трафика
import datetime # Переменная с текущей временной отметкой, # которую мы будем использовать в названии отчета timestamp =str(datetime.datetime.now()).replace(‘ ‘,’_’)# Список с перечислением ID целей, которые нам нужно отслеживать goals_id =[(string),…]# — Входные данные —# Адрес сервиса Reports для отправки JSON-запросов (регистрозависимый) ReportsURL =’https://api.direct.yandex.com/json/v5/reports'# OAuth-токен пользователя, от имени которого будут выполняться запросы token =’YOUR TOKEN’# Логин клиента рекламного агентства# Обязательный параметр, если запросы выполняются от имени рекламного агентства clientLogin =’your client login’# — Подготовка запроса —# Создание HTTP-заголовков запроса headers ={# OAuth-токен. Использование слова Bearer обязательно»Authorization»:»Bearer «+ token,# Логин клиента рекламного агентства»Client-Login»: clientLogin,# Язык ответных сообщений»Accept-Language»:»ru»,# Режим формирования отчета»processingMode»:»auto»,}# Создание тела запроса body ={«params»:{# Временные рамки отчета»SelectionCriteria»:{«DateFrom»:»2022-03-01″,»DateTo»:»2022-03-22″},# Поля, которые нужно включить в отчет»FieldNames»:[«Date»,»CampaignType»,»CampaignName»,»CampaignId»,’RlAdjustmentId’,»Impressions»,»Clicks»,»Ctr»,»Cost»,»AvgCpc»,»AvgEffectiveBid»,»AvgImpressionPosition»,»AvgTrafficVolume»,»AvgClickPosition»,»BounceRate»,»AvgPageviews»,»ConversionRate»,»CostPerConversion»,»Conversions»,»GoalsRoi»,»Revenue»,»Profit»],# Наши цели»Goals»: goals_id,# Название отчета»ReportName»: u(f»ReportName_{timestamp}_LYDC»),# Типа отчета»ReportType»:»CUSTOM_REPORT»,# Уточняем, что используем собственный временной отрезок для отчета»DateRangeType»:»CUSTOM_DATE»,# Формат получаемых данных (единственный вариант)»Format»:»TSV»,# Включать ли НДС в денежные суммы в отчете.
tapi-yandex-direct · PyPI
Написано на версии python 3. 5
Установка
pip install tapi-yandex-direct
Примеры
Примеры находятся в Ipython Notebook
Справка Api Яндекс Директ
Документация API сравочника Яндекс.Директ
from tapi_yandex_direct import YandexDirect
ACCESS_TOKEN = {ваш токен доступа}
# Обязательные параметры помечены звездочкой.
api = YandexDirect(
# *Токен доступа.
access_token=ACCESS_TOKEN,
# True включить песочницу.
# По умолчанию False
is_sandbox=False,
# Когда False не будет повторять запрос, если закончаться баллы.
# По умолчанию False
retry_if_not_enough_units=False,
# Когда True cделает несколько запросов, если кол-во идентификаторов
# в условиях фильтрации SelectionCriteria будет больше,
# чем можно запросить в одном запросе. Работает для метода "get".
# По умолчанию True
auto_request_generation=True,
# Когда True будет посылать запросы, пока не получит все объекты.
# По умолчанию True
receive_all_objects=True,
# Если вы делаете запросы из под агентского аккаунта,
# вам нужно указать логин аккаунта для которого будете делать запросы.
#login="{логин аккаунта Я.Директ}"
# Язык в котором будут возвращены данные справочников и ошибок.
# По умолчанию "ru". Доступны "en" и другие.
language="ru",
# Повторять запрос, если будут превышениы лимиты
# на кол-во отчетов или запросов.
# По умолчанию True.
retry_if_exceeded_limit=True,
# Кол-во повторов при возникновении серверных ошибок.
# По умолчанию 5 раз.
retries_if_server_error=5
)
Генерация класса YandexDirect происходит динамически, поэтому узнать о добавленных методах, можно так.
print(dir(api))
Запросы к API выполняются по протоколу HTTPS методом POST. Входные структуры данных передаются в теле запроса.
# Получить все кампании.
body = {
"method": "get",
"params": {
"SelectionCriteria": {},
"FieldNames": ["Id","Name"],
},
}
result = api.campaigns().post(data=body)
# Создать кампанию.
body = {
"method": "add",
"params": {
"Campaigns": [
{
"Name": "MyCampaignTest",
"StartDate": str(dt. datetime.now().date()),
"TextCampaign": {
"BiddingStrategy": {
"Search": {
"BiddingStrategyType": "HIGHEST_POSITION"
},
"Network": {
"BiddingStrategyType": "SERVING_OFF"
}
},
"Settings": []
}
}
]
}
}
result = api.campaigns().post(data=body)
Формат возвращаемых данных.
Данные возвращаются в формате объекта Tapi.
print(result)
print(result().status_code)
print(result().response)
print(result().response.headers)
Вернуть в формате
JSONbody = {
"method": "get",
"params": {
"SelectionCriteria": {},
"FieldNames": ["Id","Name"],
},
}
result = api.campaigns().post(data=body)
print(result().data)
[{'result': {'Campaigns': [{'Id': 338151,
'Name': 'Test API Sandbox campaign 1'}],
'LimitedBy': 1}},
{'result': {'Campaigns': [{'Id': 338152,
'Name': 'Test API Sandbox campaign 2'}],
'LimitedBy': 2}},]
# В списке может находится несколько ответов.
Преобразование ответа
Для ответов API Я.Директ есть функция преобразования transform. Она извлечет данные из словаря и соединит все ответы в один список, если запросов было несколько. Работает только запросов с методом «get».
print(result().transform())
[{'Id': 338151, 'Name': 'Test API Sandbox campaign 1'},
{'Id': 338152, 'Name': 'Test API Sandbox campaign 2'}]
Документация API отчетов Яндекс.Директ
from tapi_yandex_direct import YandexDirect
ACCESS_TOKEN = {ваш токен доступа}
# Обязательные параметры помечены звездочкой.
api = YandexDirect(
# *Токен доступа.
access_token=ACCESS_TOKEN,
# True включить песочницу.
# По умолчанию False
is_sandbox=False,
# Если вы делаете запросы из под агентского аккаунта,
# вам нужно указать логин аккаунта для которого будете делать запросы.
#login="{логин аккаунта Я.Директ}"
# Повторять запрос, если будут превышениы лимиты
# на кол-во отчетов или запросов.
# По умолчанию True.
retry_if_exceeded_limit=True,
# Кол-во повторов при возникновении серверных ошибок.
# По умолчанию 5 раз.
retries_if_server_error=5,
# Режим формирования отчета: online, offline или auto.
# По умолчанию "auto"
processing_mode='offline',
# Когда True, будет повторять запрос, пока отчет не будет готов.
# По умолчанию True
wait_report=True,
# Если заголовок указан, денежные значения в отчете возвращаются в валюте
# с точностью до двух знаков после запятой. Если не указан, денежные
# значения возвращаются в виде целых чисел — сумм в валюте,
# умноженных на 1 000 000.
# По умолчанию False
return_money_in_micros=False,
# Не выводить в отчете строку с названием отчета и диапазоном дат.
# По умолчанию True
skip_report_header=True,
# Не выводить в отчете строку с названиями полей.
# По умолчанию False
skip_column_header=False,
# Не выводить в отчете строку с количеством строк статистики.
# По умолчанию True
skip_report_summary=True,
)
body = {
"params": {
"SelectionCriteria": {},
"FieldNames": ["Date", "CampaignId", "Clicks", "Cost"],
"OrderBy": [{
"Field": "Date"
}],
"ReportName": "Actual Data",
"ReportType": "CAMPAIGN_PERFORMANCE_REPORT",
"DateRangeType": "LAST_WEEK",
"Format": "TSV",
"IncludeVAT": "YES",
"IncludeDiscount": "YES"
}
}
result = api.reports().post(data=body)
print(result().data)
'Date\tCampaignId\tClicks\tCost\n'
'2019-09-02\t338151\t12578\t9210750000\n'
# Преобразование.
print(result().transform())
[
['Date', 'CampaignId', 'Clicks', 'Cost'],
['2019-09-02', '338151', '12578', '9210750000'],
]
Фичи
Открыть документация метода
api.campaigns().open_docs()
Послать запрос в браузере.
api.campaigns().open_in_browser()
Зависимости
- requests
- tapi_wrapper
Автор
Павел Максимов
Связаться со мной можно в Телеграм и в Facebook
Удачи тебе, друг! Поставь звездочку 😉
API Яндекс.
Директа Документация
Блог: русская версия
RSS-канал
Если у вас есть вопросы, обращайтесь в службу поддержки.
Команда API Яндекс.Директа
Новый сервис AdVideos
31 января, 12:00
Сервис AdVideos добавлен в API Яндекс.Директа. Используйте его для операций с видео.
Доступные методы:
- добавить: Синхронно загружает видео по URL-ссылкам или в виде двоичных данных.
- get: возвращает статус обработки загруженных видео.
Подробнее о видеорасширениях:
- В документации API Яндекс.Директа.
- В документации Яндекс.Директа.
news,api5
Общая стратегия управления ставками будет отключена
14 января, 15:48
С 31 января общие параметры управления ставками для текстовой и графической рекламы, а также для рекламы в мобильных приложениях больше не будут поддерживаться в ручных стратегиях.
Отключенные параметры:
- MAINTAIN_NETWORK_CPC : Параметр для удержания средней цены за клик в сетях ниже средней цены за клик в результатах поиска.
- NETWORK_DEFAULT : Параметр для настройки параметров показов в рекламных сетях на основе настроек поиска.
Пожалуйста, запланируйте обновление своих приложений до конца января 2022 года.
Если у вас есть какие-либо вопросы, не стесняйтесь задавать их экспертам в службе поддержки.
news,api5
Изменения в управлении приоритетами ключевых слов и условиями таргетинга
11 декабря 2020, 14:40
Примерно через восемь рабочих недель параметр StrategyPriority перестанет поддерживаться в следующих сервисах:
- AudienceTargets — в методах add, get и setBids;
- Bids — в методах get и set;
- DynamicTextAdTargets — в методах add, get и setBids;
- KeywordBids — в методах get и set;
- Ключевые слова — в методах add и get;
- SmartAdTargets — в методах добавления, получения setBids и обновления.
Пожалуйста, запланируйте обновление своих приложений до конца января 2021 года. Мы напомним вам об этих изменениях, прежде чем они вступят в силу.
Если у вас есть вопросы, смело задавайте их специалистам службы поддержки Яндекс.Директа.
news,api5
Ограничения на оптимизацию под все цели
28 июля 2020, 16:49
В сервисе Кампании нельзя оптимизировать под все цели в стратегиях WB_MAXIMUM_CONVERSION_RATE, AVERAGE_CPA, AVERAGE_CPA. Используйте GoalId Параметр для этих стратегий для передачи идентификатора конкретной цели Яндекс.Метрики.
новости,api5
Новые стратегии в API
15 июня 2020, 20:51
В службе Кампании появились новые стратегии:
Эти стратегии будут производить конверсии по цене, указанной при настройке стратегии.
api5,news
Бизнес-профили в API Яндекс.Директа
25 марта 2020, 14:55
Поддержка бизнес-профилей из Яндекс Бизнес Справочника:
- Добавлен сервис «Бизнес» для получения бизнес-профилей рекламодателя .
- В методах сервиса «Реклама» теперь есть параметр BusinessId для текстовых и графических объявлений.
api5,news
Смарт-баннеры в API Яндекс.Директа
16 марта 2020, 17:09
Формат смарт-баннера — элегантное и удобное решение Яндекс.Директа для ретаргетинга на увеличение продаж с помощью контекстной рекламы и динамического контента. Чтобы вам было проще автоматизировать работу со смарт-баннерами, теперь вы можете управлять ими в API Яндекс.Директа.
Новые дополнения к API:
- Служба Feeds для управления файлами фидов с товарными предложениями.
- Служба SmartAdTargets для управления фильтрами таргетинга для смарт-баннеров.
- Поддержка кампаний с типом SMART_CAMPAIGN в службе Кампании.
- Поддержка групп объявлений с типом SMART_AD_GROUP в сервисе AdGroups.
- Поддержка объявлений с типом SMART_AD в сервисе Ads.
- Поддержка креативов с типом SMART_CREATIVE в сервисе креативов.
- Поддержка корректировки ставок с типом SMART_AD_ADJUSTMENT в службе BidModifiers.
Подробнее об управлении смарт-баннерами через API можно прочитать в документации.
news,api5
Таргетинг по интересам пользователей для текстовых и графических объявлений
19 декабря 2019, 15:54
Добавлен таргетинг по интересам пользователей для текстовых и графических объявлений:
- Для группы TEXT_AD_GROUP можно добавить целевая аудитория со списком ретаргетинга, который имеет тип АУДИТОРИЯ и содержит только сегменты аудитории, основанные на краткосрочных интересах.
- Ответ для метода RetargetingLists.get теперь включает параметр ForTargetsInAdGroupTypes .
Более подробную информацию можно найти в документации.
News, API5
Новый параметр MINAMUMACCOUNTDAILYBUDGE
11 ноября 2019 г., 17:53
Метод Dictionares.get возвращает новый параметр MinimumaccountdailyBudget (минимум ежедневный бюджет) в списке . .
Параметр MinimumPayment currency, ранее объединявший как минимальный платеж (без НДС), так и минимальный дневной бюджет общего счета, теперь следует использовать только для суммы минимального платежа.
api5,news
Изменения в методе Campaigns.get.
api5,news
Теги Yclid добавлены по умолчанию
25 сентября 2019, 15:18
В сервисе кампаний параметр ADD_METRICA_TAG в структуре Settings теперь имеет значение по умолчанию YES.
Это означает, что настройка теперь включена по умолчанию для новых кампаний. Рекламные ссылки автоматически добавляются с ?yclid= тег и уникальный номер клика. Убедитесь, что страницы сайта рекламодателя корректно открываются по ссылкам с этим тегом.
News, API5
Модели атрибуции, доступные в API
17 сентября 2019 г., 13:58
Новости, API5
8 SiteLinks
9 сентября 2019, 14:50
Изменения в Службе SiteLinks: теперь каждый. набор быстрых ссылок может содержать до 8 быстрых ссылок.
Максимальная общая длина текстов для быстрых ссылок 1–4 составляет 66 символов. Максимальная общая длина текстов для быстрых ссылок 5–8 — 66 символов.
news,api5
Изменены настройки стратегии для рекламных сетей
22 августа 2019, 18:13
Активны изменения в сервисе Кампании, о которых мы писали ранее:
- Убран параметр Bid06meter 9 NetworkDefault структура.
- Параметр LimitPercent в структуре NetworkDefault используется только в том случае, если для стратегии поиска установлено значение HIGHEST_POSITION.
- Параметр MAINTAIN_NETWORK_CPC в Настройки структура используется только в том случае, если для стратегии поиска установлено значение HIGHEST_POSITION, а для рекламных сетей установлено значение NETWORK_DEFAULT.
Более подробную информацию можно найти в документации.
news,api5
Обновления стратегий: ожидаемые изменения в API недавно анонсированные обновления стратегий. Изменения коснутся типов кампаний TEXT_CAMPAIGN и MOBILE_APP_CAMPAIGN.
Если у вас есть вопросы, обратитесь в службу поддержки.
news,api5
Библиотека минус-слов доступна в API Яндекс.Директа
11 июля 2019, 13:28
Добавлена поддержка наборов минус-слов в API: наборы минус-слов.
Если у вас есть вопросы, смело задавайте их специалистам службы поддержки Яндекс.Директа.
news,api5
Видеореклама в API Яндекс.Директа
24 июня 2019, 16:27
Добавлена поддержка видеорекламы в медийных кампаниях:
Подробнее об управлении медийными кампаниями читайте в API в документации.
news,api5
Изменения в сервисе RetargetingLists
3 июня 2019 г., 17:30
- Сняты ограничения на списки ретаргетинга, состоящие исключительно из правил с оператором NONE. Теперь эти списки ретаргетинга могут использовать как цели и сегменты Яндекс.Метрики, так и сегменты Яндекс.Аудитории.
- Параметр MembershipLifeSpan теперь используется только для целей Яндекс.Метрики. Для сегментов из Яндекс.Метрики и Яндекс.Аудитории методы добавления и обновления игнорируют переданное значение.
- Максимальное количество дней в MembershipLifeSpan 9Параметр 0065 увеличен до 540.
api5, новости
Скоро: 8 быстрых ссылок
28 мая 2019, 17:38
Сообщаем вам, что скоро объявления Яндекс.Директа будут включать до восьми быстрых ссылок. Новый лимит вступит в силу в июне.
Эти изменения повлияют на службу дополнительных ссылок, поэтому, если вы ее используете, подготовьте свои приложения сейчас.
Если у вас есть вопросы, обращайтесь в службу поддержки API Яндекс.Директа.
API5, новости
Турбо-страницы доступны в API Яндекс.Директа
15 мая 2019, 11:05
Активированы изменения, о которых мы писали ранее:
- Новый сервис TurboPages для получения Турбо-страниц, созданных в Конструкторе Турбо-страниц .
- Методы сервиса Ads теперь имеют параметр TurboPageId . Ответ на метод Ads.get также имеет параметр TurboPageModeration .
Параметр Href в TextImageAd , TextAdBuilderAd , CpcVideoAdBuilderAd и CpmBannerAdBuilderAd в методах Ads. update и Ads.get теперь можно обнулить.
- Методы сервиса «Дополнительные ссылки» теперь имеют параметр TurboPageId .
Параметры Href и Description теперь могут быть обнулены в методе Sitelinks.get.
Метод Sitelinks.get имеет новый входной параметр SitelinkFieldNames .
news,api5
Обратная связьВсе сервисные блоги Яндекса© 2013–2022 «Яндекс»IndexNow теперь официально совместно использует URL-адреса между Microsoft Bing и Яндекс
Search Engine Land » SEO » IndexNow официально совместно использует URL-адреса между Microsoft Bing и Яндекс
Команда Microsoft Bing заявила, что протокол IndexNow теперь находится в том месте, где участники совместно отправляют URL-адреса, а это означает, что если вы используете IndexNow для отправки URL-адресов в Microsoft Bing, Microsoft немедленно передаст эти URL-адреса Яндексу, объявила компания.
Совместное использование URL-адресов. IndexNow обещал отправить URL-адрес одной поисковой системе через этот протокол, и не только эта поисковая система немедленно обнаружит этот URL-адрес, но и будет обнаружена всеми другими участвующими поисковыми системами. Сейчас это только Microsoft Bing и Яндекс, но Google изучает использование этого протокола.
Microsoft заявила, что «протокол IndexNow гарантирует, что все URL-адреса, отправленные веб-мастерами в любую поисковую систему с поддержкой IndexNow, будут немедленно отправлены во все другие аналогичные поисковые системы. В результате совместного использования URL-адресов, отправленных поисковым системам с поддержкой IndexNow, веб-мастерам просто нужно уведомить одну конечную точку API. Это не только экономит усилия и время веб-мастеров, но также помогает поисковым системам в открытии, что делает Интернет более эффективным».
Microsoft заявила, что Bing «уже начал обмениваться URL-адресами из IndexNow с Яндексом и наоборот, а другие поисковые системы внимательно следят за созданием необходимой инфраструктуры».
Когда это впервые было запущено, участвующие поисковые системы еще не начали совместно использовать URL-адреса, но теперь они это делают.
API IndexNow. Кроме того, вам больше не нужно отправлять URL-адреса на https://www.bing.com/IndexNow?url=url-changed&key=your-key или https://yandex.com/indexnow?url=url-changed&key= твой ключ. IndexNow.org также напрямую принимает эти материалы по адресу https://api.indexnow.org/indexnow?url=url-changed&key=your-key 9.0005
Microsoft Bing обновил этот справочный документ, чтобы упростить понимание того, как настроить это по любому из упомянутых выше URL-адресов.
80 000 сайтов. Microsoft заявила, что 80 000 веб-сайтов в настоящее время используют IndexNow для отправки URL-адресов. «80 000 веб-сайтов уже начали публиковать и пожинать плоды более быстрой подачи на индексацию», — говорится в сообщении компании. В ноябре прошлого года компания заявила, что 60 000 из этих веб-сайтов используют IndexNow напрямую через Cloudflare, что добавило кнопку-переключатель для включения этой функции для веб-сайтов, использующих Cloudflare.
Кроме того, Microsoft Bing недавно выпустила плагин WordPress для IndexNow, чтобы упростить этот процесс.
Что такое IndexNow . IndexNow предоставляет владельцам веб-сайтов способ мгновенно информировать поисковые системы о последних изменениях контента на их веб-сайте. IndexNow — это простой протокол проверки связи, позволяющий поисковым системам знать, что URL-адрес и его содержимое были добавлены, обновлены или удалены, что позволяет поисковым системам быстро отражать это изменение в своих результатах поиска.
Как это работает. Протокол очень прост — все, что вам нужно сделать, это создать ключ на своем сервере, а затем опубликовать URL-адрес в поисковой системе, чтобы уведомить поисковые системы, участвующие в IndexNow, об изменении. Шаги включают:
- Сгенерируйте ключ, поддерживаемый протоколом, с помощью онлайн-инструмента для создания ключей.
- Разместите ключ в текстовом файле с именем, содержащим значение ключа в корневом каталоге вашего веб-сайта.
- Начните отправлять URL-адреса, когда ваши URL-адреса будут добавлены, обновлены или удалены.