Как улучшить Event Match Quality (EMQ) в Facebook
Что такое Event Match Quality и почему он важен
Meta сравнивает хешированные идентификаторы из вашего события со своей базой аккаунтов. Если в payload только размытая комбинация (например, страна и пол), событие помечается как несопоставленное. Такие конверсии не участвуют в атрибуции, и рекламный кабинет показывает меньше результатов, чем произошло на самом деле.
Балл отображается для каждого события в Events Manager на вкладке качества датасета. Сейчас метрика применяется только к веб-событиям.
Низкий EMQ напрямую увеличивает стоимость результата: алгоритм доставки получает слабый оптимизационный сигнал. Байеры, поднявшие EMQ с 4 до 8+, регулярно фиксируют снижение CPA на 10-20% при том же бюджете.
О том, зачем серверные события дополняют браузерный пиксель, читайте в статье серверный трекинг против браузерного пикселя.
Какие параметры клиента влияют на EMQ
Meta оценивает события по количеству и качеству идентификаторов в объекте user_data. Официальная иерархия из документации по параметрам клиента:
| Параметр | Ключ | Хеширование | Правило нормализации |
|---|---|---|---|
em | SHA-256 | Обрезать пробелы, нижний регистр | |
| Телефон | ph | SHA-256 | Только цифры, с кодом страны, без ведущих нулей |
| Имя | fn | SHA-256 | Нижний регистр, без пунктуации |
| Фамилия | ln | SHA-256 | Нижний регистр, без пунктуации |
| Город | ct | SHA-256 | Нижний регистр, без пунктуации |
| Штат | st | SHA-256 | 2-буквенный код ANSI, нижний регистр |
| Индекс | zp | SHA-256 | Нижний регистр, без пробелов и дефисов (5 цифр для США) |
| Страна | country | SHA-256 | 2-буквенный код ISO, нижний регистр |
| External ID | external_id | SHA-256 рекомендуется | Любой уникальный ID рекламодателя |
| Click ID | fbc | Не хешировать | Значение куки fb.1.{timestamp}.{fbclid} |
| Browser ID | fbp | Не хешировать | Значение куки fb.1.{timestamp}.{random} |
| IP-адрес | client_ip_address | Не хешировать | Валидный IPv4 или IPv6 |
| User-agent | client_user_agent | Не хешировать | Полная строка UA браузера |
События, где есть только гео и пол, считаются невалидными и получают балл около нуля. Стремитесь отправлять минимум email или телефон плюс два дополнительных идентификатора в каждом событии.
Отправка client_ip_address и client_user_agent существенно повышает процент сопоставлений, даже когда остальные идентификаторы отсутствуют.
Как проверить свой показатель EMQ
В Events Manager
Перейдите в Events Manager, выберите нужный источник данных и откройте вкладку обзора или качества. Для каждого события отображается композитный балл EMQ из 10 и разбивка по идентификаторам.
Через Dataset Quality API
Официальный Dataset Quality API возвращает баллы программно:
curl -G \
graph.facebook.com/v25.0/{dataset_id} \
-d "fields=web{event_name,event_match_quality}" \
-d "access_token={access_token}"В ответе приходит composite_score и match_key_feedback с процентом покрытия по каждому типу идентификатора. Подключите этот запрос в cron-скрипт, чтобы получать алерт при падении балла ниже порога.
Если вы только начинаете отправлять серверные события, сначала пройдите гайд по настройке Conversions API.
Пошаговые исправления при низком EMQ
1. Исправьте нормализацию перед хешированием
Самая частая причина низкого EMQ - хеширование грязных данных. Лишний пробел или заглавная буква дают совершенно другой хеш.
import hashlib
def hash_email(raw: str) -> str:
return hashlib.sha256(raw.strip().lower().encode("utf-8")).hexdigest()
def hash_phone(raw: str) -> str:
digits = "".join(c for c in raw if c.isdigit())
digits = digits.lstrip("0")
return hashlib.sha256(digits.encode("utf-8")).hexdigest()2. Добавьте недостающие идентификаторы
Проведите аудит payload. Если отправляется только email, добавьте телефон, имя и локацию. Каждый дополнительный совпавший ключ поднимает композитный балл.
3. Передавайте куки клика и браузера
Куки fbc и fbp связывают серверное событие с конкретной браузерной сессией. Без них Meta теряет связь между кликом по рекламе и конверсией. Читайте значения кук на сервере из заголовков запроса или сохраняйте их в first-party куку на лендинге.
4. Всегда включайте IP и user-agent
Эти два поля не хешируются и не требуют нормализации. Пересылайте их из входящего HTTP-запроса. Только они способны поднять матч на несколько пунктов.
5. Настройте дедупликацию
Если вы отправляете одно событие и пикселем, и CAPI, передавайте общий event_id, чтобы Meta дедуплицировала, а не задваивала конверсии. Точная схема описана в статье дедупликация событий пикселя и CAPI.
Частые ошибки, которые обрушивают показатель
| Ошибка | Симптом | Исправление |
|---|---|---|
| Верхний регистр или пробелы в email перед хешем | EMQ держится на 3-4 | Обрезать и привести к нижнему регистру перед SHA-256 |
| Телефон без кода страны | Только частичные матчи | Добавить код страны, убрать ведущие нули |
| Отправляются только страна и пол | Событие помечено невалидным | Добавить email или телефон плюс имя |
| Нет fbc/fbp | Связка клик-конверсия разорвана | Читать куки на сервере при каждом запросе |
| Нет IP и user-agent | Матч ниже, чем у конкурентов | Пересылать из заголовков HTTP-запроса |
Если вы ведёте несколько рекламных кабинетов или пиксельных направлений вручную, Pixel Activator позволяет активировать и аудировать события пикселя без кода. Для команд, которым нужна автоматическая маршрутизация между трекерами и платформами, MOST берёт на себя нормализацию, хеширование и дедупликацию в одном пайплайне.
Frequently asked questions
Для оптимизации по ценности покупки см. оптимизацию по ценности с purchase value.
