파트너 트리거 알림
메시지 추가 및 알림
배경
사용자가 패스를 추가한 후에는 패스와 관련된 메시지를 보내고 사용자에게 알림을 보내야 할 수 있습니다. 메시지 추가 API
요청을 message_type이
TEXT_AND_NOTIFY인 경우 사용하면 다음과 같은 일이 발생합니다.
- "메시지" 항목이 "패스 뒷면" (세부정보 템플릿이라고도 함)에 추가되고 패스가 저장된 사용자에게 푸시 알림이 전송됩니다.
- 사용자가 알림을 탭하면 Google 월렛이 패스 앞면 (카드 뷰라고도 함)으로 열리고 화면 상단에 '메시지 보기' 버튼이 있는 콜아웃이 표시됩니다.
- 콜아웃을 클릭하면 패스 뒷면으로 이동하며, 여기에서 읽지 않은 새 메시지가 강조표시됩니다.
사용자에게 알림과 함께 메시지를 보낼 때 고려사항
- 사용자가 메시지와 관련된 푸시 알림을 받으려면 패스에 알림이 사용 설정되어 있어야 합니다.
- 메시지에는 웹사이트 또는 앱의 URI가 포함될 수 있습니다. 하이퍼링크는 패스와 관련된 웹사이트 또는 앱이어야 합니다. 패스와 관련이 없는 링크로 사용자를 보내는 것은 허용 가능한 사용 정책 을 위반하는 것입니다.
- 24시간 동안 푸시 알림을 트리거하는 메시지를 최대 3개까지 보낼 수 있습니다. Google은 사용자를 스팸 처리한다고 판단하는 경우 푸시 알림 전송 할당량을 제한할 수 있습니다.
- 사용자가 잠금 화면에 보는 푸시 알림은 Google 월렛에서 제어합니다.
- UPDATE 또는 PATCH 메서드를 사용하여 일반 클래스 또는 객체 엔드포인트를 통해 메시지 데이터를 수정하거나 삭제할 수 있습니다.
통합 단계
AddMessage API를 사용하여 추가된 새 발급기관 메시지를 사용자에게 알리려면 새 텍스트가 포함된 메시지의 MessageType이 TEXT_AND_NOTIFY가 아닌 TEXT_AND_NOTIFY가 되도록 AddMessageRequest를 업데이트해야 합니다.
패스 클래스에서 메시지를 추가하고 알리는 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 호출이 이루어지면 다음과 같은 일이 발생합니다.
- 푸시 알림이 트리거되어 사용자의 잠금 화면에 표시되며 패스 업데이트를 알립니다.
- 사용자가 알림을 탭하면 Google 월렛이 패스 앞면 (카드 뷰라고도 함)으로 열리고 화면 상단에 '업데이트 검토' 버튼이 있는 콜아웃이 표시됩니다.
- 버튼을 클릭하면 업데이트로 변경된 필드를 볼 수 있는 화면으로 이동합니다.
필드 업데이트 알림을 보낼 때 고려사항
- 사용자가 업데이트와 관련된 푸시 알림 을 받으려면 패스에 알림이 사용 설정되어 있어야 합니다.
- 사용자를 스팸 처리하지 않도록 이벤트 또는 항공편의 시작 시간이 3시간 이내인 경우에만 알림이 트리거됩니다.
- 24시간 동안 푸시 알림을 트리거하는 업데이트를 최대 3개까지 보낼 수 있습니다. Google은 사용자를 스팸 처리한다고 판단하는 경우 푸시 알림 전송 할당량을 제한할 수 있습니다.
- 사용자가 잠금 화면에 보는 푸시 알림은 Google 월렛에서 제어합니다.
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
- eventvenue.address
- eventDateTime.doorsOpen
- eventDateTime.start
EventTicketObject
- eventSeat.seat
- eventSeat.row
- eventSeat.section
- eventSeat.gate
주변 알림
이 기능은 알림을 사용 설정하고 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
},
]
}예상 동작
사용자는 지정된 MerchantLocations 중 한 곳에 있을 때 패스에 관한 고정 알림을 받아야 합니다. 알림을 클릭하면 Google 월렛에서 패스가 열립니다. 사용자는 스와이프 동작으로 알림을 닫을 수 있습니다. 사용자가 위치를 벗어나면 알림이 사라집니다.
Google 월렛에서 트리거하는 자동 알림
예정된 알림
Google 월렛은 이벤트 시작 3시간 전에 사용자에게 알림을 보냅니다. 이벤트 시간은
class.dateTime.start에 의해 정의됩니다.
이 알림을 수신하려면 사용자가 알림을 사용 설정해야 합니다. 알림 수신을 원하는 사용자는 설정 > 알림 으로 이동하여 패스 관련 업데이트 를 사용 설정하면 됩니다.
사용자가 잠금 화면에 알림이 표시되도록 설정한 경우 알림 영역과 잠금 화면에 알림이 표시됩니다 .
알림은 다음과 같이 수정 불가능한 형식으로 표시됩니다.
class.eventName
사용자가 알림을 탭하고 기기의 잠금을 해제하면 Google 월렛 앱에 패스가 표시됩니다.
사용자에게 패스가 여러 개 있으면 가장 빨리 사용할 수 있는 패스만 표시됩니다. 이벤트 티켓 그룹화 에 따라 그룹화된 패스를 추가한 경우 그룹에 속한 패스 중 하나만 알림에 표시됩니다. 하지만 사용자가 탭하면 왼쪽과 오른쪽으로 스와이프하여 해당 그룹의 다른 패스를 볼 수 있습니다.
알림은 고정되며 사용자가 알림을 열어본 후에도 자동으로 종료되지 않습니다. class.dateTime.start 후 60
분이 지나면 자동으로 종료됩니다.