Email-адреса назначения в Adapty Mail

Каждой кампании нужно куда-то отправлять получателей. Это место называется email-адресом назначения — сохранённое имя, URL и тип, которые настраиваются один раз и используются повторно в разных кампаниях.

Кампания указывает ровно на один адрес назначения, и каждый кликабельный элемент её писем ведёт туда же: кнопка CTA, логотип и главное изображение. В аналитике они фиксируются отдельно, но адрес у них общий.

Типы назначений

Тип назначения определяется целью вашей кампании. После создания кампании изменить тип назначения невозможно.

ТипСовместимые кампанииКуда переходит получательОткуда берётся URL
Web PaywallЛюбая маркетинговая кампания и двойное подтверждениеСтраница оформления покупки в браузере, где платежи проходят через веб, а не через App Store или Google Play.Генерируется Adapty Mail или вставляется из пейвола, который вы размещаете самостоятельно. Настройка описана в Set up checkout.
Deep LinkАктивация приложенияВаше приложение на выбранном экране. Если приложение не установлено — страница вашего приложения в сторе.Вставляется из вашего провайдера диплинков — OneLink, Branch или Firebase.
Cancellation PageКампания страницы отменыВаша страница аккаунта или портал платёжного провайдера, где подписчик может просмотреть, изменить или отменить подписку.Вставляется с вашего сайта или от вашего платёжного провайдера.
Note

Любой целевой URL действителен, если он использует HTTPS. Поэтому Cancellation Page может быть универсальной ссылкой, открывающей ваше приложение, а не только веб-страницей. Это важно, потому что подписки в App Store и Google Play отменяются в сторе, а не на странице, которую вы размещаете.

Назначения для транзакционных кампаний

В Adapty Mail есть три транзакционные кампании:

  • Double opt-in — срабатывает, когда новый профиль поступает из вашей точки входа. Кнопка в письме открывает страницу подтверждения Adapty Mail. После подтверждения пользователь переходит на ваш веб-пейвол — именно поэтому для этой кампании он необходим.
  • App activation — следует за покупкой и помогает покупателю войти в приложение.
  • Cancellation page — следует за покупкой и предоставляет покупателю доступ к управлению подпиской.

Когда вы создаёте кампанию, пустой выпадающий список Email Destination означает, что у вас ещё нет назначений такого типа. Ссылка Create открывает нужную форму.

Создайте получателя

  1. Перейдите в Email Destinations и выберите тип, нужный для вашей кампании.
  2. Нажмите Create.
  3. Задайте Name получателю — вы будете выбирать его по этому имени при привязке к кампании.
  4. Заполните поле URL. Адрес должен использовать HTTPS.
  5. Добавьте плейсхолдеры для значений, которые отличаются у каждого получателя.
  6. Если URL использует плейсхолдер {response.<key>}, добавьте Hook URL в разделе Advanced.
  7. Нажмите Save.

Настройки назначения становятся доступны только для чтения, когда вы добавляете его в кампанию — даже в черновую. Чтобы отправить кампанию в другое место, создайте второе назначение.

Плейсхолдеры

Плейсхолдеры персонализируют URL назначения для каждого пользователя. Без них страница не сможет определить, кто на неё перешёл. Adapty Mail заменяет плейсхолдеры значениями, уникальными для каждого получателя.

ПлейсхолдерЧто подставляется
{email}Адрес электронной почты получателя.
{adapty.external_profile_id}ID профиля, для данных из интеграции Adapty.
{funnelfox.external_profile_id}ID профиля, для данных из FunnelFox.
{custom.external_profile_id}ID пользователя, который вы передали, для данных из Adapty Mail API.
{scheduled_email_id}ID письма, содержавшего ссылку.
{custom_attribute.<key>}Любой пользовательский атрибут профиля получателя. Ключ задаёте вы сами — {custom_attribute.plan}.
{response.<key>}Значение, которое возвращает ваш эндпоинт в момент клика. Подробнее в разделе Хуки.
  • Плейсхолдер, для которого у получателя нет значения, возвращает пустую строку — так что буквальный текст не попадёт на страницу.
  • Значения пользовательских атрибутов и хуков кодируются в percent-encoding, поэтому значение, содержащее &, не разорвёт URL пополам.
  • Плейсхолдер, который Adapty Mail не распознаёт, блокирует сохранение — при этом в ошибке указывается и что именно было отклонено, и что допустимо. Опечатка вроде {emial} будет поймана здесь, а не в браузере получателя.

Хуки

Плейсхолдер {response.<key>} резервирует место для значения, которое приходит с вашего собственного эндпоинта. Типичные сценарии использования: one-time токен входа или подпись сессии. Чтобы задействовать этот плейсхолдер, создайте новый Hook URL в разделе Advanced — иначе URL не сохранится.

Как это работает:

  1. Получатель нажимает на ссылку в письме.
  2. Adapty Mail отправляет GET-запрос на ваш Hook URL с подставленными плейсхолдерами для этого получателя. Ожидание — пять секунд, одна попытка.
  3. Ваш эндпоинт проверяет подпись и возвращает плоский JSON-объект.
  4. Adapty Mail подставляет каждый {response.<key>} из ключа с тем же именем. Ключ, который вы не вернули, остаётся плейсхолдером.
  5. Получатель попадает на вашу страницу — независимо от того, ответил ли хук.

Запрос

URL хука передаёт остальные плейсхолдеры на ваш эндпоинт. Используйте их для идентификации пользователя. Два заголовка аутентифицируют запрос:

ЗаголовокЗначение
X-Adapty-Mail-TimestampUnix-время в секундах — момент отправки запроса.
X-Adapty-Mail-SignatureHex HMAC-SHA256 от <timestamp>.<url>, подписанный Secret key из Settings > Project.

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

expected = hmac_sha256(
    key=project_secret_key,
    message=f"{timestamp}.{full_request_url}",
).hexdigest()

Ответ

Плоский JSON-объект. Каждый ключ заполняет {response.<key>} с тем же именем:

{ "checkout_token": "ct_9f2a…", "plan": "annual" }

Строки, числа и булевы значения преобразуются в строки. Вложенные объекты и массивы игнорируются, так как URL не имеет места для их размещения.

Что происходит после клика

Adapty Mail подставляет значения, вызывает хук (если он есть), фиксирует клик и отправляет получателя на вашу страницу.

Ваша задача — идентифицировать посетителя, принять оплату и сообщить о покупке в Adapty. Подробнее о настройке пейвола — в разделе Настройка чекаута, а об атрибуции покупок — в разделе Аналитика кампаний.