Guia de Integração de Jogos para PC e Console
Guia completo para implementar a atribuição de jogos para PC e Console com a Singular, permitindo medição e análise precisas de campanhas em plataformas de desktop e de jogos.
Recurso Enterprise: A atribuição de jogos para PC e Console é um recurso enterprise. Para saber mais, leia o FAQ de Atribuição de Jogos para PC e Console ou entre em contato com o seu Customer Success Manager.
Referências S2S compartilhadas: Este guia cobre as especificidades de PC e Console. Para os blocos de construção server-to-server compartilhados (endpoints, autenticação e parâmetros comuns), consulte o hub de Fundamentos de S2S . Para a referência completa de parâmetros de sessão e evento, consulte a Referência de Endpoints da API de PC e Console .
Visão Geral
Opções de Integração
A Singular oferece duas abordagens para a atribuição de jogos para PC e Console. Selecione o método que melhor se adequa aos seus requisitos de implementação e necessidades de atribuição.
| Método | Descrição | Caso de Uso |
|---|---|---|
| Singular Links para PC/Console |
Recomendado: Integração simplificada usando links de rastreamento Singular para atribuição probabilística. Não requer Web SDK. Método de Atribuição: Probabilística (correspondência baseada em IP) |
Implementação mais rápida com menor esforço de integração. Ideal para campanhas que direcionam usuários a lojas de terceiros (Steam, Epic, etc.) ou quando a integração do Web SDK não é viável. |
| Web SDK + Match ID |
Avançado: Atribuição aprimorada usando o Singular Web SDK em páginas de destino com correspondência determinística via Match ID. Métodos de Atribuição: Probabilística (baseada em IP) e Determinística (Match ID) |
Maior precisão de atribuição quando os usuários se autenticam nas páginas de destino. Necessário para os recursos de Web Attribution da Singular e para a atribuição determinística. |
Nota de Implementação: Ambos os métodos exigem a implementação da integração da API Server-to-Server (S2S) de PC/Console para reportar sessões e eventos do jogo. A diferença está em como os cliques de campanhas web são rastreados e associados às instalações do jogo.
Comparação de Fluxos de Atribuição
Fluxo de Singular Links para PC/Console:
- Usuário Clica no Singular Link: O usuário clica no link de rastreamento Singular em uma campanha de marketing
- Redirecionamento para a Página de Destino: O usuário é redirecionado para a página de destino ou loja (não requer Web SDK)
- Download e Instalação: O usuário baixa e instala o jogo
- Primeira Inicialização: O usuário inicia o jogo pela primeira vez
- Report via S2S: O jogo reporta a sessão via API S2S
- Atribuição Probabilística: A Singular associa a instalação do jogo ao clique no Singular Link com base no endereço IP
Fluxo de Web SDK + Match ID:
- Usuário Clica no Link da Campanha: O usuário clica no anúncio ou link da campanha de marketing
- Página de Destino com Web SDK: O usuário chega a uma página de destino com o Singular Web SDK implementado
- Captura do Clique: O Web SDK captura os dados do clique e gera um Match ID
- Autenticação do Usuário (Opcional): Se o usuário fizer login, o Match ID pode ser passado ao jogo para atribuição determinística
- Download e Instalação: O usuário baixa e instala o jogo
- Primeira Inicialização: O usuário inicia o jogo e, opcionalmente, recupera o Match ID
- Report via S2S com Match ID: O jogo reporta a sessão via API S2S com ou sem o Match ID
- Correspondência de Atribuição: A Singular realiza a correspondência determinística (se o Match ID for fornecido) ou probabilística (baseada em IP)
Integração Server-to-Server
Independentemente do método de atribuição escolhido, a implementação da integração da API S2S é obrigatória para toda atribuição de jogos para PC e Console.
Capacidades de Integração:
- Rastreamento de Sessões do Jogo: Reporte sessões e atividades de usuários em todas as inicializações do jogo
- Atribuição de Instalações: Atribua novas instalações do jogo a campanhas de marketing
- Análise de Eventos: Rastreie eventos in-game e interações de usuários para análise de funil
- Medição de Receita: Meça as compras in-game e o desempenho de monetização
- Suporte Multiplataforma: Rastreamento unificado em PC, Xbox, PlayStation, Nintendo e Meta Quest
Pré-requisitos
Antes de implementar a integração de PC e Console, certifique-se de que os seguintes requisitos sejam atendidos.
| Componente | Requisito |
|---|---|
| SDK Key |
Obtenha a Singular SDK Key no Dashboard → Developer Tools → SDK Integration → SDK Keys |
| Configuração do App |
Adicione o jogo para PC ou Console à Página de Apps da Singular. Para múltiplas plataformas do mesmo título, adicione todas ao mesmo "App" da Singular. |
| Seleção do Método de Atribuição |
Escolha a abordagem de atribuição com base nos requisitos de implementação:
|
Recursos de Documentação
Referência completa da API e guias de implementação para a integração de PC e Console.
Documentação de Integração:
- Referência da API S2S: Referência de Endpoints S2S para PC e Console
- FAQ de Atribuição: FAQ de Atribuição de Jogos para PC e Console
- Web SDK (Opcional): Visão Geral e Introdução ao Web SDK
- Singular Links: Visão Geral dos Singular Links
Método 1: Singular Links para PC/Console (Recomendado)
Abordagem de integração simplificada usando links de rastreamento Singular para atribuição probabilística sem exigir a implementação do Web SDK nas páginas de destino.
Implementação Recomendada: Este método oferece o caminho mais rápido para a atribuição de PC/Console com esforço mínimo de integração. Ideal para a maioria dos casos de uso.
Visão Geral
Como Funciona
Os Singular Links para PC/Console permitem a atribuição capturando os dados do clique diretamente no link de rastreamento, eliminando a necessidade de implementar o Web SDK nas páginas de destino.
Principais Benefícios:
- Não Requer Web SDK: Redirecione os usuários para qualquer página de destino, incluindo lojas de terceiros (Steam, Epic, etc.)
- Integração Simplificada: Requer apenas a implementação da API S2S no lado do jogo
- Implantação Rápida: Crie e lance campanhas rapidamente sem modificações nas páginas de destino
- Destinos Flexíveis: Suporte a redirecionamento único para qualquer URL de destino
Método de Atribuição:
- Probabilística (baseada em IP): A Singular associa a instalação do jogo ao clique no Singular Link com base no endereço IP e nas características do dispositivo
Etapas de Implementação
Etapa 1: Pré-requisitos
Certifique-se de que os seguintes requisitos sejam atendidos antes de criar Singular Links para PC/Console.
Obrigatório: Os app sites de PC/Console devem estar configurados na tela de Apps da Singular, e ao menos uma sessão de jogo deve ter sido enviada via API S2S para que o app site seja elegível à criação de Singular Links para PC/Console.
Etapa 2: Criar o Singular Link para PC/Console
Crie Singular Links para PC/Console no dashboard da Singular para rastrear cliques de campanha e habilitar a atribuição.
Etapas de Configuração:
- Acesse Manage Links: No dashboard da Singular, vá em Attribution → Manage Links
- Selecione o App: Escolha um App que tenha app sites de PC/Console configurados
- Crie um Novo Link: Clique no botão Create New Link
- Selecione o Tipo de Plataforma: No campo Platform Tracking Type, selecione "PC/Console"
- Configure o Alvo: Selecione um app site específico de PC/Console ou escolha a opção "Track all app sites under this app"
- Defina a URL de Destino: Configure a URL de redirecionamento (página de destino, página da loja, etc.)
- Configure as Definições de Atribuição: Defina as janelas de atribuição e os parâmetros de rastreamento conforme necessário
- Gere o Link: Salve e gere o link de rastreamento Singular
Tipos de Link: Os Links para PC/Console suportam Custom Sources e Partner Integrations selecionadas. São suportados tanto links de clique quanto de impressão.
Etapa 3: Implementar a Integração S2S
Implemente a integração da API Server-to-Server para reportar sessões e eventos do jogo. Consulte a seção Conceitos de Integração abaixo para obter os detalhes completos de implementação do S2S.
Implementação Necessária:
- Notificação de Sessão: Reporte as inicializações do jogo usando o Session Notification Endpoint
- Rastreamento de Eventos: Reporte eventos in-game e receita usando o Event Notification Endpoint
- Identificação de Dispositivo: Gere e persista um identificador único de dispositivo (SDID)
Etapa 4: Lançar Campanhas
Use os Singular Links para PC/Console gerados em campanhas de marketing para habilitar o rastreamento de atribuição.
Configuração da Campanha:
- Copie o Link de Rastreamento: Copie o Singular Link gerado em Manage Links
- Configure a Campanha: Use o Singular Link como URL de destino da campanha
- Lance a Campanha: Ative a campanha com o Singular Link
- Monitore a Atribuição: Visualize os dados de atribuição nos relatórios da Singular à medida que os usuários clicam nos links e iniciam o jogo
Correspondência de Atribuição
Como Funciona a Atribuição
Ao usar Singular Links para PC/Console, a Singular realiza a correspondência de atribuição probabilística com base no endereço IP e no tempo.
Processo de Atribuição:
- Usuário Clica no Singular Link: Os dados do clique são capturados pela Singular, incluindo endereço IP e timestamp
- Usuário Baixa o Jogo: O usuário prossegue para baixar e instalar o jogo
- Inicialização do Jogo: O usuário inicia o jogo pela primeira vez
- Report via S2S: O jogo reporta a sessão à Singular via API S2S, incluindo o endereço IP do usuário
- Correspondência Probabilística: A Singular associa a instalação do jogo ao clique no Singular Link com base no endereço IP dentro da janela de atribuição
- Atribuição Concluída: A instalação é atribuída à origem da campanha
Precisão de Atribuição: A atribuição probabilística oferece correspondência confiável para a maioria dos casos de uso. Para maior precisão de atribuição com correspondência determinística, considere implementar o método Web SDK + Match ID.
Método 2: Web SDK + Match ID (Avançado)
Abordagem de integração avançada usando o Singular Web SDK em páginas de destino com Match ID opcional para atribuição determinística quando os usuários se autenticam.
Recurso Avançado: Este método requer a implementação do Web SDK nas páginas de destino e esforço adicional de integração. Considere esta abordagem se você precisar dos recursos de Web Attribution da Singular ou de atribuição determinística via Match ID.
Visão Geral
Quando Usar Este Método
Implemente a abordagem Web SDK + Match ID quando o seu caso de uso exigir capacidades de atribuição aprimoradas além da correspondência probabilística básica.
Casos de Uso:
- Web Attribution: Você precisa dos recursos de Web Attribution da Singular e de web analytics
- Atribuição Determinística: Os usuários se autenticam nas páginas de destino e você deseja a maior precisão de atribuição
- Rastreamento Entre Dispositivos: Os usuários podem baixar o jogo em um dispositivo diferente daquele da visita à página de destino
- Análise Avançada: Você precisa de métricas detalhadas de engajamento web antes da instalação do jogo
Métodos de Atribuição:
- Probabilística (baseada em IP): Correspondência automática com base no endereço IP (igual aos Singular Links para PC/Console)
- Determinística (Match ID): Correspondência precisa usando um identificador único passado da página de destino ao jogo quando o usuário se autentica
Etapas de Implementação
Etapa 1: Implementar o Web SDK
Implemente o Singular Web SDK nas páginas de destino de marketing para capturar os dados do clique e habilitar a atribuição.
Requisito do Web SDK: A atribuição de PC e Console usando este método requer a implementação do Singular Web SDK nas páginas de destino de marketing. O Web SDK captura os dados do clique e habilita a correspondência de atribuição quando os usuários instalam e iniciam o seu jogo.
Implementação do Web SDK:
- Siga o Guia do Web SDK: Visão Geral e Introdução ao Web SDK
-
Configuração do Product ID:
O Product ID do Web SDK deve corresponder ao identificador do jogo (parâmetro
i) usado na integração S2S - Implantação na Página de Destino: Implante o Web SDK em todas as páginas de destino de marketing
Alinhamento de Configuração: O Product ID do Web SDK deve corresponder exatamente ao identificador do jogo na integração S2S para que a atribuição funcione. Esse alinhamento permite que a Singular conecte os cliques web às instalações do jogo.
Etapa 2: Implementar a Integração S2S
Implemente a integração da API Server-to-Server para reportar sessões e eventos do jogo. Consulte a seção Conceitos de Integração abaixo para obter os detalhes completos de implementação do S2S.
Implementação Necessária:
- Notificação de Sessão: Reporte as inicializações do jogo usando o Session Notification Endpoint
- Rastreamento de Eventos: Reporte eventos in-game e receita usando o Event Notification Endpoint
- Identificação de Dispositivo: Gere e persista um identificador único de dispositivo (SDID)
Etapa 3: Implementar o Match ID (Opcional)
Para atribuição determinística, implemente o Match ID para passar um identificador único da página de destino ao jogo quando os usuários se autenticam.
Recurso Opcional: A implementação do Match ID só é necessária se você desejar atribuição determinística. O Web SDK sozinho fornece atribuição probabilística sem o Match ID.
Implementação do Match ID:
-
Recupere o Match ID:
Use o método
getMatchID()do Web SDK após a autenticação do usuário - Passe ao Jogo: Implemente um mecanismo para passar o Match ID da web ao jogo (query parameter, API, etc.)
-
Inclua na Primeira Sessão:
Reporte o Match ID na primeira sessão do jogo via parâmetro
match_id
Consulte a seção Implementação do Match ID abaixo para obter as etapas detalhadas de integração do Match ID.
Correspondência de Atribuição
Como Funciona a Atribuição
Ao usar o Web SDK, a Singular realiza a correspondência de atribuição usando métodos probabilísticos ou determinísticos, dependendo de o Match ID ser fornecido.
Atribuição Probabilística (Sem Match ID):
- Usuário Clica na Campanha: O usuário clica no link da campanha de marketing
- Visita à Página de Destino: O Web SDK captura os dados do clique, incluindo o endereço IP
- Usuário Baixa o Jogo: O usuário baixa e instala o jogo
- Inicialização do Jogo: O usuário inicia o jogo pela primeira vez
- Report via S2S: O jogo reporta a sessão à Singular via API S2S
- Correspondência por IP: A Singular associa a instalação do jogo ao clique web com base no endereço IP
Atribuição Determinística (Com Match ID):
- Usuário Clica na Campanha: O usuário clica no link da campanha de marketing
- Visita à Página de Destino: O Web SDK gera um Match ID único
- Usuário se Autentica: O usuário faz login na página de destino
- Match ID Recuperado: A implementação recupera o Match ID do Web SDK
- Match ID Passado ao Jogo: O Match ID é passado ao jogo via query parameter, API ou outro mecanismo
- Usuário Baixa o Jogo: O usuário baixa e instala o jogo
- Inicialização do Jogo com Match ID: O usuário inicia o jogo e recupera o Match ID armazenado
-
Report via S2S com Match ID:
O jogo reporta a primeira sessão incluindo o parâmetro
match_id - Correspondência Determinística: A Singular associa a instalação do jogo ao clique web usando o Match ID para atribuição precisa
Conceitos de Integração
Conceitos e requisitos fundamentais para implementar a integração S2S de PC e Console com a Singular. Esses conceitos se aplicam a ambos os métodos de atribuição.
Autenticação
Todas as requisições à API S2S de PC e Console da Singular exigem autenticação por SDK key no parâmetro
a
. Para as mecânicas de autenticação compartilhadas (onde encontrar a sua SDK Key e como ela é passada), consulte
Autenticação em Fundamentos de S2S
.
Privacidade do Usuário
A Singular recomenda oferecer aos usuários finais a capacidade de dar opt in ou opt out do rastreamento. Para os parâmetros de privacidade compartilhados, incluindo
data_sharing_options
e Limit Data Sharing, consulte
Parâmetros de privacidade em Fundamentos de S2S
.
Plataformas Suportadas
Definição de Plataforma
A plataforma representa onde o usuário joga o jogo e deve ser passada no parâmetro
p
em todas as requisições da API S2S.
Valores de Plataforma Suportados:
-
pc- Plataformas de computador pessoal -
xbox- Consoles de jogos Microsoft Xbox -
playstation- Consoles de jogos Sony PlayStation -
nintendo- Consoles de jogos Nintendo -
metaquest- Headsets de VR Meta Quest
Sistemas Operacionais e Lojas
Além da plataforma, especifique o sistema operacional/de jogo via parâmetro
os
e a loja de distribuição via parâmetro
install_source
.
|
Plataforma
(
p
)
|
Sistema Operacional/de Jogo
(
os
)
|
Loja
(
install_source
)
|
|---|---|---|
| pc |
|
|
| xbox |
|
|
| playstation |
|
|
| nintendo |
|
|
| metaquest |
|
|
Valores Personalizados: Valores personalizados são suportados para os parâmetros de sistema operacional e loja, mas a Singular recomenda usar os valores padronizados acima para consistência e clareza nos relatórios.
Identificador do Jogo
Identificação da Aplicação
O identificador do jogo associa os eventos do jogo a um jogo específico e deve ser passado no parâmetro
i
em todas as requisições.
Requisitos do Identificador:
-
Formato:
Qualquer valor é suportado, mas a Singular recomenda a notação DNS reversa (por exemplo,
com.singular.game) - Consistência Entre Plataformas: O mesmo identificador do jogo deve ser usado para o mesmo jogo em todas as plataformas suportadas
- Alinhamento com o Web SDK (apenas Método 2): Se estiver usando o método Web SDK + Match ID, o identificador do jogo deve corresponder ao Product ID do Web SDK configurado nas páginas de destino para que a atribuição funcione
Alinhamento com o Web SDK: Se estiver usando o método de atribuição Web SDK + Match ID, o identificador do jogo usado na integração S2S deve corresponder exatamente ao Product ID configurado na sua implementação do Singular Web SDK . Esse alinhamento é essencial para que a Singular atribua as instalações do jogo aos cliques de campanhas web. Esse requisito não se aplica ao método de Singular Links para PC/Console.
Exemplos de Configuração:
| Implementação | Configuração |
|---|---|
| Web SDK (Método 2) |
|
| S2S API (PC) |
|
| S2S API (Xbox) |
|
| S2S API (PlayStation) |
|
Identificação de Dispositivo
Rastreamento de Instalações Únicas do Jogo
O identificador de instalação/dispositivo associa os eventos do jogo ao longo de múltiplas sessões da mesma instalação do jogo e deve ser passado no parâmetro
sdid
em todas as requisições.
Especificações do Identificador:
- Formato: Formato UUID Versão 4 recomendado
- Geração: Valor gerado pelo jogo/servidor na primeira inicialização do jogo (instalação)
- Persistência: Deve persistir durante toda a vida da instalação do jogo
- Unicidade: Cada instalação do jogo requer um identificador único
Exemplo:
sdid=40009df0-d618-4d81-9da1-cbb3337b8dec
Implementação do Match ID
O Match ID habilita a atribuição determinística para campanhas web passando um identificador único do Web SDK para a instalação do jogo. Este recurso só está disponível ao usar o método de atribuição Web SDK + Match ID.
Recurso Avançado Opcional: A implementação do Match ID só é necessária se você estiver usando o método de atribuição Web SDK + Match ID e desejar atribuição determinística. O método de Singular Links para PC/Console não suporta Match ID.
Como Funciona o Match ID:
- O Web SDK Gera o Match ID: O Singular Web SDK cria um Match ID único quando o usuário visita a página de destino
- Recupere o Match ID: Use os métodos do Web SDK para recuperar o Match ID da página de destino após a autenticação do usuário
- Passe ao Jogo: A sua implementação passa o Match ID da página web ao jogo durante o processo de download/instalação (por exemplo, query parameter, deep link, cookie)
-
Reporte na Primeira Inicialização:
O jogo inclui o Match ID na primeira notificação de sessão à Singular via parâmetro
match_id - Correspondência Determinística: A Singular usa o Match ID para correspondência de atribuição precisa
Métodos de Match ID do Web SDK
Implementação Nativa
O Singular Web SDK fornece métodos nativos para recuperar, definir e limpar valores de Match ID nas páginas de destino.
Métodos Disponíveis:
| Parâmetro | Detalhes |
|---|---|
getMatchID()
|
Recupera o Match ID único gerado pelo Singular Web SDK para a sessão web atual. Retorna: String contendo o valor do Match ID |
setMatchID(matchId)
|
Define um Match ID personalizado para a sessão web atual em vez de usar o valor gerado pela Singular.
Parâmetros:
|
clearMatchID()
|
Limpa o Match ID personalizado definido via
|
Exemplos de Implementação
Implementação Nativa do Web SDK
Use estes métodos diretamente após a inicialização do Singular Web SDK para recuperar e gerenciar os valores de Match ID.
Recuperar o Match ID
// Get the Singular-generated Match ID
const matchId = window.singularSdk.getMatchID();
console.log('Match ID:', matchId);
// Store Match ID for passing to game
localStorage.setItem('singular_match_id', matchId);
Definir um Match ID Personalizado
// Set your own Match ID value
const customMatchId = 'your-custom-match-id-123';
window.singularSdk.setMatchID(customMatchId);
console.log('Custom Match ID set:', customMatchId);
Limpar o Match ID
// Clear custom Match ID and revert to default
window.singularSdk.clearMatchID();
// Get the new default Match ID
const defaultMatchId = window.singularSdk.getMatchID();
console.log('Default Match ID restored:', defaultMatchId);
Exemplo Completo com Botão de Download
// Initialize Web SDK
const config = new SingularConfig(sdkKey, sdkSecret, productId)
.withInitFinishedCallback(() => {
console.log('Singular SDK initialized');
});
singularSdk.init(config);
// Handle download button click
document.getElementById('download-button').addEventListener('click', function() {
// Get Match ID before redirecting to download
const matchId = window.singularSdk.getMatchID();
// Pass Match ID to download page via query parameter
const downloadUrl = `https://example.com/download?match_id=${matchId}`;
// Redirect to download page
window.location.href = downloadUrl;
});
Implementação com Google Tag Manager
Use o template de tag oficial da Singular, Singular Web Tracking , no Google Tag Manager para recuperar o Match ID. Não crie manualmente uma tag Custom HTML que chame o SDK diretamente; o template carrega e inicializa o Web SDK para você e expõe o Match ID por meio de um Track Type.
- No GTM, crie uma nova tag e escolha o template Singular Web Tracking (by Singular Labs) como o Tag Type. Adicione-o pela Community Template Gallery caso ainda não esteja no seu container.
- Defina o Track Type como Get Match ID .
-
Defina o
Data Layer Key
com um nome de sua escolha, por exemplo
getMatchIDValue. O template escreve o Match ID atual nessa chave do dataLayer. -
Crie uma
Data Layer Variable
no GTM que leia
getMatchIDValue. -
Passe o valor dessa variável ao seu jogo, por exemplo anexando-o como
match_idna URL da loja ou de download usada para encaminhar o usuário ao jogo.
Dispare a tag Get Match ID no trigger que é executado logo antes do encaminhamento ao jogo (por exemplo, o clique no botão de download ou "Play on PC") para que o Match ID esteja preenchido antes do redirecionamento.
Valide a configuração no seu próprio container: confirme que a Data Layer Variable retorna um Match ID não vazio antes de o redirecionamento ser disparado. Um valor vazio significa que a tag base Singular Web Tracking ainda não foi inicializada na página.
Passando o Match ID ao Jogo
Estratégias de Implementação
Após recuperar o Match ID do Web SDK, implemente um mecanismo para passar o valor da página de destino à instalação do jogo.
Abordagens Comuns:
| Método | Implementação | Caso de Uso |
|---|---|---|
| Query Parameter |
Anexe o Match ID à URL de download como query parameter.
|
Downloads diretos em que a página de download pode extrair o parâmetro e passá-lo ao instalador do jogo |
| Armazenamento em Cookie |
Armazene o Match ID em um cookie de primeira parte acessível pela página de download do jogo.
|
Fluxos de múltiplas páginas em que o Match ID precisa persistir entre navegações |
| Local Storage |
Armazene o Match ID no local storage do navegador.
|
Cenários de mesmo domínio em que a página de destino e a página de download compartilham o armazenamento |
| Deep Link |
Incorpore o Match ID em um esquema de deep link personalizado para inicialização direta do jogo.
|
Implementações avançadas com handlers de protocolo personalizados |
| API Server-Side |
Envie o Match ID a uma API do servidor; o jogo o recupera via requisição autenticada. |
Implementações seguras que exigem validação server-side e autenticação do usuário |
Implementação da API S2S
Reportando o Match ID
Uma vez que o jogo recupere o Match ID da implementação web, inclua-o na primeira notificação de sessão à Singular para a correspondência de atribuição.
Timing Crítico: O Match ID deve ser incluído na notificação da primeira sessão do jogo (instalação) para que a atribuição funcione. Enviar o Match ID em sessões subsequentes não habilita a correspondência de atribuição.
Requisição de Sessão com Match ID:
import requests
def report_first_session_with_match_id(sdk_key, game_id, device_id, platform, match_id):
"""
Report first game session with Match ID for attribution
"""
session_url = "https://s2s.singular.net/api/v1/launch"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'os': 'windows',
'install_source': 'steam',
'ip': get_user_ip(),
'match_id': match_id # Include Match ID for attribution
}
response = requests.get(session_url, params=params)
return response.json()
# Example: First launch with Match ID
report_first_session_with_match_id(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
match_id='abc123def456' # Retrieved from landing page
)
curl -G "https://s2s.singular.net/api/v1/launch" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--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"
async function reportFirstSessionWithMatchId(config) {
const sessionUrl = 'https://s2s.singular.net/api/v1/launch';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'os': config.osVersion,
'install_source': config.store,
'ip': await getUserIP(),
'match_id': config.matchId // Include Match ID
});
const response = await fetch(`${sessionUrl}?${params.toString()}`);
return await response.json();
}
// Example: First launch with Match ID
reportFirstSessionWithMatchId({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
osVersion: 'windows',
store: 'steam',
matchId: 'abc123def456' // Retrieved from landing page
});
Melhores Práticas de Match ID
Checklist de Implementação
Requisitos Completos de Implementação:
- Integração do Web SDK: Implemente o Singular Web SDK nas páginas de destino com Product ID correspondente
-
Recuperação do Match ID:
Use
getMatchID()para recuperar o valor após a autenticação do usuário - Transmissão do Valor: Implemente um mecanismo seguro para passar o Match ID da web ao jogo
- Armazenamento no Jogo: Armazene o Match ID no jogo até o report da primeira inicialização/sessão
-
Apenas na Primeira Sessão:
Inclua o parâmetro
match_idapenas na notificação da primeira sessão - Validação do Valor: Verifique se o valor do Match ID corresponde entre as implementações web e do jogo
- Testes: Teste o fluxo completo desde o clique na página de destino até a instalação do jogo e a atribuição
Para detalhes completos sobre a metodologia de atribuição e solução de problemas, consulte o FAQ de Atribuição de Jogos para PC e Console .
Rastreamento de Sessões do Jogo
Reportar as sessões do jogo à Singular é obrigatório na integração de PC e Console, permitindo a atribuição de instalações, o rastreamento de re-engajamento e a análise de retenção de usuários.
Session Notification Endpoint
Requisito de Implementação
Chame o Session Notification Endpoint sempre que o jogo for iniciado para notificar a Singular sobre a sessão do jogo.
Referência da API: Para a especificação completa do endpoint, consulte a documentação do Session Notification Endpoint .
Processamento de Sessões
Fluxo de Trabalho de Atribuição
As notificações de sessão permitem que a Singular execute múltiplas funções de atribuição e análise com base no contexto da sessão.
Lógica de Processamento:
- Primeira Sessão (Instalação): Se for a primeira sessão do jogo após uma instalação única, a Singular reconhece a nova instalação e aciona o processo de atribuição de instalação
- Sessão de Re-engajamento: Se a sessão se qualificar como re-engajamento (em breve), a Singular aciona o processo de atribuição de re-engajamento (consulte o FAQ de Re-engajamento )
- Sessão Regular: Caso contrário, é marcada como sessão de jogo para rastreamento de atividade e retenção do usuário
Melhores Práticas de Implementação
Coleta Assíncrona de Dados
Ao coletar dados para reportar a sessão do jogo, aguarde o retorno das funções assíncronas e trate as diversas funcionalidades antes de enviar a notificação de sessão.
Considerações Críticas de Timing:
- Atribuição por Match ID (Método 2): Ao usar o método Web SDK + Match ID, reporte a primeira sessão do jogo somente após o Match ID estar potencialmente disponível
- Consentimento do Usuário: Se o jogo oferecer opt-in ao marketing e à análise da Singular, aguarde até que o consentimento seja coletado antes de reportar a sessão do jogo
- Identificador de Dispositivo: Certifique-se de que o SDID seja gerado e armazenado antes da notificação da primeira sessão
Exemplo de Requisição de Sessão
Implementação de Exemplo
import requests
def report_game_session(sdk_key, game_id, device_id, platform, os_version, store):
"""
Report game session to Singular
"""
session_url = "https://s2s.singular.net/api/v1/launch"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'os': os_version,
'install_source': store,
'ip': get_user_ip()
}
try:
response = requests.get(session_url, params=params, timeout=10)
if response.status_code == 200:
data = response.json()
if data.get('status') == 'ok':
print("Session reported successfully")
return True
else:
print(f"Session error: {data.get('reason')}")
return False
else:
print(f"HTTP error: {response.status_code}")
return False
except Exception as e:
print(f"Exception reporting session: {e}")
return False
# Example usage
report_game_session(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
os_version='windows',
store='steam'
)
curl -G "https://s2s.singular.net/api/v1/launch" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--data-urlencode "os=windows" \
--data-urlencode "install_source=steam" \
--data-urlencode "ip=172.58.29.235"
async function reportGameSession(config) {
const sessionUrl = 'https://s2s.singular.net/api/v1/launch';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'os': config.osVersion,
'install_source': config.store,
'ip': await getUserIP()
});
try {
const response = await fetch(`${sessionUrl}?${params.toString()}`);
const data = await response.json();
if (data.status === 'ok') {
console.log('Session reported successfully');
return true;
} else {
console.error('Session error:', data.reason);
return false;
}
} catch (error) {
console.error('Exception reporting session:', error);
return false;
}
}
// Example usage
reportGameSession({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
osVersion: 'windows',
store: 'steam'
});
Rastreamento de Eventos In-Game
Suporte a Conversion API de parceiros: Para encaminhar esses eventos aos parceiros de redes de anúncios por meio das integrações de Conversion API da Singular, inclua os atributos de evento opcionais padrão (dados próprios com hash, como eventId e ehash). Consulte Atributos de evento padrão para integrações de Conversion API.
Rastreie eventos in-game e interações de usuários para analisar o desempenho de campanhas de marketing, otimizar funis de usuários e medir o engajamento ao longo da jornada do jogador.
Planejamento de Eventos
Definição de Eventos
Antes de implementar a integração S2S, defina os eventos que a sua organização deseja rastrear para análise de campanhas e medição do comportamento do usuário.
Guia de Planejamento de Eventos: Definindo Eventos In-Game
Event Notification Endpoint
Report de Eventos
Chame o Event Notification Endpoint quando um evento ocorrer no jogo para notificar a Singular para análise de atribuição e otimização de campanhas.
Referência da API: Para a especificação completa do endpoint, consulte a documentação do Event Notification Endpoint .
O nome do evento incluído na chamada da API determina como o evento é identificado nos relatórios, exports e postbacks da Singular.
Melhores Práticas de Nomenclatura de Eventos
Eventos Padrão
A Singular recomenda usar a convenção de nomenclatura padrão de eventos e atributos para simplificar a integração com parceiros e a compatibilidade com análises.
Diretrizes de Implementação:
- Eventos Padrão: Use a convenção de nomenclatura padrão de eventos da Singular para o mapeamento automático de parceiros e a simplificação da integração
- Idioma Inglês: Passe nomes de eventos e atributos personalizados em inglês para compatibilidade com parceiros terceiros e soluções de análise
- Limites de Caracteres: Nomes de eventos limitados a 32 caracteres ASCII (32 bytes para conversão UTF-8)
- Limites de Atributos: Atributos e valores de eventos limitados a 500 caracteres ASCII
Rastreamento de Eventos de Receita
Medição de Receita
Rastreie a receita de compras in-game para analisar o desempenho de campanhas e o ROI, com dados disponíveis em relatórios, log exports e postbacks.
Implementação de Eventos de Receita: Use o Event Notification Endpoint com parâmetros de receita adicionais para designar eventos de receita.
Parâmetros de Receita Obrigatórios:
-
is_revenue_event=true- Marca o evento como evento de receita (opcional se o nome do evento for__iap__ou o valor for maior que zero) -
amt=1.99- Valor da receita -
cur=USD- Código de moeda ISO 4217
Exemplos de Requisição de Eventos
Implementações de Exemplo
Evento Padrão
import requests
def report_game_event(sdk_key, game_id, device_id, platform, event_name, event_attributes=None):
"""
Report in-game event to Singular
"""
event_url = "https://s2s.singular.net/api/v1/evt"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'n': event_name,
'ip': get_user_ip()
}
if event_attributes:
import json
params['e'] = json.dumps(event_attributes)
response = requests.get(event_url, params=params)
return response.json()
# Example: Level complete event
report_game_event(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
event_name='sng_level_achieved',
event_attributes={
'level': '5',
'score': '1250'
}
)
Evento de Receita
def report_revenue_event(sdk_key, game_id, device_id, platform, amount, currency):
"""
Report revenue event to Singular
"""
event_url = "https://s2s.singular.net/api/v1/evt"
params = {
'a': sdk_key,
'i': game_id,
'sdid': device_id,
'p': platform,
'n': '__iap__',
'is_revenue_event': 'true',
'amt': amount,
'cur': currency,
'ip': get_user_ip()
}
response = requests.get(event_url, params=params)
return response.json()
# Example: $9.99 purchase
report_revenue_event(
sdk_key='your_sdk_key_here',
game_id='com.singular.game',
device_id='40009df0-d618-4d81-9da1-cbb3337b8dec',
platform='pc',
amount=9.99,
currency='USD'
)
Evento Padrão
curl -G "https://s2s.singular.net/api/v1/evt" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--data-urlencode "n=sng_level_achieved" \
--data-urlencode 'e={"level":"5","score":"1250"}' \
--data-urlencode "ip=172.58.29.235"
Evento de Receita
curl -G "https://s2s.singular.net/api/v1/evt" \
--data-urlencode "a=your_sdk_key_here" \
--data-urlencode "i=com.singular.game" \
--data-urlencode "sdid=40009df0-d618-4d81-9da1-cbb3337b8dec" \
--data-urlencode "p=pc" \
--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"
Evento Padrão
async function reportGameEvent(config) {
const eventUrl = 'https://s2s.singular.net/api/v1/evt';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'n': config.eventName,
'ip': await getUserIP()
});
if (config.attributes) {
params.append('e', JSON.stringify(config.attributes));
}
const response = await fetch(`${eventUrl}?${params.toString()}`);
return await response.json();
}
// Example: Level complete
reportGameEvent({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
eventName: 'sng_level_achieved',
attributes: {
level: '5',
score: '1250'
}
});
Evento de Receita
async function reportRevenueEvent(config) {
const eventUrl = 'https://s2s.singular.net/api/v1/evt';
const params = new URLSearchParams({
'a': config.sdkKey,
'i': config.gameId,
'sdid': config.deviceId,
'p': config.platform,
'n': '__iap__',
'is_revenue_event': 'true',
'amt': config.amount,
'cur': config.currency,
'ip': await getUserIP()
});
const response = await fetch(`${eventUrl}?${params.toString()}`);
return await response.json();
}
// Example: $9.99 purchase
reportRevenueEvent({
sdkKey: 'your_sdk_key_here',
gameId: 'com.singular.game',
deviceId: '40009df0-d618-4d81-9da1-cbb3337b8dec',
platform: 'pc',
amount: 9.99,
currency: 'USD'
});
Próximos Passos
Complete a sua integração de PC e Console com recursos e suporte adicionais.
Recursos Adicionais
Documentação e Suporte
- Referência da API: Referência de Endpoints S2S para PC e Console
- FAQ de Atribuição: FAQ de Atribuição de Jogos para PC e Console
- Web SDK (Opcional): Visão Geral e Introdução ao Web SDK
- Planejamento de Eventos: Definindo Eventos In-Game
- Eventos Padrão: Referência de Eventos Padrão da Singular
- Códigos de Resposta: Códigos de Resposta S2S e Tratamento de Erros
Canais de Suporte
Obtendo Ajuda
Entre em contato com a equipe da Singular para obter assistência de implementação e suporte técnico.
- Solution Engineer: Consulte um Solution Engineer da Singular para recursos avançados e planejamento de integração
- Customer Success Manager: Entre em contato com o CSM para habilitação de recursos enterprise e configuração de conta
- Equipe de Suporte: Abra tickets de suporte para problemas técnicos e assistência na solução de problemas