Блог · Яндекс.Директ

Файл для Яндекс.Аудиторий: формат, SHA-256 хеширование, пример CSV

Евгений Вязников - интернет-маркетолог Евгений Вязников · · #Яндекс.Директ
Файл для Яндекс.Аудиторий: CSV и SHA-256

Коротко: для сегмента «Данные CRM» нужен CSV до 1 ГБ в UTF-8 или Windows-1251. В первой строке укажите названия полей, дальше разместите по одному клиенту в строке. В каждой записи должен быть телефон или email. Телефон пишите цифрами с кодом страны, email - строчными латинскими буквами. В файле должно быть не меньше 100 записей. Если хешируете контакты, используйте SHA-256: новые MD5-хеши Яндекс не принимает с января 2025 года.

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

Каким должен быть файл для данных CRM

Экспортируйте данные в CSV. Размер файла не должен превышать 1 ГБ, кодировка - UTF-8 или Windows-1251. Первая строка содержит названия полей через запятую, каждая следующая строка описывает одного клиента. Минимум для загрузки - 100 записей.

Для CRM-сегмента обязательны не все столбцы, но в каждой строке нужен хотя бы один идентификатор: phone или email. Можно добавить external_id, чтобы сопоставить строку с карточкой клиента в своей CRM. Дополнительные поля допустимы, но не заменяют телефон или email.

Как нормализовать телефон и email

  • Телефон: только цифры, с кодом страны, без пробелов, скобок, плюса и дефисов. Например, 79995551111, а не 7 (999) 555-11-11.
  • Email: латиница, символ @, домен и только нижний регистр. Например, mail@yandex.ru, а не Mail@yandex.ru.
  • Не удаляйте строку, если в ней нет одного из двух полей: достаточно корректного телефона или email.

Пример CSV без хеширования

Это тестовые, выдуманные данные. Они показывают структуру файла, но двух строк недостаточно для загрузки: перед загрузкой добавьте не меньше 100 записей.

external_id,phone,email
crm-test-001,79995551111,anna.test@example.invalid
crm-test-002,79001234567,boris.test@example.invalid

Сохраните файл именно как CSV, не как XLSX. После экспорта откройте его в текстовом редакторе и проверьте: заголовки и значения разделены запятыми, телефон не превратился в научную запись, email не получил заглавные буквы. Русскоязычный Excel при сохранении CSV часто ставит разделителем точку с запятой (;): убедитесь, что в файле стоит именно запятая (,), при необходимости замените разделитель через поиск.

Дальше: в канале

Что запускаю, что получается, что сливаю

Причёсанные кейсы дозревают здесь, на сайте. А в канале работа идёт в моменте: цифры в тот же день, честные провалы, приколы из практики и шаблоны, которые я делаю себе и отдаю бесплатно.

Телеграм-канал Евгения Вязникова

Телеграм

Черновики кампаний и цифры в тот же день.

Подписаться в Телеграм
Канал Евгения Вязникова в МАКС

МАКС

Всё то же самое, если удобнее в МАКС.

Подписаться в МАКС

Как сделать SHA-256 для файла

Хешировать нужно уже нормализованное значение. Сначала получите 79995551111, затем хешируйте именно эту строку без перевода строки, пробелов и кавычек. Для этого тестового телефона SHA-256 равен 22846ab8f79870871eb44f653419a4a5069301827d8ae75b6c2a88e4989a364e.

В режиме «Данные CRM» заголовки остаются phone и email. При создании сегмента включите «Хешированные данные» и выберите SHA-256. Не добавляйте к этим заголовкам _SHA256: такой суффикс справка Яндекса указывает для универсального сегмента и ID мобильных устройств, а не для CRM-режима.

external_id,phone,email
crm-test-001,22846ab8f79870871eb44f653419a4a5069301827d8ae75b6c2a88e4989a364e,13cf0c4489d7f7b2e14cad2122c44f239cafc0024bbe1b1f7c1318d2ec6b24a1
crm-test-002,da3cc66efc5e1894feb632d7dc0d2426e15465775b88be1635a0cad3b8884415,21abf4aa04a871f1c471e6a79afab8922370af69b77aaba8b70ee8262a8457c2

Google Таблицы: формула после добавления своей функции

В Google Таблицах нет штатной формулы SHA-256. Один раз откройте «Расширения - Apps Script», вставьте функцию и сохраните проект. Затем в ячейке рядом с нормализованным значением из A2 используйте формулу =ЕСЛИ(A2="";"";SHA256(A2)): она не передаст в функцию пустую ячейку.

function SHA256(value) {
  if (!value || String(value).trim() === '') return '';
  const bytes = Utilities.computeDigest(
    Utilities.DigestAlgorithm.SHA_256,
    String(value).trim(),
    Utilities.Charset.UTF_8
  );
  return bytes.map(b => ('0' + (b & 0xff).toString(16)).slice(-2)).join('');
}

Проверьте результат на тестовом значении 79995551111: формула должна вернуть хеш из примера выше. Функция не хеширует пустые ячейки и удаляет пробелы по краям значения; передавать неочищенный телефон не нужно.

Excel: не выдумывайте несуществующую штатную формулу

У обычной формулы Excel нет встроенной функции SHA-256. Формула вида =SHA256(A2) сработает только если её добавил ваш VBA-надстройка или корпоративный шаблон. Если такой функции нет, безопаснее выгрузить нормализованный CSV и применить проверяемый скрипт ниже, чем получить не тот алгоритм из случайной надстройки.

Python: хешируем CSV построчно

import csv
import hashlib

def sha256(value):
    return hashlib.sha256(value.encode('utf-8')).hexdigest()

with open('crm.csv', encoding='utf-8', newline='') as source, \
     open('crm-sha256.csv', 'w', encoding='utf-8', newline='') as target:
    reader = csv.DictReader(source)
    fields = reader.fieldnames
    writer = csv.DictWriter(target, fieldnames=fields)
    writer.writeheader()
    for row in reader:
        for field in ('phone', 'email'):
            if row.get(field) and row[field].strip():
                row[field] = sha256(row[field].strip())
        writer.writerow(row)

Скрипт предполагает, что crm.csv уже содержит нормализованные телефон и email. Он удаляет пробелы по краям значения и не хеширует строку из одних пробелов, но не исправляет регистр или формат телефона. Если исходный файл CRM сохранён в кодировке Windows-1251, укажите при чтении encoding='cp1251' вместо utf-8.

Командная строка: проверить одно значение

printf '%s' '79995551111' | sha256sum

На macOS вместо sha256sum используйте printf '%s' '79995551111' | shasum -a 256. Важно использовать printf, а не обычный echo: перевод строки меняет хеш. Команда выводит 22846ab8f79870871eb44f653419a4a5069301827d8ae75b6c2a88e4989a364e.

Проверка перед загрузкой

  1. Файл имеет расширение CSV, размер не больше 1 ГБ, кодировка UTF-8 или Windows-1251.
  2. Первая строка содержит заголовки, между полями стоят запятые.
  3. После удаления дублей и пустых строк осталось не меньше 100 записей.
  4. В каждой записи есть корректный phone или email.
  5. Если данные хешированы, это SHA-256, а при создании CRM-сегмента включён режим «Хешированные данные».

Если файл не проходит эти пять пунктов, не загружайте его «на проверку»: сначала исправьте экспорт. После подготовки файла переходите к общей инструкции о CRM-сегменте и его использовании.

Частые вопросы

Какой формат файла нужен для данных CRM в Яндекс.Аудиториях?

CSV размером до 1 ГБ в кодировке UTF-8 или Windows-1251. В первой строке указывают названия полей, затем размещают по одной записи в строке. Минимум для файла - 100 записей.

Как правильно записать телефон и email?

Телефон пишут цифрами с кодом страны, без пробелов и других символов: 79995551111. Email пишут латиницей, с символом @ и доменом, только строчными буквами: mail@yandex.ru.

Нужно ли добавлять _SHA256 к колонкам CRM-файла?

Нет, не для режима «Данные CRM». Если значения хешированы, при создании сегмента включают «Хешированные данные» и выбирают SHA-256. Суффикс _SHA256 справка указывает для универсального сегмента и ID мобильных устройств.

Можно ли использовать MD5?

Нет. С января 2025 года загрузка новых MD5-хешей не поддерживается. Для хешированных данных используйте SHA-256.

Можно загрузить только email без телефона?

Да. В каждой записи CRM должен быть хотя бы один из двух идентификаторов: phone или email. Оба поля в одной строке не обязательны.

Читайте ещё в блоге

ЯНДЕКС.ДИРЕКТ Иллюстрация к кейсу: снижение цены подписки в Яндекс Директе для приложения ходьбы Кейс Директа: цена подписки в телеграм-бот минус 65% за шесть недель, работа с ИИ Я давно заметил: в настройке рекламы проблема почти никогда там, где её […] Открыть дело → ЯНДЕКС.ДИРЕКТ Как сделать рекламу: с чего начать и сколько это стоит Как сделать рекламу: с чего начать и сколько это стоит Привет! Я Евгений Вязников, эксперт по performance-маркетингу - в маркетинге с 2017 Открыть дело → ЯНДЕКС.ДИРЕКТ Контекстная реклама: как работает и сколько стоит Контекстная реклама: как работает и сколько стоит Контекстная реклама - формат продвижения в интернете, при котором коммерческие объяв Открыть дело → ЯНДЕКС.ДИРЕКТ Директ: что это и как запустить рекламу Что такое Яндекс Директ и как он работает Что такое Яндекс Директ, как работают поиск, РСЯ и ЕПК, аукцион и запуск первой камп Открыть дело → ЯНДЕКС.ДИРЕКТ Медийная реклама: баннеры, охваты и когда не нужна Медийная реклама: баннеры, охваты и когда не нужна Клиент звонит: «Клип залетел, просмотры полетели, заявок ноль». Открываю статистику: Открыть дело → ЯНДЕКС.ДИРЕКТ Гео-реклама: показ по региону без слива Гео-реклама: показ по региону без слива Запустил объявления «на весь город», заявки посыпались из районов, куда бизнес физич Открыть дело → ЯНДЕКС.ДИРЕКТ РСЯ или поиск: чем отличается реклама в Директе РСЯ или поиск: чем отличается реклама в Директе Сколько раз ни настраивал деление бюджета между РСЯ и поиском, каждый раз […] Открыть дело → ЯНДЕКС.ДИРЕКТ Яндекс.Аудитории: как собрать сегмент под рекламу Яндекс.Аудитории: как собрать сегмент под рекламу Яндекс.Аудитории нужны не вместо Директа, а для ответа на простой вопрос: кому [&hel Открыть дело →
Дальше: в канале

Что запускаю, что получается, что сливаю

Причёсанные кейсы дозревают здесь, на сайте. А в канале работа идёт в моменте: цифры в тот же день, честные провалы, приколы из практики и шаблоны, которые я делаю себе и отдаю бесплатно.

Телеграм-канал Евгения Вязникова

Телеграм

Черновики кампаний и цифры в тот же день.

Подписаться в Телеграм
Канал Евгения Вязникова в МАКС

МАКС

Всё то же самое, если удобнее в МАКС.

Подписаться в МАКС
Следующий шаг

Это причёсанная версия. Черновики: в канале

Статья дозревала неделями. В канале всё в моменте: запускаю, показываю, сливаю, тоже показываю. С цифрами и приколами.

Подарок

Где вам удобнее получить материал?

«130 методов привлечения клиентов из интернета»: выберите канал, пришлём туда.

Подписаться на рассылку

Дайджесты, кейсы и советы по рекламе: раз в месяц.

Вы подписаны!

Ближайший дайджест придёт на

В моменте

Показываю работу, пока она горячая

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

Телеграм МАКС
Подписка

Куда вам удобнее?

В обоих одно и то же: работа в моменте, цифры в тот же день, приколы и бесплатные шаблоны.

Дело не в трафике. Вязников

Реклама. Нейросети. Цифры.

Показываю эксперименты, живые проекты: ошибки, результаты. Подписывайтесь, где удобнее.