Как добавить AMP for Email интерактивные элементы в письмо?
Интерактивные элементы добавляются не в HTML-версию письма, а в отдельную AMP-часть с типом text/x-amp-html, которая собирается из AMP-компонентов (amp-carousel, amp-accordion, amp-form, amp-selector, amp-bind, amp-list) и отправляется в составе multipart/alternative последней по счёту. Чтобы эта часть вообще отобразилась, домен отправителя должен пройти регистрацию в AMP for Email, а в письме обязательна обычная HTML-версия как fallback.
Порядок внедрения выглядит так: сверстать AMP-документ с doctype, атрибутом amp4email у html, обязательным meta charset и подключённым скриптом cdn.ampproject.org/v0.js, все стили убрать в amp-custom, инлайновые стили и сторонние скрипты не использовать; затем добавить сам интерактив — amp-form с action-xhr для отправки данных прямо из письма, amp-list для подгрузки актуального контента, amp-bind для реакции на выбор пользователя; после этого прогнать разметку через AMP-валидатор, отправить тестовое письмо на Gmail и только потом регистрировать отправителя. Ключевой технический нюанс: эндпоинты для amp-form и amp-list должны отдавать корректные CORS-заголовки с разрешённым origin отправителя, иначе интерактив молча не сработает, а получатель увидит статичную HTML-версию.
Ещё один момент, который чаще всего ломает запуск: дублирование логики в fallback-части. Всё, что умеет AMP-версия, должно быть доступно и в HTML-версии — просто в урезанном виде, иначе часть аудитории (получатели с отключённым динамическим письмом и клиенты без поддержки AMP) останется без нужного действия. Если нет ресурсов самостоятельно проходить валидацию, настраивать CORS-эндпоинты и регистрировать домен, эту часть обычно передают подрядчику — так запуск занимает дни вместо недель проб и ошибок.
