Notificações acionadas por parceiros
Adicionar mensagem e notificar
Contexto
Depois que um usuário adicionar um cartão, talvez você queira enviar uma mensagem relacionada a ele e garantir que ele seja notificado sobre isso. Ao usar a solicitação da API Add Message
com um message_type
igual a
TEXT_AND_NOTIFY
, o seguinte acontece:
- Um item Mensagem é adicionado ao "verso do cartão" (também conhecido como Modelo de detalhes), e uma notificação push é enviada aos usuários com o cartão salvo.
- Quando o usuário toca na notificação, a Carteira do Google é aberta na frente do cartão (também conhecido como visualização de cartão), e uma caixa de texto aparece na parte de cima da tela com um botão "Ver mensagem".
- Ao clicar no destaque, os usuários acessam a parte de trás do cartão, onde as novas mensagens não lidas são destacadas.
Algumas considerações ao enviar mensagens com notificações para os usuários
- Os usuários precisam ativar as notificações para receber as notificações push relacionadas a mensagens.
- As mensagens podem conter URIs para seu site ou app. Os hiperlinks precisam ser de um site ou app relacionado ao cartão. É uma violação da Política de uso aceitável enviar usuários para links não relacionados ao cartão.
- É possível enviar no máximo três mensagens que acionam uma notificação push em um período de 24 horas. O Google pode reduzir sua cota de entrega de notificações push se considerar que você está enviando spam para seus usuários.
- A notificação push que os usuários veem na tela de bloqueio é controlada pela Carteira do Google.
- É possível usar os métodos UPDATE ou PATCH para editar ou remover dados de mensagens usando o endpoint regular de classe ou objeto.
Etapas de integração
Quando você quiser notificar os usuários sobre uma nova mensagem do emissor adicionada usando a API AddMessage, será necessário atualizar o AddMessageRequest para que a Message que contém o novo texto tenha o MessageType TEXT_AND_NOTIFY em vez de TEXT.
Exemplo de solicitação JSON para adicionar uma mensagem e notificar em uma classe de passes
… "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" }, …
Exemplo de solicitação JSON para adicionar uma mensagem e notificar em um objeto de cartão
… "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" }, …
Exemplo de Response para adicionar uma mensagem e notificar sobre uma classe de cartão
// 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" }, …
Como processar exceções
Qualquer tentativa de notificar mais de três vezes vai gerar uma resposta QuotaExceededException . Outras atualizações do cartão podem ser definidas usando "TEXT" em vez de "TEXT_AND_NOTIFY", conforme discutido nas Etapas de integração.
Atualizar campo e notificar
Contexto
Depois que um usuário adiciona um cartão, talvez você queira acionar uma notificação push ao atualizar determinados campos. A notificação vai aparecer na tela de bloqueio do usuário e informar que há uma atualização no cartão. Essa notificação só será acionada para um subconjunto específico de campos definidos abaixo usando os métodos de API UPDATE e PATCH. Quando uma chamada de API para atualizar o cartão é feita, o seguinte acontece:
- Uma notificação push é acionada e exibida na tela de bloqueio do usuário, informando sobre uma atualização do cartão.
- Quando o usuário toca na notificação, a Carteira do Google é aberta na frente do cartão (também conhecido como visualização de cartão), e uma caixa de texto aparece na parte de cima da tela com um botão "Analisar atualização".
- Ao clicar no botão, o usuário acessa uma tela em que pode ver os campos que foram alterados pela atualização.
Algumas considerações ao enviar notificações de atualização de campo
- Os usuários precisam ativar as notificações para receber as notificações push relacionadas a atualizações.
- É possível enviar no máximo três atualizações que acionam uma notificação push em um período de 24 horas. O Google pode reduzir sua cota de entrega de notificações push se considerar que você está enviando spam para seus usuários.
- A notificação push que os usuários veem na tela de bloqueio é controlada pela Carteira do Google.
- O campo
notifyPreference
é transitório e existe apenas nesta solicitação. Para solicitações futuras em que você quiser acionar uma notificação, será necessário redefinir esse campo na solicitação de classe ou objeto.
Etapas de integração
Para acionar essas notificações, use as chamadas UPDATE ou PATCH
existentes e especifique o notifyPreference. Ao atualizar um campo em uma classe ou objeto, você pode
adicionar um novo campo, notifyPreference
, à solicitação de classe ou objeto para acionar a
notificação.
Exemplo de solicitação JSON para atualizar e notificar em uma turma
… "dateTime": { "kind": "walletobjects#eventDateTime", "doorsOpen": "2024-09-23T19:20:50.00" }, "multipleDevicesAndHoldersAllowedStatus": "multipleHolders", "notifyPreference": "notifyOnUpdate", …
Definir o notifyPreference
como notifyOnUpdate
vai acionar uma notificação, desde que o campo atualizado seja compatível.
Campos aceitos
FlightObject
- boardingAndSeatingInfo.seatNumber
- boardingAndSeatingInfo.seatAssignment
Notificações próximas
Esse recurso mostra aos usuários que ativaram as notificações e concederam acesso preciso e constante à localização no app Google Carteira uma notificação push lembrando que eles salvaram um cartão relevante para a localização atual.Etapas de integração
Como usar
Para usar esse recurso, adicione locais às suas classes e objetos. É possível adicionar até 10 locais por classe e 10 por objeto. Use MerchantLocations
na definição de classe ou objeto. É possível adicionar esses locais ao usar os métodos insert
, patch
ou update
.
Depois de adicionar locais a uma classe ou objeto, o Google envia notificações aos usuários quando eles estão por perto. O Google decide a proximidade e o tempo que um usuário precisa ficar na área para que a notificação seja enviada. O Google também controla o texto da notificação.
Exemplo de uma LoyaltyClass com o MerchantLocations definido:{ "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 }, ] }
Comportamento esperado
Os usuários vão receber notificações fixas sobre os cartões quando estiverem em um dos MerchantLocations especificados. Se a pessoa clicar na notificação, o cartão será aberto na Carteira do Google. Os usuários podem dispensar a notificação com o gesto de deslizar. Quando um usuário sair do local, a notificação vai desaparecer.
Notificações automáticas acionadas pela Carteira do Google
Próxima notificação
A Carteira do Google envia uma notificação ao usuário três horas antes do
voo. O tempo de voo é definido por
class.localScheduledDepartureDateTime
.
Para receber essa notificação, o usuário precisa ter as notificações ativadas. Para verificar isso, ele pode navegar até Configurações > Notificações e ver se a opção Atualizações sobre seus cartões está ativada.
A mensagem será exibida na área de notificações e também na tela de bloqueio se o usuário tiver ativado notificações nessa tela.
A notificação tem o seguinte formato não modificável:
Boarding pass for your flight to class.destination.airportIataCode
Se ele tocar na notificação e desbloquear o dispositivo, o cartão será exibido no app Carteira do Google.
Se o usuário tiver vários cartões, somente será mostrado o próximo que poderá ser utilizado. Se os cartões agrupados tiverem sido salvos de acordo com as instruções em Agrupar vários cartões de embarque, a notificação mostrará apenas um dos cartões do grupo. No entanto, depois de tocar na notificação, o usuário pode ver os outros cartões nesse grupo ao deslizar para a esquerda ou direita.
A notificação é fixada e não será dispensada automaticamente depois que um usuário a abrir. Isso vai acontecer 60
minutos após class.localScheduledDepartureDateTime
.
Notificação de atualização de voo
Quando determinados campos de um voo são alterados, os usuários com um ou mais cartões de embarque adicionados recebem uma notificação push no dispositivo. Isso acontece somente se condições específicas forem atendidas.
Terminal de origem e portão
Se você alterar class.origin.terminal
ou class.origin.gate
e a condição a seguir for atendida, uma notificação será enviada informando que o campo foi alterado.
- Faltam menos de três horas para
class.localScheduledDepartureDateTime
.
A notificação é exibida no seguinte formato: "A companhia aérea X atualizou o portão para A1". Não é possível mudar o formato.
Horário de embarque e de partida
Se você alterar class.localBoardingDateTime
ou class.localEstimatedOrActualDepartureDateTime
, e as condições abaixo forem atendidas, uma notificação será enviada informando que o campo foi alterado.
- Faltam menos de 24 horas para
class.localScheduledDepartureDateTime
. - O horário em questão é alterado em pelo menos 10 minutos.
A notificação é exibida no seguinte formato: "_A companhia aérea X atualizou o horário de embarque para 18h._" O formato ou idioma não pode ser personalizado.