> For the complete documentation index, see [llms.txt](https://docs.graspil.com/ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.graspil.com/ru/cases/case-facebook.md).

# Кейс: передача конверсий в Facebook (Meta Conversions API)

Эта инструкция показывает весь путь целиком — от подключения бота/канала до автоматической отправки серверных конверсий в рекламный кабинет Meta, без участия программиста.

{% hint style="info" %}
**Что в итоге получится:** пользователь переходит по вашей рекламной ссылке → попадает в бота или канал → совершает нужное вам действие (вступление, запуск бота, оплата и т.д.) → graspil автоматически отправляет данные об этом в Meta Conversions API (CAPI), минуя браузерный пиксель. Facebook сопоставляет событие с конкретным кликом по рекламе и учитывает его в статистике и оптимизации кампаний.
{% endhint %}

{% hint style="info" %}
Если что-то непонятно по ходу настройки — откройте чат со встроенным AI-ассистентом в личном кабинете и опишите задачу своими словами, он подскажет конкретные шаги под вашу ситуацию.
{% endhint %}

{% hint style="warning" %}
Conversions API — это серверная отправка конверсий, которая работает надёжнее браузерного пикселя (не зависит от блокировщиков рекламы и ITP), но для сопоставления события с рекламным кликом ей всё равно нужны идентификаторы браузера — `fbp`/`fbc`. Их можно получить только через лендинг с показом страницы-посредника (см. Шаг 2).
{% endhint %}

***

## Шаг 1. Подключаем бота или канал

Чтобы graspil видел действия ваших пользователей, сначала нужно подключить ресурс — бота или Telegram-канал.

* Подробная инструкция по подключению бота — [«Подключение бота»](/ru/connect-bot.md). Есть три способа: авто-настройка по токену, проксирование или подключение через API — выберите любой удобный.
* Подробная инструкция по подключению канала — [«Подключение каналов»](/ru/connecting-channels.md).

{% hint style="info" %}
Можно подключить и бота, и канал одновременно — например, чтобы видеть всю цепочку «вступил в канал → запустил бота».
{% endhint %}

## Шаг 2. Настраиваем лендинг tlin

Лендинг tlin.cc — это короткая ссылка, которую вы ставите в рекламу вместо прямой ссылки на бота/канал. Она переносит UTM-метки из рекламы и (это важно для нашего кейса) собирает браузерные идентификаторы Meta — `fbp` (идентификатор браузера) и `fbc` (идентификатор клика по рекламе, из параметра `fbclid`), — которые нужны, чтобы Facebook мог сопоставить серверную конверсию с конкретным показом/кликом рекламы.

Полная инструкция по созданию и настройке лендинга — [«Лендинги (переадресация tlin.cc)»](/ru/app/landings.md). Коротко, что нужно сделать:

1. Создать лендинг на нужный бот/канал.
2. В разделе настроек лендинга «Аналитика и скрипты» указать **ID пикселя Facebook** — тот же Pixel ID/Dataset ID, что и в Шаге 3.
3. Использовать ссылку на этот лендинг (`tlin.cc/ваш-адрес`) в рекламе вместо прямой ссылки на бота/канал.

{% hint style="warning" %}
Лендинг здесь обязателен, и именно страница-посредник должна быть включена (а не мгновенный редирект) — только на ней tlin успевает инициализировать пиксель и получить `fbp`/`fbc` перед переходом в Telegram. Вставлять код пикселя Facebook отдельно на сайт не нужно — tlin делает это сам по указанному ID. Лендинги — платная функция.
{% endhint %}

## Шаг 3. Прокидываем идентификаторы в поля пользователя

Идентификаторы `fbp` и `fbc` приходят в стартовом параметре диплинка бота вместе с остальными UTM-метками. Чтобы дальше обращаться к ним в автоматизации как к переменным, замаппьте их в кастомные поля пользователя:

1. Откройте страницу бота → раздел **«UTM-метки»** (правила обработки start) — подробности в [«Настройке обработки параметра start»](/ru/app/start-utm.md). Сопоставление параметров работает только в режиме, где строка start разбирается на параметры, а не в упрощённом.
2. Заранее создайте кастомные поля пользователя (например, `fbp` и `fbc`) в разделе [«Кастомные поля»](/ru/app/custom-fields.md), если их ещё нет.
3. В блоке **«Параметры в кастомные поля»** добавьте маршруты: параметр `fbp` → поле `fbp`, параметр `fbc` → поле `fbc`.

После этого идентификаторы будут доступны в шаблонах автоматизации как `{{ user.addition_fields.fbp }}` и `{{ user.addition_fields.fbc }}` — это как раз значения по умолчанию, которые подставляет конструктор автоматизаций.

## Шаг 4. Подключаем интеграцию с Facebook (Meta)

1. Перейдите в раздел **«Интеграции»** в личном кабинете.
2. Найдите карточку **Facebook (Meta) Conversions API** в списке доступных интеграций и нажмите **«Настроить»**.
3. Выберите один из двух способов подключения:
   * **Токен из Events Manager (быстрее)** — в Meta Events Manager откройте нужный датасет/пиксель → «Настройки» → раздел Conversions API → «Создать токен доступа». Вставьте в graspil **ID датасета (пикселя)** и полученный **токен доступа**. Такой токен выпущен на системного пользователя и не истекает.
   * **Вход через Facebook (OAuth)** — нажмите **«Войти через Facebook»**, авторизуйтесь и разрешите доступ (нужны права `ads_management` и `business_management`). graspil сам найдёт доступные датасеты — останется выбрать нужный из списка.
4. При необходимости укажите **код тестовых событий** — тогда события будут попадать во вкладку Meta «Тестирование событий» и не будут учитываться в статистике, пока вы проверяете настройку. После проверки поле нужно очистить.
5. Нажмите **«Сохранить»**, затем кнопкой **«Проверить связь»** убедитесь, что интеграция действительно может обращаться к датасету.

## Шаг 5. Создаём автоматизацию

Готового шаблона для Facebook в каталоге автоматизаций пока нет — схему нужно собрать вручную, это делается в разделе **«Автоматизации»** ([подробная документация](/ru/app/automations.md)).

1. Откройте **«Автоматизации»** → **«Создать автоматизацию»**, выберите бота/канал.
2. Откройте конструктор и добавьте **триггер** «По событию». По умолчанию для такого кейса логично выбрать:

   * `new_user` — пользователь запустил бота, или
   * `user_chat_new` — пользователь вступил в канал.

   Но можно выбрать **любое другое событие** — оплату (`successful_payment`), переход в мини-приложение, нажатие кнопки или ваше собственное событие. Полный список — в [«Списке событий»](/ru/app/reports/events.md).
3. Добавьте блок действия **«Интеграции»**, выберите тип **«Facebook (Meta) Conversions API»** и заполните:
   * **Интеграция** — та, что вы подключили в Шаге 4.
   * **Название события** — стандартное событие Meta (`Lead`, `Purchase`, `CompleteRegistration` и т.д.) или своё название.
   * **Источник события (action\_source)** — обычно `website`, если пользователь пришёл с лендинга; для событий внутри переписки можно указать `chat`.
   * **URL источника** — обязателен для `action_source = website`; например `{{ user.addition_fields.fb_source_url }}` (это поле также собирается лендингом вместе с `fbp`/`fbc`, аналогично Шагу 3).
   * **Идентификаторы пользователя (user\_data)** — нужен хотя бы один. Технические идентификаторы (`fbp`, `fbc`) передаются как есть; персональные данные (email, телефон, имя и т.д.) передавайте в исходном виде — graspil хеширует их сам перед отправкой.
   * **Пропускать, если идентификаторов нет** — включите, если хотите, чтобы органические пользователи без `fbp`/`fbc` просто пропускали этот шаг, а не роняли сценарий с ошибкой.
   * Дополнительно можно включить передачу **суммы и валюты**, произвольных параметров `custom_data`, `event_id` для дедупликации с браузерным пикселем и другие поля.
4. Соедините триггер и действие стрелкой, нажмите **«Запустить тест»**, чтобы проверить схему, и опубликуйте автоматизацию.

С этого момента, при каждом наступлении выбранного события, данные будут автоматически отправляться в Meta Conversions API — без вашего участия.

{% hint style="info" %}
Meta отвечает `200 OK` с `events_received`, даже если позже отбросит событие из-за низкого качества совпадения (например, устаревший `fbc`). Это означает «событие принято», а не «конверсия обязательно засчитана» — реальную атрибуцию смотрите в Events Manager.
{% endhint %}

***

## Любое событие и сквозная аналитика

По умолчанию проще всего настроить отправку по событию вступления в канал или запуска бота — это покрывает базовый случай «реклама → подписка». Но событие для триггера можно выбрать абсолютно любое — оплату, заполнение формы, любое пользовательское событие из вашей системы.

Также можно построить **сквозную цепочку** из нескольких шагов, например:

> Вступление в канал → запуск бота → совершение покупки (конверсия) → отправка события `Purchase` в Meta с суммой и валютой платежа

Для этого используются блоки **«Условие»** и **«Ожидание события»** внутри одной автоматизации (например, дождаться оплаты после запуска бота, не дольше определённого времени) — подробнее об этих блоках в разделе [«Автоматизации»](/ru/app/automations.md). Так Meta получит конверсию только тогда, когда пользователь прошёл всю цепочку до конца, а не просто на первом шаге.

***

## Нужна помощь с настройкой?

Если что-то не получается или остались вопросы — обратитесь в поддержку graspil, мы поможем настроить передачу конверсий в Facebook (Meta) под вашу ситуацию.
