푸시 알림 트리거

파트너 트리거 알림

메시지 추가 및 알림

배경

사용자가 패스를 추가한 후 패스와 관련된 메시지를 보내고 사용자에게 알림을 보내는 것이 좋습니다. message_typeTEXT_AND_NOTIFY과 같은 메시지 추가 API 요청을 사용하면 다음이 발생합니다.

  1. '메시지' 항목이 '패스 뒷면' (세부정보 템플릿)에 추가되고 패스가 저장된 사용자에게 푸시 알림이 전송됩니다.
  2. 사용자가 알림을 탭하면 패스 (즉, 카드 뷰)의 전면으로 Google 월렛이 열리고 화면 상단에 '메시지 보기' 버튼이 있는 콜아웃이 표시됩니다.
  3. 콜아웃을 클릭하면 사용자가 패스의 뒷면으로 이동하며, 여기에서 새로 읽지 않은 메시지가 강조 표시됩니다.

사용자에게 알림과 함께 메시지를 보낼 때 고려사항

  • 사용자가 메시지와 관련된 푸시 알림을 수신하려면 패스에 알림이 사용 설정되어 있어야 합니다.
  • 메시지에는 웹사이트 또는 앱의 URI가 포함될 수 있습니다. 하이퍼링크는 패스와 관련된 웹사이트 또는 앱이어야 합니다. 사용자를 패스와 관련이 없는 링크로 연결하는 것은 허용되는 사용 정책을 위반하는 것입니다.
  • 24시간 동안 푸시 알림을 트리거하는 메시지를 최대 3개까지 보낼 수 있습니다. Google에서는 사용자를 스팸으로 간주하는 경우 푸시 알림 전송 할당량을 제한할 수 있습니다.
  • 잠금 화면에 표시되는 푸시 알림은 Google 월렛에서 관리합니다.
  • UPDATE 또는 PATCH 메서드를 사용하여 일반 클래스 또는 객체 엔드포인트를 통해 메시지 데이터를 수정하거나 삭제할 수 있습니다.

통합 단계

AddMessage API를 사용하여 추가된 새 발급기관 메시지를 사용자에게 알리려면 새 텍스트가 포함된 MessageTEXT 대신 MessageType TEXT_AND_NOTIFY가 있도록 AddMessageRequest를 업데이트해야 합니다.

Passes 클래스에 메시지를 추가하고 알림을 보내는 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 요청의 예

  
  "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"
    },
  

수업 통과를 알리고 메시지를 추가하는 응답 예시

  // 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"
    },
  

예외 처리

3회 이상 알림을 보내려고 하면 QuotaExceededException 응답이 반환됩니다. 패스의 추가 업데이트는 통합 단계에 설명된 대로 'TEXT_AND_NOTIFY' 대신 'TEXT'를 사용하여 설정할 수 있습니다.

필드 업데이트 및 알림

배경

사용자가 카드를 추가한 후 특정 필드를 업데이트할 때 푸시 알림을 트리거할 수 있습니다. 알림이 사용자의 잠금 화면에 표시되어 패스에 업데이트가 있음을 알립니다. 이 알림은 UPDATE 및 PATCH API 메서드를 사용하여 아래에 정의된 특정 필드 하위 집합에 대해서만 트리거됩니다. 패스를 업데이트하는 API 호출이 이루어지면 다음이 발생합니다.

  1. 패스 업데이트를 알리는 푸시 알림이 트리거되어 사용자의 잠금 화면에 표시됩니다.
  2. 사용자가 알림을 탭하면 패스 (카드 보기)가 Google 월렛의 전면에 열리고 화면 상단에 '업데이트 검토' 버튼이 있는 콜아웃이 표시됩니다.
  3. 버튼을 클릭하면 업데이트로 변경된 필드를 볼 수 있는 화면으로 이동합니다.

필드 업데이트 알림 전송 시 고려사항

  • 사용자가 업데이트와 관련된 푸시 알림을 수신하려면 패스에 알림이 사용 설정되어 있어야 합니다.
  • 24시간 동안 푸시 알림을 트리거하는 업데이트를 최대 3개까지 보낼 수 있습니다. 사용자에게 스팸을 전송하는 것으로 간주되면 푸시 알림 전송 할당량이 제한될 수 있습니다.
  • 사용자의 잠금 화면에 표시되는 푸시 알림은 Google 월렛에서 관리합니다.
  • notifyPreference 필드는 이 요청에만 있는 일시적인 필드입니다. 알림을 트리거하려는 향후 요청의 경우 클래스 또는 객체 요청에서 이 필드를 재설정해야 합니다.

통합 단계

이러한 알림을 트리거하려면 기존 UPDATE 또는 PATCH 호출을 사용하고 notifyPreference를 지정해야 합니다. 클래스 또는 객체의 필드를 업데이트할 때 클래스 또는 객체 요청에 새 필드 notifyPreference를 추가하여 알림을 트리거할 수 있습니다.

클래스에서 업데이트하고 알림을 보내는 JSON 요청의 예

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

notifyPreferencenotifyOnUpdate로 설정하면 업데이트된 필드가 현재 지원되는 경우 알림이 트리거됩니다.

지원되는 필드

FlightObject
  • boardingAndSeatingInfo.seatNumber
  • boardingAndSeatingInfo.seatAssignment

Nearby 알림

이 기능은 알림을 사용 설정하고 Google 월렛 앱에 정확한 항상 사용 설정 위치 액세스 권한을 부여한 사용자에게 현재 위치와 관련된 패스를 저장했다는 푸시 알림을 표시합니다.

통합 단계

사용 방법

이 기능을 사용하려면 클래스와 객체에 위치를 추가해야 합니다. 클래스당 최대 10개, 객체당 최대 10개의 위치를 추가할 수 있습니다. 클래스 또는 객체 정의에 MerchantLocations를 사용합니다. insert, patch 또는 update 메서드를 사용할 때 이러한 위치를 추가할 수 있습니다.

클래스 또는 객체에 위치를 추가하면 사용자가 근처에 있을 때 Google에서 사용자에게 알림을 보냅니다. Google은 알림이 전송되기 전에 사용자가 얼마나 가까이 있어야 하고 얼마나 오랫동안 해당 지역에 머물러야 하는지 결정합니다. Google은 알림 텍스트도 관리합니다.

MerchantLocations가 설정된 LoyaltyClass의 예:
{
  "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
    },
  ]
}

예상 동작

사용자가 지정된 MerchantLocation에 있으면 패스에 관한 고정 알림이 표시되어야 합니다. 알림을 클릭하면 Google 월렛에서 패스가 열립니다. 사용자는 스와이프 동작으로 알림을 닫을 수 있습니다. 사용자가 위치를 벗어나면 알림이 사라집니다.

Google 월렛에서 트리거되는 자동 알림

예정된 알림

Google 월렛은 항공편 3시간 전에 사용자에게 알림을 보냅니다. 항공편 시간은 class.localScheduledDepartureDateTime로 정의됩니다.

이 알림을 수신하려면 사용자가 알림을 사용 설정해야 합니다. 알림 수신을 원하는 사용자는 설정 > 알림으로 이동하여 패스 관련 업데이트를 사용 설정하면 됩니다.

사용자가 잠금 화면에 알림이 표시되도록 설정한 경우 알림 영역과 잠금 화면에 알림이 표시됩니다.

알림은 다음과 같이 수정 불가능한 형식으로 표시됩니다.

  Boarding pass for your flight to class.destination.airportIataCode
  

사용자가 알림을 탭하고 기기의 잠금을 해제하면 Google 월렛 앱에 패스가 표시됩니다.

사용자에게 패스가 여러 개 있으면 가장 빨리 사용할 수 있는 패스만 표시됩니다. 여러 탑승권 그룹화에 따라 그룹화된 패스를 추가한 경우 그룹에 속한 패스 중 하나만 알림에 표시됩니다. 하지만 알림을 탭하고 왼쪽과 오른쪽으로 스와이프하면 그룹의 다른 패스도 볼 수 있습니다.

알림은 고정되며 사용자가 알림을 열어본 후에도 자동으로 종료되지 않습니다. class.localScheduledDepartureDateTime 후 60분이 지나면 자동으로 종료됩니다.

항공편 업데이트 알림

항공편의 특정 필드가 변경되면 탑승권이 하나 이상 추가된 사용자의 기기에 푸시 알림이 전송됩니다. 알림은 특정 조건이 충족되는 경우에만 전송됩니다.

출발지 터미널 및 게이트

class.origin.terminal 또는 class.origin.gate를 변경한 경우 다음 조건이 충족되면 필드가 변경되었다는 알림이 전송됩니다.

  • class.localScheduledDepartureDateTime까지 3시간이 채 안 남았습니다.

알림은 '샘플 항공사에서 게이트를 A1으로 업데이트했습니다.'와 같은 형식으로 전송됩니다. 형식은 변경할 수 없습니다.

탑승 시간 및 출발 시간

class.localBoardingDateTime 또는 class.localEstimatedOrActualDepartureDateTime을 변경한 경우 다음 조건이 충족되면 필드가 변경되었다는 알림이 전송됩니다.

  • class.localScheduledDepartureDateTime까지 24시간이 채 안 남았습니다.
  • 각 시간이 10분 이상 변경됩니다.

알림은 '_샘플 항공사에서 탑승 시간을 오후 6시로 업데이트했습니다._'와 같은 형식으로 전송되며 형식이나 언어는 맞춤설정할 수 없습니다.