Триггерные push-уведомления

Уведомления, инициированные партнером

Добавить сообщение и уведомить

Фон

После того, как пользователь добавит карту, вы можете отправить ему сообщение, связанное с этой картой, и убедиться, что он уведомлен об этом. При использовании API-запроса Add Message с message_type , равным TEXT_AND_NOTIFY происходит следующее:

  1. Элемент « Сообщение » добавляется на «обратную сторону пропуска» (он же « Шаблон сведений »), а пользователям отправляется push-уведомление при сохранении пропуска.
  2. После того, как пользователь нажмет на уведомление, откроется Google Wallet на лицевой стороне карты (т. н. вид карты), а в верхней части экрана пользователь увидит выноску с кнопкой «Просмотреть сообщение».
  3. Нажатие на выноску перенесет пользователя в конец карты, где выделены новые непрочитанные сообщения.

Некоторые соображения при отправке сообщений с уведомлениями пользователям

  • Чтобы получать push-уведомления о сообщениях, у пользователей должны быть включены уведомления для их пропусков.
  • Сообщения могут содержать URI вашего веб-сайта или приложения. Гиперссылки должны вести на веб-сайт или приложение, связанные с картой. Перенаправление пользователей на ссылки, не связанные с картой, является нарушением Политики приемлемого использования .
  • Вы можете отправить не более 3 сообщений, запускающих push-уведомление, в течение 24 часов. Google может ограничить вашу квоту на доставку push-уведомлений, если сочтет, что вы рассылаете спам своим пользователям.
  • Push-уведомления, которые пользователи видят на экране блокировки, контролируются Google Wallet.
  • Методы UPDATE или PATCH можно использовать для редактирования или удаления данных сообщения с использованием обычного класса или конечной точки объекта.

Этапы интеграции

Если вы хотите уведомить пользователей о новом сообщении эмитента, добавленном с помощью API AddMessage, вам необходимо обновить AddMessageRequest так, чтобы сообщение , содержащее новый текст, имело тип сообщения TEXT_AND_NOTIFY вместо TEXT .

Пример запроса JSON для добавления сообщения и уведомления в классе пропусков

  
  "id": ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Class message header",
        "body": "My Class message body with a <a href="https://wallet.google">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  

Пример запроса JSON для добавления сообщения и уведомления в объекте Passes

  
  "id": OBJECT_ID",
  "classId": "ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Object message header",
        "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  

Пример ответа для добавления сообщения и уведомления для класса Pass

  // The updated resource
      {
      "kind": "walletobjects#walletObjectMessage",
      "header": "My Object message header",
      "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
      "id": "message_id",
      "messageType": "textAndNotify"
    },
  

Обработка исключений

Любая попытка отправить уведомление более трёх раз приведёт к ошибке QuotaExceededException . Дальнейшие обновления пропуска можно задать с помощью « TEXT » вместо « TEXT_AND_NOTIFY », как описано в разделе «Этапы интеграции» .

Обновить поле и уведомить

Фон

После того, как пользователь добавит карту, вы можете настроить push-уведомление при обновлении определённых полей. Уведомление появится на экране блокировки пользователя и сообщит ему об обновлении карты. Это уведомление сработает только для определённого подмножества полей, определённых ниже с помощью методов API UPDATE и PATCH. После вызова API для обновления карты происходит следующее:

  1. На экране блокировки пользователя активируется push-уведомление, информирующее его об обновлении пропуска.
  2. После того, как пользователь нажмет на уведомление, откроется Google Wallet на лицевой стороне карты (т. н. вид карты), а в верхней части экрана пользователь увидит выноску с кнопкой «Просмотреть обновление».
  3. Нажатие кнопки открывает экран, на котором пользователь может увидеть поля, измененные в результате обновления.

Некоторые соображения при отправке уведомлений об обновлениях на местах

  • Чтобы получать push-уведомления об обновлениях, у пользователей должны быть включены уведомления для их пропусков.
  • Вы можете отправить не более 3 обновлений, запускающих push-уведомление, в течение 24 часов. Google может ограничить вашу квоту на доставку push-уведомлений, если сочтет, что вы рассылаете спам своим пользователям.
  • Push-уведомления, которые пользователи видят на экране блокировки, контролируются Google Wallet.
  • Поле notifyPreference — временное поле, которое существует только в этом запросе. Для будущих запросов, когда вы захотите активировать уведомление, вам потребуется сбросить это поле в запросе класса или объекта.

Этапы интеграции

Для активации этих уведомлений необходимо использовать существующие вызовы UPDATE или PATCH и указать notifyPreference. При обновлении поля класса или объекта можно добавить новое поле notifyPreference в запрос класса или объекта для активации уведомления.

Пример запроса JSON для обновления и уведомления в классе

    …
    "dateTime":
        {
            "kind": "walletobjects#eventDateTime",
            "doorsOpen": "2024-09-23T19:20:50.00"
        },
    "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
    "notifyPreference": "notifyOnUpdate",
    …
  

Установка notifyPreference в значение notifyOnUpdate вызовет уведомление, если обновленное поле в настоящее время поддерживается.

Поддерживаемые поля

EventTicketClass
  • eventName
  • eventVenue.name
  • место проведения мероприятия.адрес
  • eventDateTime.doorsOpen
  • eventDateTime.start
EventTicketObject
  • eventSeat.seat
  • eventSeat.row
  • eventSeat.section
  • eventSeat.gate

Уведомления поблизости

Эта функция будет показывать пользователям, которые включили уведомления и предоставили точный, постоянный доступ к приложению Google Wallet, push-уведомление с напоминанием о том, что они сохранили проездной, соответствующий их текущему местоположению.

Этапы интеграции

Как использовать

Чтобы использовать эту функцию, необходимо добавить местоположения в классы и объекты. Вы можете добавить до 10 местоположений на класс и до 10 на объект. Используйте MerchantLocations в определении класса или объекта. Вы можете добавить эти местоположения с помощью методов insert , patch или update .

После добавления местоположений к классу или объекту Google будет отправлять пользователям уведомления, когда они находятся поблизости. Google определяет, насколько близко должен находиться пользователь и как долго ему нужно оставаться в этой области, прежде чем будет отправлено уведомление. Google также контролирует текст уведомления.

Пример LoyaltyClass с набором MerchantLocations:
{
  "kind": "walletobjects#loyaltyClass",
  "programLogo": {
  "kind": "walletobjects#image",
  "sourceUri": {
    "uri":
    ...
  }
  },
  "localizedProgramName": {
    "kind": "walletobjects#localizedString",
    "defaultValue": {
      "kind": "walletobjects#translatedString",
      "language": "en",
      "value": "Program Name",
    }
  },
  "id": Id1234,
  "version": "1",
  "allowMultipleUsersPerObject": true,
  "reviewStatus": "underReview",
  "enableSmartTap": false,
  "localizedIssuerName": {
    "kind": "walletobjects#localizedString",
    "defaultValue": {
      "kind": "walletobjects#translatedString",
      "language": "en",
      "value": "Issuer Name"
    }
  },
  "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
  "merchantLocations": [
    {
      "latitude": 37.79020867928078,
      "longitude": -122.39004
    },
    {
      "latitude": 37.42587,
      "longitude": -122.08620
    },
  ]
}

Ожидаемое поведение

Пользователи должны получать закреплённые уведомления о своих картах, когда находятся в одном из указанных пунктов продаж. При нажатии на уведомление карта открывается в Google Wallet. Уведомление можно закрыть свайпом. Когда пользователь покидает пункт продаж, уведомление исчезает.

Автоматические уведомления, запускаемые Google Wallet

Предстоящее уведомление

Google Wallet отправляет пользователю уведомление за три часа до события. Время события определяется классом class.dateTime.start .

Для получения этого уведомления у пользователя должны быть включены уведомления. Чтобы проверить это, перейдите в раздел «Настройки» > «Уведомления» и проверьте, включена ли опция «Уведомления о ваших пропусках» .

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

Уведомление имеет следующий неизменяемый формат:

  class.eventName
  

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

Если у пользователя несколько пропусков, отображается только тот, который можно использовать быстрее всего. Если пользователь добавил групповые пропуска в соответствии с функцией «Группировать билеты на несколько мероприятий» , в уведомлении отображается только один из пропусков в группе. Однако, нажав на него, пользователь может смахнуть влево или вправо, чтобы увидеть другие пропуска в этой группе.

Уведомление закреплено и не будет автоматически закрыто после открытия пользователем. Автоматическое закрытие происходит через 60 минут после class.dateTime.start .