Скрипт на автоматическое создание геоточек (окружностей) в Яндекс Аудиториях

Скрипт на автоматическое создание геоточек (окружностей) в Яндекс Аудиториях

Всем привет! Сегодня хотелось бы поделиться скриптом, который позволяет с помощью API создавать большое количество сегментов, основанных на географии.

Когда это может пригодиться? Когда нужно создать большое количество сегментов, например, для 100 тысяч точек. Из недавних кейсов: нужно было собрать список всех детских школ, развивающих кружков, детских секций и так далее — цель охватить по максимуму аудиторию родителей.

Я прекрасно понимаю, что сегменты работают криво, рисуют несуществующий охват, но я обычно запускаю все на ОЗК стратегии, поэтому я в любом случае охватываю нужную аудиторию.

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

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

Что нужно для скрипта:

1. Широта и долгота нужных вам точек. Формат широта,долгота. Это не реклама, но базы я беру тут.

2. Определить настройки по которым вы будете создавать сегменты:

  • Окружности или полигоны
  • Радиус
  • Аудитория: регулярно посещает/живет/работает, находится сейчас, находится, была N дней за неделю/месяц/3 месяца

3. Скачать мой скрипт.

5. Задать соответствующие настройки, которые мы рассмотрим ниже.

Сам скрипт

Сам скрипт состоит из следующих файлов:

  • locations.txt — список географии для добавления в формате: широта, долгота.
  • script.py — сам исполнительный файл

Касаемо запуска все просто:

1. Сначала заполняем файлик с locations.txt, где искать базы указал выше

2. Далее открываем скрипт и меняем настройки.

Сначала заполняем токен, который получили ранее: TOKEN = ""

Потом указываем нейминг в блоке: base_name = "GeoSegment_sanatorii_rf", следующие сегменты будут создаваться с префиксами _1, _2, _3 и так далее.

Настройки геосегмента находятся в блоке: payload (на всякий пользуйтесь справкой).

Ниже пару примеров по которым вы сможете сформировать любую аудиторию. Пользуйтесь справкой по API и все встанет на свои места.

Геоточка: 500 м, регулярно на бывает:

payload = {
"segment": {
"name": segment_name, # Имя сегмента (переменная segment_name)
"geo_segment_type": "regular", # Тип геосегмента, здесь "регулярно посещает" - можно менять на home - живет или work - работает, last - сейчас находится.
"radius": 500, # Радиус геозоны, в метрах, до 10 000
"points": points, # Список точек (массив с координатами: lat, lon)
"times_quantity": 1,
"period_length": 1
}
}

Сейчас находится:

payload = {
"segment": {
"name": segment_name, # Имя сегмента (переменная segment_name)
"geo_segment_type": "last"
"radius": 500, # Радиус геозоны, в метрах, до 10 000
"points": points, # Список точек (массив с координатами: lat, lon)
"times_quantity": 1,
"period_length": 1
}
}

Были 3 дня за последний месяц.

payload = {
"segment": {
"name": segment_name,
"geo_segment_type": "condition",
"radius": 500,
"points": points,
"times_quantity": 3, # Указываем количество дней сколько раз он посетил
"period_length": 30, # Период — 1 месяц, нужно указать именно количество дней, доступно от 1 до 90 (в интерфейсе сможете создать только от 7 дней)
}
}
Далее запускаем скрипт, смотрим на консоль, если все ок, то увидите примерно такой текст.

Скрипт на автоматическое создание геоточек (окружностей) в Яндекс Аудиториях
Скрипт на автоматическое создание геоточек (окружностей) в Яндекс Аудиториях

P. S.: маленький совет — протестируйте на небольшом количестве данных, прежде чем выкатывать на полную.

На этом всё, теперь вам не нужно создавать вручную по 100 и более сегментов, всё создается автоматически.

Ставьте лайки, делитесь, подписывайтесь на блог. Удачи!

5
Начать дискуссию