Руководство по Gmail Markup

5 522
Руководство по Gmail Markup

Наверняка вы хоть раз видели письмо, которое выделяется в списке. Его плашка выше других и к ней будто прикреплён фрагмент карты с датой, временем и названием места или мероприятия. Это означает, что в письмо добавили Гугл-разметку. Рассказываем пошагово, как это сделать и избежать ошибок.

Что такое Gmail Markup

Gmail Markup, или Гугл-разметка — это дополнительный код, благодаря которому почтовые и поисковые службы понимают, какая информация содержится в письме или на сайте. С помощью кода вы выделяете самую важную информацию, а Гугл выводит эти данные на первый план.


Gmail Markup показывает самое важное: дату, время, адрес, ещё и карту прикладывает.

Gmail Markup — часть проекта schema.org. Это совместная разработка Гугла, Яндекса и Yahoo, чтобы унифицировать семантическую разметку в HTML5. Другими словами, компании объединились, чтобы создать такие метаданные, которые поисковикам удобно считывать. Инициатива касается всего контента в интернете, но мы рассмотрим только письма.

Зачем нужен Gmail Markup

Предположим, вы — фанат певицы Монеточки. Ваш запрос в поисковике выглядит так: «концерт Монеточка Москва». Это и есть ключевые слова, по которым Гугл покажет вам подходящие сайты. Этого недостаточно, чтобы показать, где и когда будет проходить концерт. Используя Gmail Markup, организатор может указать поисковику или почтовому клиенту, где прописаны дата, время и адрес.

Без Gmail Markup ваше письмо затеряется среди остальных. С Gmail Markup письмо занимает в четыре раза больше места и выделяется за счёт плашки с картой. К тому же компании, которые используют Gmail Markup, получают преимущество в поиске.

Кому стоит размечать письма

  • Кафе, туристическим агентствам, гостиницам, компаниям, организующим мероприятия и прокат — для подтверждения бронирования, выставления счетов.
  • СМИ, блогам, соцсетям, форумам — для подборки статей в дайджест.
  • Ретейлу и логистике — для отправки уведомлений, трекинга посылок.
  • B2B-компаниям — для планирования встреч и отправки приглашений в календарь.

Форматы разметки

Предположим, вы анонсируете конференцию. Шаблон разметки можно взять прямо из инструкции Гугла, раздел Reservations, страница Event.

У нас есть выбор между двумя форматами: Microdata и JSON-LD. В чём разница:

  • Microdata основан на HTML и может быть инлайновым, то есть его можно прописать в каждом теге или встроить отдельно, между тегами <head>.
  • JSON-LD основан на языке JavaScript, поэтому код пишется отдельно в теге <script>, между тегами <head>.

Подробнее о форматах читайте в статье Яндекса.

Для примера мы выберем JSON-LD, потому что его рекомендует Гугл и организация, разрабатывающая стандарты для интернета — W3C. JSON-LD поддерживают Яндекс.Почта, Gmail и Inbox.

Так как JSON-LD расположен не в теле письма, а в хедере, не привязывайте контент к Гугл-разметке. Тем более почтовики, не поддерживающие JSON-LD, уберут этот код из письма, как раньше делали со встроенными в хедер стилями. Главную информацию — название мероприятия, дату, время и адрес — выносите наверх, а в самом письме расскажите о программе конференции.

Подробный разбор кода

<script type=“application/ld+json”>
{
Разметка состоит из пары «ключ»: «значение», после каждой пары ставится запятая. Вложенная структура в ключах заключается в {}.
“@context”: “http://schema.org”,В каждой разметке — своя структура и ключи. Чтобы их понять, нужен словарь. Разметка использует словарь со schema.org.
“@type”: “EventReservation”,Тип словаря. Для бронирования есть варианты: EventReservation, FlightReservation, LodgingReservation, RentalCarReservation, FoodEstablishmentReservation.
“reservationNumber”: “E123456789”,Код, номер или идентификатор бронирования.
“reservationStatus”: “http://schema.org/Confirmed”,Подтверждение или отмена регистрации “http://schema.org/Cancelled”.
“underName”: {Для кого бронируем.
“@type”: “Person”,“Person” или “Organization”.
“name”: “John Smith”
},
Имя указывать обязательно.
“reservationFor”: {Для чего бронируем.
“@type”: “Event”,Варианты: BusinessEvent, ChildrenEvent, ComedyEvent, DanceEvent, EducationEvent, Festival, FoodEvent, LiteraryEvent, MovieShowing, MusicEvent, SaleEvent, SocialEvent, SportsEvent, TheaterEvent, VisualArtsEvent.
“name”: “Foo Fighters Concert”,
“startDate”: “2027–03-06T19:30:00–08:00”,Время в формате ISO 8601.
“location”: {
“@type”: “Place”,
“name”: “AT&T Park”,
“address”: {
“@type”: “PostalAddress”,
“streetAddress”: “24 Willie Mays”,
“addressLocality”: “San Francisco”,
“addressRegion”: “CA”,
“postalCode”: “94107”,
“addressCountry”: “US”
}
Где пройдёт мероприятие или располагается организация.
}Закрываем ключ “reservationFor”.
}
</script>
Закрываем ключ “reservationFor”.

Как сделать разметку из обычного текста

Разметку можно сделать из обычного текста, без прописывания ключей и значений, а результат отправить себе на почту. Для этого нужны:

Мы записали скринкаст, чтобы показать, как это выглядит на практике.


Как сделать Gmail Markup из обычного текста и отправить письмо себе на почту
  1. Откройте Structured Data Markup Helper, выбирайте тип разметки и вставьте обычный текст или HTML.
  2. Добавьте ключевую информацию из текста в структуру разметки. Мастер покажет обязательные ключи и дополнительные поля, которые можно добавить в разметку. Если в тексте разметки нет какого-то обязательного значения, например, номера бронирования, его можно добавить вручную по кнопке Add Missing Tags.
  3. В приложении «Скрипты» создайте проект с файлом для кода через меню File → New → HTML file. Имя можно указывать любое, у нас это Code.gs.
  4. Скопируйте код из Structured Data Markup Helper и вставьте его между тегами <head>. Если в мастере разметки вы писали обычным текстом и забыли про теги, получится обычный Gmail Markup, а нам нужен HTML.
  5. Чтобы отправить результат себе на почту, добавьте в Code.gs код:
function testSchemas() {
  var htmlBody = HtmlService.createHtmlOutputFromFile('имя_HTML_файла').getContent();

  MailApp.sendEmail({
    to: Session.getActiveUser().getEmail(),
    subject: 'Test email markup - ' + new Date(),
    htmlBody: htmlBody,
  });
}

Нажмите Run. Во всплывающем окне разрешите отправку имейла и разметка придёт на ваш адрес.

Как найти ошибку в коде Gmail Markup

Если не пользоваться Structured Data Markup Helper, а прописывать пары «ключ: значение» самостоятельно, есть риск ошибиться. Проверит правильность Гугл-разметки, найти ошибки и рекомендуемые к заполнению поля можно через валидатор Email Markup Tester.


В нашей Gmail Markup есть две ошибки и три рекомендации, но в почте почти всё отображается хорошо

Мы сгенерировали письмо в Structured Data Markup Helper, но не избежали ошибок: не указали reservationStatus и неверно поставили время. Поля reservationStatus в Structured Data Markup Helper не было, и оно никак не повлияло на письмо. А ошибка с датой ощутима. Получилось, будто мероприятие будет 18–19 апреля, то есть два дня вместо одного. Чтобы избежать такого, указывайте дату в формате ISO 8601 с часами, минутами, секундами и часовым поясом: «2027–03-06T19:30:00–08:00». Несмотря на эти две ошибки Gmail Markup работает.

Помимо ошибок, валидатор выдал рекомендации:

  • Изменить статус резервирования. Для этого нужна отдельная ссылка и время модификации, которые указываются в modifyReservationUrl и modifiedTime.
  • Добавить информацию об организаторе в поле Performer.

Требования к отправителю

1. Настроенная DKIM или SPF-запись на сервере

DKIM — текстовые файлы с публичным и секретным ключом на вашем домене, SPF — текстовый файл, перечень IP-адресов, с которых отправляются письма. По этим записям почтовый сервис проверяет, что письмо пришло именно от вашего домена. Настройка сервера — это тема отдельной статьи. Прочитайте инструкцию по настройке DKIM или SPF в Яндексе.

2. Не меньше 100 отправленных писем ежедневно

Вы должны отправлять со своего домена больше 100 писем каждый день в течение нескольких недель.

3. Уровень спама ниже 0,1%

Гугл не говорит точную цифру, ограничиваясь туманной формулировкой: очень низкий уровень спама. Мейлчимп утверждает, что уровень жалоб должен быть меньше 0,1%. Когда вы отправляете рассылку достаточно долго, жалобы будут всегда, но их не должно быть много. Множество жалоб означает, что получатели не понимают, почему они получают эту рассылку и когда подписались на неё.

4. Письмо должно быть транзакционным

Все письма с разметкой должны быть транзакционными — это письма, которые ждут пользователи. Рекламные письма рассылать нельзя, но отличить их от транзакционных сложно даже крупным поисковикам. Поэтому Гугл ориентируется на уровень жалоб и отписок. Это справедливо: получатели чаще жалуются на рекламу, чем на транзакционные письма.

Мы не рекомендуем экспериментировать с рекламными рассылками. В случае неудачи Гугл исключит ваш домен из белого листа и разметка перестанет работать, бонусом могут возникнуть проблемы с доставляемостью.

5. Ваш домен есть в белом листе Gmail Schema

Если всё остальное в порядке, можно подавать заявку на белый лист.

Отправьте готовое письмо с Gmail Markup со своего почтового сервера на schema.whitelisting+sample@gmail.com. По нему Гугл смотрит, как вы хотите использовать разметку и не собираетесь ли вы рассылать спам. Разметка должна быть максимально подробной и полной. Если сомневаетесь, будете использовать RSVP-действие в рассылках или нет — добавляйте.

После отправки письма заполните форму и ждите ответа. Гугл обрабатывает заявки по мере их поступления, поэтому сколько это займёт времени, предсказать невозможно.

Почему Gmail Markup не работает

1. Вы отправили письмо не через Гугл-скрипт

Мейлчимп и другие почтовые сервисы по умолчанию добавляют свою подпись DKIM. Гугл сравнивает домены в почте и если они не совпадают, отключает разметку. У личного аккаунта указаны @gmail.com и домен для DKIM-записи, а у Мейлчимпа — mail120.suw17.mcsv.net.


Слева мы отправили письмо через Мейлчимп, а справа — через Гугл-скрипт

2. Сервер не настроен

Если рабочий сервис не настроен или настроен не полностью, то домен из DKIM не совпадает с доменом отправителя. Гугл сравнивает их, видит различия и отключает разметку. Чтобы избежать этого, сначала настройте DKIM или SPF, подайте заявку в Гугл, дождитесь одобрения и только тогда запускайте рассылку.

Можно ли отправлять письма с Gmail Markup клиентам

Да, если ваш домен добавят в белый лист. Частично о том, как это сделать, написано в руководстве. Для этого нужны Python и Google Cloud.

А вы внедряли Gmail Markup у себя? Поделитесь опытом.

5 523