Disparar Eventos
Um dos recursos principais da Plataforma de Engajamento do Jogador (PEP) da Gamanza é a capacidade de permitir que operadores/integradores enviem Eventos. Esses eventos podem disparar uma série de acionadores, para o CRM, dando total controle ao Operador Admin para usar os dados contidos no acionador para realizar uma série de configurações e personalizações e até mesmo criar acionadores personalizados.
Você pode encontrar a Especificação da API de Eventos de Acionamento aqui Processar ação de acionamento, mas neste capítulo, vamos explicar em detalhes como os eventos de acionamento funcionam com exemplos e revelar suas capacidades.
Estrutura do Evento de Acionamento
O evento de acionamento é composto pelas seguintes propriedades e opções de payload:
- eventName:
stringIdentificador do evento de acionamento. por exemplo: reset-password, é importante usar uma convenção: pode ser traços médios ou traços baixos para separar palavras. - playerId:
stringO identificador exclusivo do jogador que realiza uma atividade no lado/plataforma do operador. - version:
string[opcional] seu propósito é rastrear mudanças. O valor padrão é v1. - eventDate:
date-stringData e hora em que o evento foi lançado. - payload:
arrayÉ uma lista de objetos estruturados de chave/tipo/valor que contém informações para o evento. - external:
objectRefere-se a um evento que pode acionar uma campanha transacional de CRM que deve ser entregue a uma pessoa externa. Por "externo" entendemos que não está registrado no sistema do operador e, portanto, não há informações no PEP. - delay.duration:
string ISO-8601Define um atraso para o PEP antes de começar a processar o evento. Útil quando você precisa despachar uma campanha transacional de CRM e precisa aguardar algum tempo antes de enviá-la. - keepCounter: Esta opção permite que o PEP crie duas propriedades especiais para o jogador: data da última execução e contagem de execuções. Estas propriedades são criadas seguindo esta convenção:
- para a última execução [last][EventNameInCamelCase][Date] por exemplo para reset-password: lastResetPasswordDate
- para contadores [eventNameInCamelCase][Count] por exemplo para reset-password: resetPasswordCount
- O nome do evento deve ser significativo para identificá-lo facilmente na plataforma.
- Certifique-se de manter a consistência do nome do evento, a plataforma usa esse valor como um identificador exclusivo para o evento. Se este nome mudar, um novo evento será criado e todas as coisas relacionadas ao evento anterior permanecerão como estão. Isso significa que os Operadores Admin são forçados a vincular manualmente as Campanhas Transacionais de CRM ou as regras de Contribuição de Gamificação novamente.
Estrutura da Propriedade do Payload
A propriedade payload contém informações relevantes para o evento. O PEP pode usar essas informações para despachar campanhas transacionais. O payload é uma matriz de objetos com a seguinte estrutura:
- key: nome de propriedade exclusivo, pode ser qualquer formato de variável de linguagem de programação válido: CamelCase, PascalCase, snake_case, kebab-case, UPPER_CASE. Internamente, a plataforma PEP cria um nome de exibição legível por humanos adequado para interagir facilmente com esses dados no PEP Admin.
- tipo: tipo de dados de valor usado pelo PEP para analisar e permitir configurações sobre o evento. Tipos de dados permitidos:
string: representa uma sequência de caracteres.number: representa um valor de dados numérico, incluindo inteiros e números de ponto flutuantedate: representa um tipo de dados de data expressos no formato RFC 3339boolean: representa um valor binário indicando verdadeiro ou falsoenum: representa um tipo de dados que pode ser enumerável, como status, tags, etc
- valor: o valor real. O valor de cada propriedade deve ser definido na representação da string.
Você pode enviar quantas propriedades precisar.
Estrutura de Propriedade Externa
A propriedade externa deve ser usada, por exemplo, para acionar uma campanha transacional a ser entregue a uma pessoa externa.
Por definição, o PEP só pode enviar comunicações através do módulo CRM e apenas para os jogadores registrados no PEP, para mais
detalhes, verifique Informações do Jogador. Mas, por exemplo, digamos que você tenha um recurso de indicar um amigo embutido em seu site e precise enviar um e-mail ou SMS para esse terceiro usuário futuro em tempo real,
a propriedade externa permite que você defina as informações mínimas necessárias para que o CRM envie essa comunicação.
Vamos ver as propriedades:
- isExternal: Sinalizador para determinar se o evento é direcionado a um usuário externo fora da plataforma. Se o jogador não existir porque você precisa enviar um evento antes de enviar as informações do jogador para o PEP, defina este valor como falso ou omita a propriedade na solicitação. Padrão: Falso
- canal: Define o método de contato com o usuário externo. Opções disponíveis: sms ou email
- contactValue: O valor deste campo é determinado pelo canal. e.g:
[email protected]|+41 78 123 45 67 - language: Idioma usado para enviar a comunicação (Código de Idioma ISO código 639-1) exemplo: (EN ou ES)
Exemplos de Uso
Agora vamos ver através de exemplo como os gatilhos de eventos funcionam para o CRM:
Uso básico
Imagine que você queira enviar um e-mail para cada jogador que definir um placar de um vídeo apenas se o placar for maior ou igual a 7. Fácil... Primeiro, você precisa se certificar de enviar um evento de gatilho para o PEP da seguinte forma:
O jogador 00000000-0000-0000-0000-000000000001 deseja definir uma visualização de vídeo e colocar uma reação/sentimento sobre
o vídeo:
Me mostre o código!
importar axios de 'axios';
const axiosInstance = axios.create(...);
/**
* Processar dinamicamente as ações de gatilho com base nos eventos recebidos pelo jogador
* para playerID: 00000000-0000-0000-0000-000000000001
* Especificação da API: @url: https://docs.gamanzaengage.com/docs-api/platform-rx-api/crm/trigger-campaign/trigger-controller-process-trigger-action
*/
await this.axiosInstance.post(
'https://customer-domain.gamanzaengage.com/rx-api/campaign/v1/trigger/send',
{
"playerId": "00000000-0000-0000-0000-000000000001",
"eventName": "video-view",
"version": "1",
"eventDate": "2024-03-26T20:59:32.000Z",
"payload": [
{
"key": "url",
"type": "string",
"value": "https://www.youtube.com/watch?v=5BsFnk83NMI&ab_channel=KnightRiderOfficial"
},
{
"key": "score",
"type": "number",
"value": "10"
},
{
"key": "feeling",
"type": "enum",
"value": "1",
"options": [
{
"key": "nostálgico",
"value": "1"
},
{
"key": "ação",
"value": "2"
},
{
"key": "drama",
"value": "3"
},
{
"key": "animado",
"value": "4"
}
]
}
],
"keepCounter": true
});
O valor de cada propriedade deve ser definido na representação de string.
Take into consideration that type validations are performed to ensure data consistency. For example, if you define
the score as a number but you send a string value not numerical or a non valid numeric string value, the
request will end with an HTTP status code 400:
{
"message": "Exceção de Solicitação Inválida",
"request": {...}
"details": {
"faultCode": 400,
"fields": [
{
"field": "1.value",
"error": "o valor deve ser uma string numérica"
}
]
}
}
Neste exemplo básico, como você pode ver, as informações do evento são processadas e categorizadas pelo PEP e estão disponíveis para serem usadas pelo módulo de Campanha CRM, posteriormente para criar uma campanha transacional.
Uma Campanha Transacional para o PEP é qualquer Campanha CRM que é enviada por meio de eventos de gatilho.
Tudo isso acontece automaticamente em tempo real. O PEP é um sistema baseado em fluxo de dados reativo, isso significa que o sistema é projetado para operar e tomar decisões com base em dados atualizados em tempo real, que são transmitidos e processados de forma reativa, à medida que são gerados.
Agora vamos explicar alguns detalhes deste evento:
Como você viu no vídeo, o evento não existe no PEP. Uma vez que o PEP recebe o primeiro evento, a plataforma tenta resolver e analisar as informações contidas no evento para extrair todos os metadados com base nas propriedades definidas no payload e fornecer o contexto suficiente aos Operadores de Administração de Cassino para criar operações com base nas informações do evento.
Observe que a propriedade de configuração keepCounter está definida como verdadeiro. Isso gera automaticamente duas propriedades
no jogador:

Atualizações de rastreamento
Continuando com o nosso exemplo anterior, digamos que outro jogador 00000000-0000-0000-0000-000000000002 assiste a um vídeo
e define uma reação/sentimento diferente. Mas além disso, você quer enviar/expor outra propriedade no evento, chamada
viewDurationInSeconds para adicionar um filtro especial para enviar um Bônus a todos os jogadores que assistirem ao vídeo por mais de 2 minutos:
Details
importar axios de 'axios';
const axiosInstance = axios.create(...);
/**
* Processar dinamicamente ações de acionamento com base em eventos recebidos pelo jogador
* para playerID: 00000000-0000-0000-0000-000000000002
* Especificação da API: @url: https://docs.gamanzaengage.com/docs-api/platform-rx-api/crm/trigger-campaign/trigger-controller-process-trigger-action
*/
await this.axiosInstance.post(
'https://customer-domain.gamanzaengage.com/rx-api/campaign/v1/trigger/send',
{
"playerId": "00000000-0000-0000-0000-000000000002",
"eventName": "video-view",
"version": "1",
"eventDate": "2024-04-26T20:59:32.000Z",
"payload": [
{
"key": "url",
"type": "string",
"value": "https://www.youtube.com/watch?v=ElFDW8iElVY"
},
{
"key": "score",
"type": "number",
"value": "9"
},
{
"key": "feeling",
"type": "enum",
"value": "2",
"options": [
{
"key": "action",
"value": "2"
}
]
},
{
"key": "viewDurationInSeconds",
"type": "number",
"value": "247,8"
}
],
"keepCounter": true
});
Como você pode ver no vídeo, o PEP continua analisando o evento e verifica mudanças e atualiza o evento de acordo. Você só precisa se certificar de usar o mesmo nome de evento após aplicar as novas alterações.
Enviar comunicação para uma pessoa/indivíduo externo
Os eventos de acionamento permitem que você envie campanhas transacionais para indivíduos que não são jogadores registrados. Vamos supor, por exemplo, que você tenha em seu cassino um PopUp Indique um Amigo e queira enviar um e-mail com um código de indicação contido em um link para redirecionar o indivíduo para o seu cassino para se tornar um novo Jogador:
Details
importar axios de 'axios';
const axiosInstance = axios.create(...);
/**
* Processar dinamicamente ações de acionamento com base em eventos recebidos pelo jogador
* para playerID: 00000000-0000-0000-0000-000000000001
* Especificação da API: @url: https://docs.gamanzaengage.com/docs-api/platform-rx-api/crm/trigger-campaign/trigger-controller-process-trigger-action
*/
await this.axiosInstance.post(
'https://customer-domain.gamanzaengage.com/rx-api/campaign/v1/trigger/send',
{
"playerId": "00000000-0000-0000-0000-000000000001",
"eventName": "refer-friend-request",
"eventDate": "2024-03-26T20:59:32Z",
"payload": [
{
"key": "referUrl",
"type": "string",
"value": "https://www.my-casino.com/referal?code=foo-bar-123"
},
{
"key": "friendFirstName",
"type": "string",
"value": "Jane"
},
{
"key": "friendLastName",
"type": "string",
"value": "Doe"
}
],
"external": {
"isExternal": true,
"contactValue": "[email protected]",
"channel": "email",
"language": "EN"
},
"keepCounter": true
});
Agora, observe que as configurações externas são definidas, os componentes importantes aqui são:
isExternal: diz ao CRM para forçar o envio de uma campanha a um indivíduo externocontactValue: o e-mail para o indivíduo que você deseja direcionar com a campanhachannel: o canal que você deseja usar para enviar a comunicaçãolanguage: o idioma usado para criar o corpo da mensagem
Vamos ver o fluxo completo desde a criação do Modelo, a criação da Campanha, o envio do evento e, finalmente, a chegada do e-mail ao indivíduo.
-
Por padrão, a propriedade
isExternalcancela o evento que permite enviar a comunicação para um jogador. Se você quiser enviar um e-mail para um jogador, você é obrigado a enviar o evento duas vezes, mas da segunda vez com a propriedadeisExternalcom o valorfalse. Leve em consideração definir okeepCountercomotrueapenas para um dos dois eventos, caso você precise rastrear o total de convites com precisão. -
Devido à natureza dos eventos de acionamento, o playerID sempre é necessário, lembre-se de que seus jogadores são aqueles que acionam um evento específico.
Pontos de Aprendizado
- Quanto mais contexto você definir para os dados nos eventos, melhor será a experiência para os operadores administrativos.
- Tenha cuidado com o uso da propriedade
external. Lembre-se de que esse recurso permite o envio de comunicações para pessoas que estão fora de sua plataforma. - Os tipos de dados são seus amigos, use-os e defina-os corretamente para ajudar seus Operadores Administrativos a entender os dados contidos nos eventos.
- Tenha cuidado com a nomenclatura de seus eventos, seja consistente e evite alterações que possam quebrar suas campanhas. Se você precisar fazer alterações que quebrem a compatibilidade, certifique-se de informar seus Operadores Administrativos para que eles façam as mudanças nas regras de Campanhas CRM ou Contribuição de Gamificação.
A plataforma de Engajamento de Jogadores Gamanza oferece aos operadores e integradores um poderoso conjunto de ferramentas através de seu recurso de Eventos de Acionamento. Aproveitando esses eventos, os operadores ganham a capacidade de ajustar finamente as estratégias de CRM e as experiências de gamificação, melhorando, em última análise, o engajamento dos jogadores.
Com a flexibilidade de disparar gatilhos com base em atividades específicas dos jogadores, os Operadores Administrativos podem personalizar campanhas com precisão. A estrutura dos Eventos de Acionamento, juntamente com as propriedades e opções do payload, capacita os operadores a extrair insights valiosos e executar ações direcionadas de forma perfeita.
Além disso, a capacidade da plataforma de lidar com eventos internos e externos amplia o escopo das estratégias de engajamento, permitindo comunicações personalizadas além dos jogadores registrados. No entanto, é crucial exercer cautela, especialmente ao utilizar o recurso externo, para garantir uma comunicação eficaz sem comprometer a integridade dos dados.
Seguindo as melhores práticas, como manter a consistência na nomenclatura dos eventos, definir os tipos de dados com precisão e fornecer contexto abundante, os operadores podem otimizar os recursos da plataforma e oferecer experiências excepcionais aos jogadores. Em essência, com os Eventos de Acionamento do PEP, as possibilidades para impulsionar o engajamento dos jogadores são infinitas, limitadas apenas pela imaginação e perspicácia estratégica dos operadores.
Feliz integração!