Referência de Endpoints da API para PC e Console

Referência de Endpoints da API para PC e Console

Referência completa da API para os endpoints server-to-server de PC e Console, fornecendo especificações detalhadas de parâmetros e exemplos de implementação para o rastreamento de sessões e o reporte de eventos.

Referências relacionadas: PC e Console usam os mesmos endpoints de S2S que o restante da suíte. Consulte a referência do endpoint SESSION e a referência do endpoint EVENT para os equivalentes de dispositivos móveis e web. Esta referência cobre os endpoints de sessão e evento de PC e Console.

Recurso Enterprise: A atribuição de jogos de PC e Console é um recurso enterprise. Para saber mais, leia o FAQ de Atribuição de Jogos de PC e Console ou entre em contato com o seu Customer Success Manager.

Guia de Integração: Para instruções completas de implementação e boas práticas, consulte o Guia de Integração S2S para PC e Console .


Endpoint de Notificação de Sessão

Reporte lançamentos de jogos e sessões para a Singular para atribuição de instalação, rastreamento de re-engajamento e análise de retenção de usuários.

Especificação do Endpoint

Método URL
POST https://s2s.singular.net/api/v1/launch

Os parâmetros são enviados como um corpo de requisição application/x-www-form-urlencoded . Inclua o seguinte cabeçalho obrigatório:

Content-Type: application/x-www-form-urlencoded

Finalidade

Use o Endpoint de Notificação de Sessão para reportar todos os lançamentos de jogos (primeiras sessões e sessões repetidas) em tempo quase real. O primeiro lançamento de jogo recebido pela Singular para uma instalação identificada pelo Singular Device ID aciona o processo de atribuição.

Fluxo de Atribuição:

  • Primeira Sessão: Aciona a correspondência de atribuição de instalação com cliques de campanhas web
  • Sessões Subsequentes: Rastreadas para análise de atividade do usuário, retenção e re-engajamento
  • Reporte em Tempo Real: Envie as notificações de sessão o mais próximo possível do lançamento real do jogo

Parâmetros de Sessão

Parâmetros Obrigatórios

Parâmetro Detalhes
a

Tipo: String
Obrigatório. SDK Key da Singular para autenticação na API.
Obtenha em: Singular UI → Menu principal → Developer Tools .

Importante: Não use a Reporting API Key. As requisições serão rejeitadas.

Exemplo: sdkKey_afdadsf7asf56

p

Tipo: String
Obrigatório. Diferencia maiúsculas de minúsculas. Plataforma onde o usuário joga.
Valores Suportados:
Exemplo: PC

  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
i

Tipo: String
Obrigatório. Diferencia maiúsculas de minúsculas. Notação DNS reversa recomendada. Identificador do jogo exclusivo para o seu jogo.

Crítico: Deve corresponder exatamente ao Product ID do Web SDK para que a atribuição funcione. Use o mesmo valor em todas as plataformas para o mesmo jogo.

Exemplo: com.singular.game

sdid

Tipo: UUIDv4
Obrigatório. Formato UUID versão 4 recomendado. Singular Device ID que identifica a instalação exclusiva do jogo e a atividade do usuário.
Geração: Criado pelo jogo/servidor no primeiro lançamento, persiste durante toda a vida útil da instalação do jogo.
Exemplo: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

os

Tipo: String
Obrigatório. Valores personalizados suportados. Sistema Operacional ou Sistema de Jogo.
Valores recomendados por plataforma:
PC: windows, linux, macos, steamos
Xbox: xbox_one, xbox_360, xbox_series_s, xbox_series_x
PlayStation: playstation_3, playstation_4, playstation_5
Nintendo: nintendo_switch
Meta Quest: metaquest, metaquest_2, metaquest_pro
Exemplo: windows

install_source

Tipo: String
Obrigatório. Valores personalizados suportados. Loja do jogo ou método de distribuição.
Valores Recomendados:
Valores personalizados suportados.
Exemplo: steam

  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • xbox
  • playstation
  • nintendo
  • metaquest
  • selfdistributed
ip

Tipo: String
Obrigatório. Formato IPv4 ou IPv6. Não é obrigatório se use_ip=true . Endereço IP do dispositivo no momento do lançamento do jogo.

Alternativa: Use use_ip=true para extrair o IP do cabeçalho da requisição HTTP em vez de passá-lo explicitamente.

Exemplo: 172.58.29.235


Parâmetros Opcionais

Os seguintes parâmetros opcionais são suportados.

Parâmetro Detalhes
install_ref

Tipo: String
Opcional. Somente no primeiro lançamento. Informações do Google Install Referrer em JSON codificado em URL. Fornece a atribuição mais precisa para jogos nativos de PC distribuídos pela loja Google Play Games.

Requisitos:

  • Requer a implementação do Play Games PC SDK para passar o valor
  • Deve ser enviado somente no primeiro lançamento do jogo

Consulte a documentação do Google Play for Native PC Install Referrer para detalhes de implementação.
Exemplo: %7B%22install_time_epoch_seconds%22%3A%221568939453%22
%2C%22install_referrer%22%3A%22utm_source%3Dgoogle-play%26utm_medium%3Dorganic%22%7D

match_id

Tipo: String
Opcional. Somente no primeiro lançamento. Identificador para correspondência de atribuição determinística entre cliques web e instalações de jogos.

Requisitos:

  • Deve ser enviado somente no primeiro lançamento do jogo
  • Deve corresponder ao valor da implementação do Web SDK
  • Se for PII, deve ser hasheado usando SHA-256

Consulte Atribuição por Match ID para detalhes de implementação.
Exemplo: matchid_12345

av

Tipo: String
Opcional. Versão da aplicação ou identificador da build do jogo.
Exemplo: 1.1.5.581823a

global_properties

Tipo: JSON
Opcional. JSON codificado em URL. Até 5 propriedades, no máximo 200 caracteres cada. Pares de chave-valor salvos para o usuário e mantidos em todas as requisições subsequentes.
Não enviar um valor definido anteriormente o remove.
Exemplo: %7B%22key1%22%3A%22value1%22%7D

install

Tipo: Boolean
Opcional. Flag de instalação que indica a primeira sessão após a instalação do jogo. Obrigatório para os recursos de rastreamento de reinstalação.
Exemplo: true

utime

Tipo: Integer
Opcional. Timestamp UNIX (segundos). Timestamp do lançamento do jogo em tempo UNIX.
Exemplo: 1483228800

umilisec

Tipo: Integer
Opcional. Timestamp UNIX (milissegundos). Timestamp do lançamento do jogo em tempo UNIX.
Exemplo: 1483228800000

ve

Tipo: String
Opcional. Exemplo: 9.2

Versão do sistema operacional do dispositivo no momento da sessão.
ua

Tipo: String
Opcional. String de User Agent codificada em URL.
Bruto: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Exemplo: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Tipo: Boolean
Opcional. Instrui a Singular a extrair o endereço IP da requisição HTTP em vez do ip parâmetro.

Limitações:

  • Impede a geolocalização baseada em IP pela Singular.
  • Forneça um código de país de duas letras pelo country parâmetro.
  • Mutuamente exclusivo com o ip parâmetro — não use ambos.
  • Deve fornecer ip ou use_ip para evitar a rejeição de dados.

Exemplo: true

data_sharing_options

Tipo: JSON
Opcional. Consentimento do usuário final para compartilhamento de dados em JSON codificado em URL. Deve persistir e ser passado em todas as requisições SESSION e EVENT subsequentes.
Usuário consentiu (opt-in):
Usuário recusou (opt-out):
Exemplo: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Tipo: String
Opcional. Seu ID de usuário interno para rastreamento entre dispositivos.

Sem PII: Não passe informações de identificação pessoal. Use um identificador interno com hash ou anonimizado de outra forma, e não endereços de e-mail, números de telefone ou nomes brutos.

Exemplo: 123456789abcd


Exemplos de Requisição

Implementações de Exemplo

CURL PYTHON JAVASCRIPT

Requisição de Sessão Básica

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235"

Primeiro Lançamento com Match ID

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235" \
  --data-urlencode "match_id=abc123def456" \
  --data-urlencode "install=true"

Endpoint de Notificação de Evento

Suporte à Conversion API de parceiros: Para encaminhar esses eventos para os parceiros de rede de anúncios por meio das integrações da Conversion API da Singular, inclua os atributos de evento opcionais padrão (dados primários hasheados como eventId e ehash ). Consulte Atributos de Evento Padrão para Integrações da Conversion API .

Reporte eventos in-game para a Singular para análise, otimização de campanhas e encaminhamento a parceiros.

V2 obrigatório a partir de 15 de julho de 2026. Contas criadas em 15 de julho de 2026 ou depois devem usar o Event Endpoint V2 (baseado em SDID); a V1 não está disponível para novas contas. Clientes existentes já integrados na V1 não são afetados. Entre em contato com seu Customer Success Manager da Singular se quiser migrar para a V2.

Especificação do Endpoint

Método URL
POST https://s2s.singular.net/api/v2/evt

Os parâmetros são enviados como um corpo de requisição application/x-www-form-urlencoded . Inclua o seguinte cabeçalho obrigatório:

Content-Type: application/x-www-form-urlencoded

Finalidade

Use o Endpoint de Notificação de Evento para reportar todos os eventos in-game desejados em tempo quase real. Os dados de eventos são usados para análise, reporte, otimização de parceiros e medição de desempenho de campanhas.

Boas Práticas de Eventos:

  • Eventos Padrão: Use os nomes de eventos padrão da Singular para o mapeamento automático de parceiros
  • Reporte em Tempo Real: Envie os eventos o mais próximo da ocorrência real possível
  • Eventos de Receita: Inclua os parâmetros de receita para o rastreamento de compras e a análise de ROI

Parâmetros de Evento

Parâmetros Obrigatórios

Parâmetro Detalhes
a

Tipo: String
Obrigatório. SDK Key da Singular para autenticação na API.
Obtenha em: Singular UI → Menu principal → Developer Tools .

Importante: Não use a Reporting API Key. As requisições serão rejeitadas.

Exemplo: sdkKey_afdadsf7asf56

p

Tipo: String
Obrigatório. Diferencia maiúsculas de minúsculas. Plataforma onde o usuário joga.
Valores Suportados: PC, Xbox, Playstation, Nintendo, MetaQuest
Exemplo: PC

i

Tipo: String
Obrigatório. Diferencia maiúsculas de minúsculas. Notação DNS reversa recomendada. Identificador do jogo exclusivo para o seu jogo.
Deve corresponder ao valor usado nas notificações de sessão e ao Product ID do Web SDK.
Exemplo: com.singular.game

sdid

Tipo: UUIDv4
Obrigatório. Singular Device ID que identifica a instalação exclusiva do jogo.
Deve corresponder ao SDID usado nas notificações de sessão.
Exemplo: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

n

Tipo: String
Obrigatório. No máximo 32 caracteres ASCII. Nome do evento que identifica uma ação ou marco in-game.

Recomendado: Use os nomes de eventos padrão da Singular para integração automática de parceiros.

Exemplo: sng_achievement_unlocked

os

Tipo: String
Obrigatório. Valores personalizados suportados. Sistema Operacional ou Sistema de Jogo.
Deve corresponder ao valor usado nas notificações de sessão.
Exemplo: windows

install_source

Tipo: String
Obrigatório. Valores personalizados suportados. Loja do jogo ou método de distribuição.
Deve corresponder ao valor usado nas notificações de sessão.
Exemplo: steam

ip

Tipo: String
Obrigatório. Formato IPv4 ou IPv6. Não é obrigatório se use_ip=true . Endereço IP do dispositivo no momento do evento.
Exemplo: 172.58.29.235


Parâmetros Opcionais

Os seguintes parâmetros opcionais são suportados.

Parâmetro Detalhes
e

Tipo: JSON
Opcional. JSON codificado em URL, no máximo 500 caracteres ASCII por atributo. Atributos de evento personalizados que fornecem informações ricas sobre o evento.

Recomendado: Use os nomes de atributos padrão da Singular para compatibilidade com parceiros.

Exemplo: %7B%22sng_attr_content_id%22%3A5581%7D

is_revenue_event

Tipo: Boolean
Obrigatório para eventos de receita. Marca o evento como um evento de receita.
Pode ser omitido se o nome do evento for __iap__ ou se um amt diferente de zero for fornecido.
Exemplo: true

amt

Tipo: Number
Obrigatório para eventos de receita. Valor monetário do evento de receita.
Use com o parâmetro cur .
Exemplo: 2.51

cur

Tipo: String
Obrigatório para eventos de receita. Código de moeda de três letras ISO-4217 do evento de receita.
Use com o parâmetro amt .
Referência: Códigos de Moeda ISO-4217
Exemplo: EUR

av

Tipo: String
Opcional. Versão da aplicação ou identificador da build do jogo.
Exemplo: 1.1.5.581823a

global_properties

Tipo: JSON
Opcional. JSON codificado em URL. Até 5 propriedades, no máximo 200 caracteres cada. Pares de chave-valor salvos para o usuário.
Devem persistir em todas as requisições subsequentes, se definidos.
Exemplo: %7B%22key1%22%3A%22value1%22%7D

utime

Tipo: Integer
Opcional. Timestamp UNIX (segundos). Timestamp do evento em tempo UNIX.
Exemplo: 1483228800

umilisec

Tipo: Integer
Opcional. Timestamp UNIX (milissegundos). Timestamp do evento em tempo UNIX.
Exemplo: 1483228800000

ve

Tipo: String
Opcional. Exemplo: 9.2

Versão do sistema operacional do dispositivo no momento da sessão.
ua

Tipo: String
Opcional. String de User Agent codificada em URL.
Bruto: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
Exemplo: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

Tipo: Boolean
Opcional. Instrui a Singular a extrair o endereço IP da requisição HTTP em vez do ip parâmetro.

Limitações:

  • Impede a geolocalização baseada em IP pela Singular.
  • Forneça um código de país de duas letras pelo country parâmetro.
  • Mutuamente exclusivo com o ip parâmetro — não use ambos.
  • Deve fornecer ip ou use_ip para evitar a rejeição de dados.

Exemplo: true

data_sharing_options

Tipo: JSON
Opcional. Consentimento do usuário final para compartilhamento de dados em JSON codificado em URL. Deve persistir e ser passado em todas as requisições SESSION e EVENT subsequentes.
Usuário consentiu (opt-in):
Usuário recusou (opt-out):
Exemplo: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

Tipo: String
Opcional. Seu ID de usuário interno para rastreamento entre dispositivos.

Sem PII: Não passe informações de identificação pessoal. Use um identificador interno com hash ou anonimizado de outra forma, e não endereços de e-mail, números de telefone ou nomes brutos.

Exemplo: 123456789abcd


Exemplos de Requisição

Implementações de Exemplo

CURL PYTHON JAVASCRIPT

Evento Padrão

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=sng_level_achieved" \
  --data-urlencode 'e={"sng_attr_level":"5","sng_attr_score":"1250"}' \
  --data-urlencode "ip=172.58.29.235"

Evento de Receita

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=__iap__" \
  --data-urlencode "is_revenue_event=true" \
  --data-urlencode "amt=9.99" \
  --data-urlencode "cur=USD" \
  --data-urlencode "ip=172.58.29.235"

Tratamento de Respostas

Ambos os endpoints retornam respostas JSON consistentes que exigem a validação do campo de status para determinar sucesso ou erro.

Formato da Resposta

Importante: Todas as respostas retornam código de status HTTP 200. Sempre valide o campo status do corpo da resposta para determinar sucesso ( ok ) ou falha ( error ).

Para a documentação completa de códigos de resposta e estratégias de tratamento de erros, consulte Códigos de Resposta e Tratamento de Erros de S2S .


Recursos Adicionais