Facebook CAPI Tester
Отправляет controlled Meta server event и показывает response body, который нужен для валидационной отладки.
Открыть инструмент >Диагностика Meta payload
Meta получает server-side событие, но отклоняет, дропает или помечает его как invalid, потому что payload, идентификаторы, consent context или deduplication fields не проходят валидацию.
Используйте этот гайд, когда сервер точно отправляет событие и Meta отвечает, но в ответе появляются validation errors, тяжелые warnings или тихие дропы, из-за которых событие не попадает в ожидаемый reporting path. Это другой сценарий, чем Facebook CAPI Not Firing, где главный вопрос — уходит ли запрос из вашего стека вообще.
Практическая задача здесь — превратить размытое отклонение в один воспроизводимый evidence pack: raw response Meta, final landing URL, browser-side proof и точные идентификаторы или поля, которые ломают валидацию. Когда эти артефакты лежат рядом, владелец payload чинит конкретный разрыв вместо спора по скриншотам.
Проблемы с отклонением Meta часто маскируются под частичный успех. API-запрос получает ответ, кто-то считает событие принятым, а позже выясняется, что Events Manager, match quality или downstream optimization так и не отражают конверсию.
Начинайте с controlled replay в Facebook CAPI Tester, затем сравните его с browser-side доказательством из Pixel Scanner, а для эскалаций держите под рукой Tracking Audit, если redirects, click IDs и payload ownership разбросаны по разным командам.
Большинство отклонений связано с качеством payload, а не с transport. Meta может получить запрос, но не доверять событию, если обязательные поля сломаны, идентификаторы не совпадают с landing-page evidence, consent state расходится, или deduplication data конфликтует с browser events.
Смотрите на инцидент как на chain-of-custody для event data. Final landing URL, browser event, captured click ID, CRM или middleware transform и outgoing server payload должны рассказывать одну и ту же историю о пользователе и конверсии.
Нужны доказательства с обеих сторон стека: что видел браузер и что именно отклонила Meta. Не начинайте с слепого редактирования кода. Сначала докажите final page, browser event, identifiers и server response для одного и того же тестового пути.
Полезная проверка заканчивается одним sample event, у которого задокументированы все слои: final URL, browser-side pixel state, click-ID capture, outbound payload и прямой response body Meta.
Повторите событие в Facebook CAPI Tester и сохраните полный response body, а не только зелёный статус.
Используйте Pixel Scanner на той же final landing page, чтобы подтвердить browser-side Meta signal и ожидаемый deduplication context.
Прогоните live URL через Redirect Checker и проверьте финальную query string в Click ID Extractor, чтобы понять, дошёл ли fbclid и другие идентификаторы до страницы.
Сопоставьте event_name, event_time, action_source, event_id, user_data и custom_data с тем, что вы только что зафиксировали на лендинге.
Если запрос вообще не выходит из вашего стека, вернитесь к Facebook CAPI Not Firing. Если landing page видит fbclid, но формы, CRM rows или middleware теряют его до сборки payload, переходите в FBCLID Not Stored in CRM.
Чините именно тот validation gap, на который указывает Meta, а затем заново прогоняйте то же controlled event, пока browser evidence, server payload и ответ Meta не начнут совпадать. Не делайте сразу три несвязанных изменения, иначе вы не поймёте, что именно вернуло acceptance.
Если отклонение вскрывает более широкую launch-quality проблему, используйте How to validate click ID capture before launch и How to validate UTM links before launch, чтобы усилить страницу до новой подачи трафика.
Эскалируйте через Tracking Audit, когда владелец сломанного поля неочевиден между media buying, CRM и backend-командами.
Почините формат event_name, event_time, action_source, event_source_url и критичных custom_data-полей, чтобы Meta получала payload в валидной форме.
Убедитесь, что fbclid, fbc, external_id, email, phone и другие identifiers захватываются один раз, преобразуются корректно и хешируются именно там, где ждёт Meta.
Генерируйте event_id последовательно и проверьте, что browser и server events используют одну deduplication-логику без переиспользования stale ID.
Удалите middleware-логику, которая отправляет blank placeholders, test values или старые schema fields, когда реального identifier нет.
Повторите тот же live landing URL, сохраните новый ответ Meta и оставьте принятый payload вместе с final redirect trace для будущего QA.
Самый быстрый workflow начинается с одного direct replay и одной browser-side проверки. Эта пара быстро показывает, проблема ли это слабого payload, слабого landing path или слабого capture layer между ними.
Не отправляйте скриншоты payload без доказательств по path. Если final landing page вообще не получила те же identifiers, Meta rejection часто оказывается только последним видимым симптомом.
Держите эти инструменты в одном runbook, чтобы reviewer мог перейти от raw API response к URL evidence без перезапуска инцидента с нуля.
Отправляет controlled Meta server event и показывает response body, который нужен для валидационной отладки.
Открыть инструмент >Подтверждает, что landing page всё ещё даёт browser-side Meta context, с которым должен совпадать server event.
Открыть инструмент >Документирует реальный path и final URL до того, как вы обвините только payload validation.
Открыть инструмент >Показывает, переживают ли fbclid и связанные identifiers путь достаточно долго, чтобы стать usable server-side fields.
Открыть инструмент >Отклонённое Meta-событие почти всегда означает проблему качества данных, а не мистику. Как только вы совмещаете ответ Meta с landing-page evidence и точным payload, путь к ремонту становится конкретным.
После фикса храните один accepted sample payload, один matching browser event и один final landing URL в launch checklist. Тогда будущая CAPI-отладка превращается в быструю сверку, а не в новый инцидент.
FAQ
Да. Успешный transport означает только то, что запрос дошёл до Meta. Сам payload всё ещё может быть invalid, weak или непригодным для attribution и deduplication.
Нет. Если landing page не получила стабильные identifiers, payload builder часто отправляет blanks или fallback-значения. Сначала проверьте path и browser evidence.
Переходите в not-firing guide, когда запрос вообще не доходит до Meta. Переходите в CRM-storage guide, когда страница видит click ID, но формы, middleware или CRM теряют его до сборки payload.