--- title: "Atualizações esportivas em tempo real" slug: "realtime-sport-updates" updated: 2026-08-14T11:10:45Z published: 2026-08-14T11:10:45Z canonical: "docs.xtremepush.com/realtime-sport-updates" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Atualizações esportivas em tempo real  Mantenha os fãs informados conforme as partidas acontecem em tempo real, com base no interesse registrado As Atualizações de Esportes em Tempo Real do Xtremepush permitem que você envie campanhas ativadas baseadas em atualizações de partidas em tempo real. > [!NOTE] > Não consegue ver essa opção? > > A Atualização de Esportes em tempo real é um recurso pago. Se desejar habilitá-la, por favor, entre em contato com seu Gerente de Conta para obter informações sobre preços. > [!WARNING] > Identificações de eventos do Sport Radar são necessárias > > Esse recurso depende do feed do Sport Radar, que utiliza os IDs do Bet Radar `sport_event` para identificar de qual partida o usuário deseja receber atualizações. > > Atualmente, não há mapeamento disponível para `sport_event` IDs de outros provedores de feeds, então é recomendado que você use esse recurso apenas se puder fornecer IDs do Sport Radar Bet Radar `sport_event` a partir da sua própria plataforma de apostas esportivas e jogos. ## Etapas de conexão e configuração A configuração do recurso de Atualizações de Esportes em Tempo Real é feita em 4 etapas. ### 1. Ativar o feed Ative o feed para que os eventos de jogo recebidos sejam repassados para o projeto. Esses eventos serão usados para [desencadear campanhas](doc:#create-api-campaigns). Acesse: **Configurações > Integrações > Marketplace** e selecione a **integração Atualizações de Esportes em Tempo Real**. ### 2. Selecionar esportes Após ativar o feed, há uma opção para selecionar o esporte cujos eventos ao vivo serão usados para acionar as campanhas. A integração atual apoia eventos esportivos de futebol, NBA, MLB, NFL e NHL. ### 3. Pré-selecionar a identidade do cliente Após selecionar o esporte, há uma opção para selecionar o identificador único a ser usado por usuários/dispositivos individuais. A seleção aqui é a mesma que seria usada ao configurar uma [lista de usuários](/documentation/docs/pt-br/create-a-user-list). Para oferecer a funcionalidade de Atualizações de Esportes em Tempo Real para usuários logados, seu [ID de usuário](/documentation/docs/pt-br/set-user-id) pode ser passado para o Xtremepush ao se cadastrar para acompanhar uma partida (mais sobre isso abaixo). > [!TIP] > Identifique seus usuários pelo ID do Dispositivo > > Para que você também possa enviar atualizações para usuários deslogados ou registrar interesse por dispositivo, sugere-se que configure e passe o ID do dispositivo Xtremepush. > > Registrar por dispositivo exige que você integre o SDK Xtremepush no seu app para que o ID do dispositivo Xtremepush possa ser rastreado e armazenado no seu app. Revise guias dedicados sobre como integrar o SDK Xtremepush no seu [site](/documentation/docs/pt-br/website-integration), [Android](/documentation/docs/pt-br/android-integration) e [app iOS](/documentation/docs/pt-br/ios-integration) . ### 4. Vincular eventos do jogo às campanhas Uma vez concluída a preparação, é importante vincular qual campanha será acionada por qual evento esportivo. Por exemplo, você pode querer que uma campanha que contenha o placar atual seja enviada quando o jogo chegar ao intervalo. Para mais informações sobre como construir as campanhas, [veja a seção abaixo](doc:#create-api-campaigns). Para fazer a seleção, navegue até **Configurações > Integrações > Marketplace > Integrações Configuradas > Atualizações Esportivas em Tempo Real > Visão Geral**. Depois, selecione um dos eventos disponíveis e escolha qual campanha acionar quando esse evento for disparado. ![2260](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/bea3935-Screenshot_2021-10-08_at_08.40.45(1).png?sv=2026-02-06&spr=https&st=2026-11-04T20%3A58%3A54Z&se=2026-11-04T21%3A58%3A54Z&sr=c&sp=r&sig=IHOozqTuiT3DjTi1s4iW7%2BAHsUS1YMrFWDjantFMnwM%3D) Neste exemplo, você pode mapear o evento de mudança de pontuação para uma campanha específica. ## Registre que um cliente está seguindo uma partida Para que um cliente receba as campanhas acionadas, você deve registrar seu ID único para acompanhar um *evento esportivo* ou partida específica, usando o [método Follow API](ref:realtime-sports-follow). Após receber os dados do usuário ou dispositivo, o Xtremepush os adicionará a uma lista que pode ser encontrada abaixo: **Dados > Audiências > feeds esportivos**. > [!TIP] > Listas de feeds esportivos > > Revise essas listas durante a configuração para verificar se os IDs estão sendo recebidos e armazenados corretamente. ### Desregistre um cliente após uma correspondência Para remover um cliente de acompanhar um evento esportivo, você deve usar o [método da API Deixar de Seguir](ref:realtime-sports-unfollow). ## Criar campanhas de API Eventos recebidos pelo projeto acionarão quaisquer campanhas mapeadas que precisarão ser configuradas como [campanhas acionadas pela API](/documentation/docs/pt-br/create-campaign#api-triggered-campaign). Ao criar o conteúdo das mensagens, [valores dinâmicos](/documentation/docs/pt-br/dynamic-programmable-content) podem ser extraídos do feed recebido e exibidos, dependendo do tipo de evento esportivo. Exemplo de token provisório: `{{ payload.event.home_score }}`. ### Exemplos de conteúdo de campanha Abaixo está um conteúdo de exemplo que pode ser usado para cada um dos Eventos oferecidos na **seção de Visão Geral > Mapeamento** . **Partida iniciada** ```MatchStarted Match started {{ payload.event.home_team }} - {{ payload.event.away_team }} ``` **Partida Interrompida** ```BreakStart Half time {{ payload.event.home_team }} ({{ payload.event.home_score }}) - ({{ payload.event.away_score }}) {{ payload.event.away_team }} ``` **Início do período** ```PeriodStart Second half started {{ payload.event.home_team }} - {{ payload.event.away_team }} ``` **Partida encerrada** ```MatchEnded Match ended {{ payload.event.home_team }} ({{ payload.event.home_score }}) - ({{ payload.event.away_score }}) {{ payload.event.away_team }} ``` **Cartão Amarelo** ```YellowCard Yellow card {{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %} ``` **Cartão Amarelo/Vermelho** ```Yellow Red card {{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }} (second yellow) ``` **Cartão vermelho** ```RedCard Red card {{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }} ``` **Mudança de Placar** ```ScoreChange GOAL! {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} ({{ payload.event.home_score }}) - {{ payload.event.away_score }} {{ payload.event.away_team }} {% else %} {{ payload.event.home_team }} {{ payload.event.home_score }} - ({{ payload.event.away_score }}) {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }} ``` **Mudança de Placar - com detalhes do jogador** ```ScoreChange-withplayerdetail GOAL! {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} ({{ payload.event.home_score }}) - {{ payload.event.away_score }} {{ payload.event.away_team }} {% else %} {{ payload.event.home_team }} {{ payload.event.home_score }} - ({{ payload.event.away_score }}) {{ payload.event.away_team }} {% endif %} - {{ payload.event.player_name }} {{ payload.event.match_time }} ``` ## Adicione valores dinâmicos à campanha ### Valores dinâmicos do futebol Para partidas de futebol, a lista completa de campos disponíveis é a seguinte: | Valores dinâmicos disponíveis | Informações retornadas | Traduzido | | --- | --- | --- | | `metadata.sport_event_id` | O documento de identificação para a partida ou competição esportiva. | NA | | `payload.event.id` | O documento de identificação para cada evento individual recebido durante a partida ou competição esportiva. | NA | | `payload.event.match_clock` | Tempo decorrido em minutos e segundos: por exemplo, 9:23, 45:51 | NA | | `payload.event.match_time` | Minuto da partida: ex. 10', 45+1 | NA | | `payload.event.home_score` | Placar atual em casa | NA | | `payload.event.away_score` | Placar atual fora de casa | NA | | `payload.sport_event_status.aggregate_away_score` | Placar agregado fora de casa para jogos de várias partidas | | | `payload.sport_event_status.aggregate_home_score` | Placar agregado em casa para jogos de várias partidas | | | `payload.event.competitor` | `home` ou `away` | | | `payload.event.home_team` | Nome do time da casa | Sim | | `payload.event.away_team` | Nome do time visitante | Sim | | `payload.event.player_name` | Nome do nome do jogador que desencadeou o evento | Sim | | `payload.event.description` | Um dos seguintes valores possíveis: `goal`, `penalty`, `red_card`, `call_stands`, `call_overturned`, `no_goal`, `no_penalty`, , `no_red_card` | | | `payload.event.method` | Um dos seguintes valores possíveis: `penalty`, `own_goal`, `header`, `shot`, `free_kick` | | | `payload.event.type` | Um dos seguintes valores possíveis: `match_started`, `match_ended`, `period_start`, `score_change`, `yellow_card`, `yellow_red_card`, `red_card`, , `break_start` | | | `payload.event.players` | Objeto JSON contendo `id`, `name` e `type`. `type` é um dos valores possíveis: `scorer`, `assist`, `substituted_in`, `substituted_out` | Sim (apenas nomes dos jogadores) | #### Traduções Quando a linha é marcada como **Traduzido = Sim**, o marcador será substituído pelo idioma correto com base na variante do idioma da campanha. Fique atento que nem todos os times/jogadores terão tradução, e nem todos os idiomas estão disponíveis. Nesse caso, será usado o idioma padrão. ### Valores dinâmicos da NBA Para partidas da NBA, a lista completa de campos disponíveis é a seguinte: > [!NOTE] > Traduções para o feed da NBA > > O feed da NBA não suporta traduções. | Valores dinâmicos disponíveis | Informações retornadas | | --- | --- | | `payload.game.id` | A identificação da partida. | | `payload.event.id` | O documento de identificação de cada evento individual recebido durante a partida. | | `payload.event.clock` | Tempo decorrido em minutos e segundos: por exemplo, 9:23, 45:51 | | `payload.event.home_points` | Placar atual em casa | | `payload.event.away_points` | Placar atual fora de casa | | `payload.event.competitor` | `home` ou `away` | | `payload.event.home_team` | Nome do time da casa | | `payload.event.away_team` | Nome do time visitante | | `payload.event.player_name` | Nome dos jogadores envolvidos no evento que desencadeou (somente no caso de expulsões) | | `payload.event.event_type` | Um dos seguintes valores possíveis: `match_started`, `match_ended`, `period_start`, `period_ended`, `ejection` | | `payload.event.players` | Objeto JSON contendo `id`, `full_name` e `jersey_number`. | ### Valores dinâmicos do basquete Para partidas de basquete, a lista completa de campos disponíveis é a seguinte: > [!NOTE] > Traduções para o feed de basquete > > O feed de basquete suporta traduções para nomes de times e jogadores em 24 idiomas: dinamarquês, alemão, grego, inglês, espanhol, finlandês, francês, hindi, húngaro, indonésio, italiano, japonês, coreano, holandês, norueguês, português, russo, sérvio, sérvio latino, sueco, tailandês, turco, chinês (simplificado) e chinês (tradicional). > > Na tabela abaixo, onde a linha é marcada como **Traduzido = Sim**, o marcador será substituído pelo idioma correto com base na variante do idioma da campanha. | Valores dinâmicos disponíveis | Informações retornadas | Tipo | Traduzido | | --- | --- | --- | --- | | `payload.event.id` | O documento de identificação de cada evento individual recebido durante a partida. | Integer | | | `payload.event.event_type` | O tipo de evento. Pode ter os seguintes valores possíveis: `match_started`, `period_start`, `break_start`, `score_change`, ou`match_ended`**Nota**: `break_start` é usado para marcar o fim de um quarto/período, não apenas o intervalo. | Corda | | | `payload.event.time` | Carimbo de data e hora do evento. Por exemplo: `2026-01-31T16:17:33+00:00` | Data | | | `payload.event.match_time` | O tempo da partida passou em minutos | Integer | | | `payload.event.match_clock` | Relógio de jogo, por exemplo, `10:13` | Corda | | | `payload.event.home_score` | Placar atual em casa | Integer | | | `payload.event.away_score` | Placar atual fora de casa | Integer | | | `payload.event.home_team` | Nome do time da casa | Corda | Sim | | `payload.event.away_team` | Nome do time visitante | Corda | Sim | | `payload.event.competitor` | Identifica se a equipe envolvida no evento é `home` ou `away` | Corda | | | `payload.event.points` | O tipo de ponto marcado ou tentado. Por exemplo, `1`, `2` ou `3` | Integer | | | `payload.event.x` | Coordenada X de onde o evento ocorreu | Integer | | | `payload.event.y` | Coordenada Y do local onde o evento ocorreu | Integer | | | `payload.event.player.id` | ID de jogador de radar esportivo para o jogador envolvido no evento | Integer | | | `payload.event.player.name` | Nome do jogador que desencadeou o evento junto com detalhes do jogador | Corda | Sim | | `payload.event.player_name` | Nome do jogador que desencadeou o evento | Corda | Sim | | `payload.event.period_name` | O nome atual do período. Por exemplo, `2nd_quarter`, `3rd_quarter` | Corda | | | `payload.event.break_name` | O evento atual da pausa. Por exemplo, `1st_pause` ou`halftime`. | Corda | | | `payload.sport_event_status.status` | O status da partida. Por exemplo, `live`, `ended`, ou`postponed` | Corda | | | `payload.sport_event_status.clock.played` | O tempo que foi jogado no período atual, por exemplo, `10:13`. Mesmo valor que `payload.event.match_clock` | Corda | | | `payload.sport_event_status.clock.remaining` | O tempo restante no período atual, por exemplo, `09:23`. Inverso de `payload.sport_event_status.clock.played` | Corda | | > [!NOTE] > Pontos de dados limitados para certos tipos de eventos > > Os `match_started`tipos , `match_ended`, e `break_start` eventos não incluem os seguintes pontos de dados: > > - load.event.competitor > - Pontos.evento.carga útil > - payload.event.x > - payload.event.y ### Valores dinâmicos da MLB Para partidas da MLB, a lista completa de campos disponíveis é a seguinte: > [!NOTE] > Traduções para o feed da MLB > > O feed da MLB não suporta traduções. | Valores dinâmicos disponíveis | Informações retornadas | | --- | --- | | `payload.game.id` | A identificação da partida. | | `payload.event.id` | O documento de identificação de cada evento individual recebido durante a partida. | | `payload.event.type` | O tipo de evento. Um dos seguintes valores possíveis: `match_started`, `break_start`, `key_period_start`, `period_startkey_period_end`, `period_end`, `match_endedhomerun` | | `payload.event.wall_clock.start_time` | Os horários de início do evento, incluindo fuso horário, por exemplo, `2023-06-29T17:12:33+00:00` | | `payload.event.wall_clock.end_time` | Os horários finais do evento, incluindo fuso horário, por exemplo, `2023-06-29T17:12:33+00:00` | | `payload.game.home.name` | O apelido do time da casa; por exemplo, Mets, Astros | | `payload.game.away.name` | O apelido do time visitante; por exemplo, Mets, Astros | | `payload.game.home.market` | A cidade do time da casa; por exemplo, Nova York, Houston | | `payload.game.away.market` | A cidade do time visitante; por exemplo, Nova York, Houston | | `payload.game.home_team` | O nome completo do time da casa que combina mercado e nome; por exemplo, New York Mets, Houston Astros | | `payload.game.away_team` | O nome completo do time visitante que combina mercado e nome; por exemplo, New York Mets, Houston Astros | | `payload.game.home.runs` | O número de corridas marcadas pelo time da casa | | `payload.game.away.runs` | O número de corridas marcadas pelo time visitante | | `payload.event.hitter.first_name` | O primeiro nome do jogador ao bastão | | `payload.event.hitter.last_name` | O sobrenome do jogador ao bastão | | `payload.event.hitter.id` | O ID do jogador no bastão | ### Valores Dinâmicos da NHL Para partidas da NHL, a lista completa de campos disponíveis é a seguinte: > [!NOTE] > Traduções para o feed da NHL > > O feed da NHL não suporta traduções. | Valores dinâmicos disponíveis | Informações retornadas | | --- | --- | | `payload.game.id` | A identificação da partida. | | `payload.event.id` | O documento de identificação de cada evento individual recebido durante a partida. | | `payload.event.event_type` | O tipo de evento. Um dos seguintes valores possíveis: `match_started`, `period_start`, `period_end`, `match_ended`, `score_change` | | `payload.event.clock` | O horário do jogo, por exemplo, `18:17` | | `payload.game.home.name` | O apelido do time da casa; por exemplo, Avalanche, Canucks | | `payload.game.away.name` | O apelido do time visitante; por exemplo, Avalanche, Canucks | | `payload.game.home.market` | A cidade do time da casa; por exemplo, Colorado, Vancouver | | `payload.game.away.market` | A cidade do time visitante; por exemplo, Colorado, Vancouver | | `payload.game.home_team` | O nome completo do time da casa que combina mercado e nome; por exemplo, Colorado Avalanche, Vancouver Canucks | | `payload.game.away_team` | O nome completo do time visitante que combina mercado e nome; por exemplo, Colorado Avalanche, Vancouver Canucks | | `payload.game.home_score` | Placar do time da casa em questão | | `payload.game.away_score` | Placar do time visitante em questão | | `payload.game.home.scoring[1].points` | Placar no 1º período para o time da casa | | `payload.game.home.scoring[2].points` | Placar no segundo período para o time da casa | | `payload.game.home.scoring[3].points` | Placar no 3º período para o time da casa | | `payload.game.away.scoring[1].points` | Placar no 1º período para o time visitante | | `payload.game.away.scoring[2].points` | Placar no segundo período para o time visitante | | `payload.game.away.scoring[3].points` | Placar no terceiro período para o time visitante | | `payload.event.attribution.name` | O nome detalha o time que marcou pontuações, para `score_change` eventos; por exemplo, Canucks | | `payload.event.attribution.market` | Os detalhes do mercado para o time que marcou pontuação, para `score_change` eventos, por exemplo, Vancouver | ### Valores Dinâmicos da NFL Para partidas da NFL, a lista completa de campos disponíveis é a seguinte: > [!NOTE] > Traduções para o feed da NFL > > O feed da NFL não suporta traduções. | Valores dinâmicos disponíveis | Informações retornadas | | --- | --- | | `payload.game.id` | A identificação da partida. | | `payload.event.id` | O documento de identificação de cada evento individual recebido durante a partida. | | `payload.event.type` | O tipo de evento. Um dos seguintes valores possíveis: `match_started`,`match_ended`, `score_change` | | `payload.event.clock` | O horário do jogo, por exemplo, `18:17` | | `payload.event.wall_clock` | Os horários de início do evento, incluindo fuso horário, por exemplo, `2022-06-29T17:12:33+00:00` | | `payload.game.home.name` | Apelido do time da casa; por exemplo, Chargers, Brancos | | `payload.game.away.name` | Apelido do time visitante; por exemplo, Chargers, Brancos | | `payload.game.home.market` | A cidade do time da casa; por exemplo, Los Angeles, Denver | | `payload.game.away.market` | A cidade do time visitante; por exemplo, Los Angeles, Denver | | `payload.game.home_team` | O nome completo do time da casa que combina mercado e nome; por exemplo, Los Angeles Chargers, Denver Brancos | | `payload.game.away_team` | O nome completo do time visitante que combina mercado e nome; por exemplo, Los Angeles Chargers, Denver Brancos | | `payload.game.home_score` | Placar do time da casa em questão | | `payload.game.away_score` | Placar do time visitante em questão | | `payload.game.home.scoring[1].points` | Placar no 1º período para o time da casa | | `payload.game.home.scoring[2].points` | Placar no segundo período para o time da casa | | `payload.game.home.scoring[3].points` | Placar no 3º período para o time da casa | | `payload.game.away.scoring[1].points` | Placar no 1º período para o time visitante | | `payload.game.away.scoring[2].points` | Placar no segundo período para o time visitante | | `payload.game.away.scoring[3].points` | Placar no terceiro período para o time visitante | ## Sintaxe dinâmica Usando uma [sintaxe dinâmica](/documentation/docs/pt-br/dynamic-programmable-content) básica, é possível percorrer a lista de jogadores envolvidos no evento específico: ```twig {% for player in payload.event.players %}    Player id: {{ player.id }}    Player Name: {{ player.name }}    Type: {{ player.type }} {% endfor %} ``` ## Competições disponíveis Você pode encontrar todas as partidas disponíveis navegando até **Listas de Dados > Públicos > Esportes.** ### Recuperar lista de competições (em lotes de 50.000) É possível puxar uma lista de correspondências disponíveis com até 10 dias de antecedência, usando a [*API da Lista*](/v1-api/docs/pt-br/list-lists) e especificando o tipo de lista conforme mostrado abaixo: 1ª chamada - primeiros 50000: ```json {   "condition": [     [ "external_type", "=", "sportradar" ]  ],   "apptoken": "xxxxxxxx",   "limit": 50000,   "offset": 0 } ``` Segunda chamada - segunda 50000: ```json {  "condition": [    [ "external_type", "=", "sportradar" ]  ],  "apptoken": "xxxxxxxx",  "limit": 50000,  "offset": 50000 } ``` ### Competição específica de recuperar Você também pode verificar a existência de uma partida ou jogo específico filtrando pelo id de evento externo da seguinte forma: ```json {  "condition": [    [ "external_id", "=", "{sport radar event id}" ]  ],  "apptoken": "xxxxxxxx", } ``` ## Atualizações dentro do jogo Quando uma atualização específica `sport_event` é recebida, o Xtremepush aciona a campanha mapeada acima e a envia para qualquer usuário/dispositivo atualmente na lista com o ID correspondente `sport_event` . ## Análise As análises para campanhas de API acionadas por uma integração de feed esportivo são as de acordo com [as análises normais de campanhas](/documentation/docs/pt-br/analytics-campaign-comparison) de API.