Триггерные 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 », как описано в разделе «Этапы интеграции» .

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

Эта функция будет показывать пользователям, которые включили уведомления и предоставили точный, постоянный доступ к приложению 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. Уведомление можно закрыть свайпом. Когда пользователь покидает пункт продаж, уведомление исчезает.