PC e consola - Guia de integração de jogos

Documento

Guia de integração S2S para PC e consola

Guia abrangente para a implementação da integração servidor a servidor para atribuição de jogos para PC e Consola, permitindo a medição e análise precisas de campanhas em plataformas de desktop e de jogos.

Funcionalidade empresarial: A atribuição de jogos para PC e consola é uma funcionalidade empresarial. Para saber mais, leia as Perguntas Frequentes sobre Atribuição de Jogos para PC e Consolaou contacte o seu Gestor de Sucesso do Cliente.

Requisito do Web SDK: A atribuição de PCs e consolas a partir de campanhas web requer a implementação do Singular Web SDK nas suas páginas de destino de marketing. O Web SDK captura dados de cliques e permite a correspondência de atribuição quando os utilizadores instalam e iniciam o seu jogo.

Etapas necessárias:

  • Implementar o Singular Web SDKnas páginas de destino
  • Configurar o Web SDK com o ID do produto correspondente (igual ao identificador do jogo)
  • Implementar a integração S2S do lado do jogo (este guia)
  • Opcionalmente, implemente a ID de correspondência para maior precisão de atribuição

Visão geral

Integração de servidor para servidor

A Singular fornece uma API REST que permite o relatório de servidor para servidor dos dados de conversão de jogos para PC e Consola para análise de atribuição, medição do desempenho da campanha e acompanhamento do comportamento do utilizador.

Capacidades de integração:

  • Rastreamento de sessão de jogo: Relate sessões de usuários e atividades em lançamentos de jogos
  • Atribuição de instalação: Atribuir novas instalações de jogos a campanhas de marketing
  • Análise de eventos: Acompanhe os eventos no jogo e as interações dos utilizadores para análise do funil
  • Medição de receitas: Medir compras no jogo e desempenho de monetização
  • Suporte multiplataforma: Rastreamento unificado em PC, Xbox, PlayStation, Nintendo e Meta Quest

Pré-requisitos

Antes de implementar a integração PC & Console S2S, certifique-se de que o Web SDK esteja configurado corretamente para um fluxo de trabalho de atribuição completo.

Componente Requisito
SDK da Web

Necessário: Deve ser implementado nas páginas de destino de marketing para capturar dados de cliques e permitir a atribuição.

Guia de implementação: Visão geral e introdução ao Web SDK

Nota de configuração: O ID do produto do Web SDK deve corresponder ao identificador do jogo (parâmetroi ) usado na integração S2S. Esse alinhamento permite que a Singular conecte os cliques da Web às instalações do jogo.

Chave SDK

Obter a chave do SDK da Singular no Dashboard → Ferramentas do desenvolvedor → Integração do SDK → Chaves do SDK

Método de atribuição

Reveja os métodos de atribuição disponíveis e selecione a abordagem adequada para a sua implementação:

  • Atribuição de impressão digital: Correspondência automática com base nas caraterísticas do dispositivo (padrão)
  • Atribuição de ID de correspondência: Precisão melhorada utilizando o identificador passado do Web SDK para o jogo (avançado)

Consulte Métodos de atribuiçãopara obter detalhes.


Arquitetura de integração

A atribuição completa de PC e Consola requer que a implementação do lado da Web e do lado do jogo trabalhem em conjunto.

Fluxo de atribuição:

  1. O utilizador clica no anúncio: O utilizador clica no anúncio da campanha de marketing do seu jogo
  2. Visita à página de destino: O utilizador chega à página de destino com o Singular Web SDK implementado
  3. Captura de cliques: O Web SDK captura os dados do clique, incluindo a impressão digital do dispositivo e os parâmetros da campanha
  4. Descarregamento do jogo: O utilizador descarrega e instala o jogo a partir da loja ou por descarregamento direto
  5. Primeiro lançamento: O utilizador inicia o jogo pela primeira vez
  6. Relatório de sessão: O jogo reporta a sessão através da API S2S com identificador de dispositivo
  7. Attribution Matching: Singular faz a correspondência entre a instalação do jogo e o clique na Web com base na impressão digital ou na Match ID
  8. Atribuição de campanha: Instalação atribuída à campanha de origem para medição do ROI

Recursos de documentação

A referência completa da API fornece especificações de ponto de extremidade, parâmetros e exemplos de implementação.


Conceitos de integração

Conceitos e requisitos essenciais para implementar a integração completa de S2S para PC e Console com Singular.

Autenticação

Requisito da chave SDK

Todas as solicitações à API S2S para PC e Console da Singular exigem autenticação da chave SDK no parâmetro a.

Parâmetro Descrição
a

Chave SDK da Singular para autenticação da API.

Localização: Singular Dashboard → Ferramentas de Desenvolvedor → Integração SDK → Chaves SDK

Importante: Não use a Reporting API Key encontrada em Developer Tools → API Keys. A chave da API de relatórios é apenas para a API de relatórios da Singular.

Exemplo: sdkKey_afdadsf7asf56


Privacidade do utilizador

Conformidade com a privacidade

A Singular recomenda oferecer aos utilizadores finais a possibilidade de optarem por entrar ou sair do rastreamento para preservar a privacidade do utilizador e cumprir os regulamentos relevantes.

Opções de implementação:

  • Opção 1: Não enviar dados de eventos do jogo para a Singular quando o usuário optar por não participar
  • Opção 2: Enviar dados de eventos do jogo, mas incluir opções de consentimento do utilizador através do parâmetro data_sharing_options com o valor "Limitar partilha de dados

Estrutura de privacidade: A Singular usa "Limitar Compartilhamento de Dados" em Postbacks de Privacidade do Usuárioe passa informações para parceiros que exigem isso para conformidade regulatória. Veja Privacidade do Usuário e Limitar Compartilhamento de Dadospara detalhes completos.


Plataformas suportadas

Definição de plataforma

A plataforma representa onde o utilizador joga o jogo e deve ser passada no parâmetro pem todos os pedidos da API S2S.

Valores de plataforma suportados:

  • pc - Plataformas de computadores pessoais
  • xbox - Consolas de jogos Microsoft Xbox
  • playstation - Consolas de jogos Sony PlayStation
  • nintendo - Consolas de jogos Nintendo
  • metaquest - Auriculares Meta Quest VR

Sistemas operativos e lojas

Para além da plataforma, especificar o sistema operativo/jogo através do parâmetro ose a loja de distribuição através do parâmetro install_source.

Plataforma
(p)
Sistema operativo/jogo
(os)
Loja
(install_source)
pc
  • windows
  • linux
  • macos
  • steamos
  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • selfdistributed
xbox
  • xbox_one
  • xbox_360
  • xbox_series_s
  • xbox_series_x
  • xbox
playstation
  • playstation_3
  • playstation_4
  • playstation_5
  • playstation
nintendo
  • nintendo_switch
  • nintendo
metaquest
  • metaquest
  • metaquest_2
  • metaquest_pro
  • metaquest

Valores personalizados: Valores personalizados suportados para o sistema operativo e parâmetros de loja, mas a Singular recomenda a utilização de valores padronizados acima para consistência e clareza do relatório.


Identificador do jogo

Identificação do aplicativo

O identificador de jogo associa eventos de jogo a um jogo específico e deve ser passado no parâmetro i em cada solicitação.

Requisito crítico: O identificador do jogo usado na integração S2S deve corresponder exatamente ao ID do produto configurado na implementação do Singular Web SDK. Esse alinhamento é essencial para que o Singular atribua instalações de jogos a cliques em campanhas da Web.

Requisitos do identificador:

  • Formato: Qualquer valor suportado, mas a Singular recomenda a notação DNS reversa (por exemplo, com.singular.game)
  • Alinhamento do Web SDK: Deve corresponder ao ID do produto do Web SDK configurado nas páginas de destino para que a atribuição funcione
  • Consistência entre plataformas: O mesmo identificador de jogo deve ser usado para o mesmo jogo em todas as plataformas suportadas

Exemplos de configuração:

Implementação Configuração
SDK Web
const config = {
  apiKey: 'YOUR_SDK_KEY',
  productId: 'com.singular.game',  // Must match S2S identifier
  // ... other config
};
API S2S (PC)
p=pc&i=com.singular.game
API S2S (Xbox)
p=xbox&i=com.singular.game
API S2S (PlayStation)
p=playstation&i=com.singular.game

Identificação do dispositivo

Rastreio único da instalação do jogo

O identificador de instalação/dispositivo associa eventos de jogo em várias sessões de jogo para a mesma instalação de jogo e deve ser passado no parâmetro sdidem cada pedido.

Especificações do identificador:

  • Formato: Formato UUID versão 4 recomendado
  • Geração: Valor gerado pelo jogo/servidor no primeiro lançamento do jogo (instalação)
  • Persistência: Deve persistir durante toda a vida útil da instalação do jogo
  • Singularidade: Cada instalação de jogo requer um identificador único

Exemplo: sdid=40009df0-d618-4d81-9da1-cbb3337b8dec


Atribuição de ID de correspondência

O Match ID permite uma melhor precisão de atribuição para campanhas na Web, passando um identificador exclusivo do Web SDK para a instalação do jogo, fornecendo uma alternativa de correspondência determinística à atribuição baseada em impressões digitais.

Recurso avançado: A utilização do Match ID para atribuição é um recurso avançado que requer coordenação entre as implementações da web e do jogo. Consulte o Engenheiro de Soluções Singular antes de implementá-lo.

Como funciona o Match ID:

  1. O Web SDK gera o Match ID:O Singular Web SDKcria um Match ID único quando o utilizador visita a página de destino
  2. Recuperar o Match ID: Utilizar os métodos do Web SDK para recuperar o Match ID da landing page
  3. Passar para o jogo: Sua implementação passa o Match ID da página da Web para o jogo durante o processo de download/instalação (por exemplo, parâmetro de consulta, link profundo, cookie)
  4. Relatório com o primeiro lançamento: O jogo inclui a ID da partida na notificação da primeira sessão para o Singular através do parâmetro match_id
  5. Correspondência determinística: A Singular usa a ID de correspondência para uma correspondência de atribuição precisa

Métodos de ID de correspondência do Web SDK

Implementação nativa

O Singular Web SDK fornece métodos nativos para recuperar, definir e limpar valores de Match ID em landing pages.

Métodos disponíveis:

Método Descrição
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 o Match ID personalizado para a sessão web atual em vez de usar o valor gerado pelo Singular.

Parâmetros: matchId (string) - Valor da ID de correspondência personalizada

clearMatchID()

Limpa a ID de correspondência personalizada definida via setMatchID()e reverte para o valor padrão gerado pelo Singular.


Exemplos de implementação

NATIVE JAVASCRIPTGOOGLE TAG MANAGER

Implementação do SDK da Web nativo

Utilize estes métodos diretamente após a inicialização do Singular Web SDK para recuperar e gerenciar os valores de Match ID.

Recuperar ID de correspondência

// 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 ID de correspondência personalizada

// 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 ID de correspondência

// 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;
});

Passagem do ID da partida para o jogo

Estratégias de implementação

Depois de recuperar o Match ID do Web SDK, implemente um mecanismo para passar o valor da página de destino para a instalação do jogo.

Abordagens comuns:

Método Implementação Caso de utilização
Parâmetro de consulta

Anexar o ID do jogo ao URL de download como parâmetro de consulta.

https://example.com/download?match_id=abc123

Transferências diretas em que a página de transferência pode extrair o parâmetro e transmiti-lo ao instalador do jogo

Armazenamento de cookies

Armazenar o Match ID num cookie original acessível pela página de download do jogo.

document.cookie = `match_id=${matchId}; path=/; max-age=86400`;

Fluxos de várias páginas em que o ID de correspondência precisa de persistir nas navegações de página

Armazenamento local

Armazenar o Match ID no armazenamento local do navegador.

localStorage.setItem('singular_match_id', matchId);

Cenários do mesmo domínio em que a página de destino e a página de transferência partilham o armazenamento

Ligação profunda

Incorporar o Match ID no esquema de deep link personalizado para lançamento direto do jogo.

mygame://install?match_id=abc123

Implementações avançadas com manipuladores de protocolo personalizados

API do lado do servidor

Envia o Match ID para a API do servidor, o jogo recupera-o através de um pedido autenticado.

Implementações seguras que requerem validação do lado do servidor e autenticação do utilizador


Implementação da API S2S

Comunicar o ID do jogo

Assim que o jogo recuperar o Match ID da implementação web, incluir na notificação da primeira sessão para a Singular para correspondência de atribuição.

Momento 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. O envio da ID da partida em sessões subsequentes não permite a correspondência de atribuição.

Solicitação de sessão com ID de correspondência:

PYTHONCURLJAVASCRIPT
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
)

Melhores práticas de Match ID

Lista de verificação de implementação

Requisitos completos de implementação:

  • Integração do Web SDK: Implementar o Singular Web SDKem páginas de destino com ID de produto correspondente
  • Recuperação da ID de Correspondência: Use getMatchID()para recuperar o valor após a inicialização do SDK
  • Transmissão de valores: Implementar mecanismo seguro para passar a ID de correspondência da Web para o jogo
  • Armazenamento no jogo: Armazenar a ID da partida no jogo até o primeiro lançamento/relatório de sessão
  • Apenas a primeira sessão: Incluir o parâmetro match_idapenas na notificação da primeira sessão
  • Validação de valores: Verificar se o valor da ID da Partida corresponde entre as implementações da web e do jogo
  • Testes: Teste o fluxo completo desde o clique na página de destino até a instalação e a atribuição do jogo

Para obter detalhes completos da metodologia de atribuição e solução de problemas, consulte Perguntas frequentes sobre atribuição de jogos para PC e console.


Rastreamento de sessão de jogo

O relatório de sessões de jogos para a Singular é necessário na integração de PC e Console, permitindo a atribuição de instalação, rastreamento de reengajamento e análise de retenção de usuários.

Ponto de extremidade de notificação de sessão

Requisito de implementação

Chamar 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 obter a especificação completa do endpoint, consulte a documentação do Session Notification Endpoint.


Processamento de sessão

Fluxo de trabalho de atribuição

As notificações de sessão permitem que a Singular execute várias 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 de jogo após uma instalação única, o Singular reconhece a nova instalação e aciona o processo de atribuição de instalação
  • Sessão de reengajamento: Se a sessão for qualificada como reengajamento (em breve), o Singular aciona o processo de atribuição de reengajamento (consulte a FAQ sobre reengajamento)
  • Sessão regular: Caso contrário, é marcada como sessão de jogo para rastreamento da atividade e retenção do usuário

Melhores práticas de implementação

Recolha de dados assíncrona

Ao coletar dados para relatar a sessão do jogo, aguarde o retorno das funções assíncronas e manipule várias funcionalidades antes de enviar a notificação da sessão.

Considerações críticas sobre o tempo:

  • Atribuição de ID de correspondência: Quando utilizar o Match ID para melhorar a correspondência de atribuição, comunique a primeira sessão de jogo apenas depois de o Match ID estar potencialmente disponível
  • Consentimento do utilizador: Se o jogo fornecer opt-in para marketing e análise da Singular, aguarde até que o consentimento seja coletado antes de relatar a sessão do jogo
  • Identificador de dispositivo: Garantir que o SDID seja gerado e armazenado antes da notificação da primeira sessão

Exemplo de solicitação de sessão

Exemplo de implementação

PYTHONCURLJAVASCRIPT
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'
)

Rastreamento de eventos no jogo

Acompanhe os eventos no jogo e as interações dos utilizadores para analisar o desempenho das campanhas de marketing, otimizar os funis de utilizador e medir o envolvimento no percurso do jogador.

Planeamento de eventos

Definição do evento

Antes de implementar a integração S2S, defina os eventos que a sua organização pretende acompanhar para análise de campanhas e medição do comportamento do utilizador.

Guia de planeamento de eventos:definição de eventos no jogo


Ponto final de notificação de eventos

Relatório de eventos

Chame o Event Notification Endpoint quando ocorrer um evento no jogo para notificar a Singular para análise de atribuição e otimização de campanha.

Referência da API: Para obter a especificação completa do endpoint, consulte a documentação do Endpoint de Notificação de Evento.

O nome do evento incluído na chamada da API determina como o evento é identificado nos relatórios, exportações e postbacks da Singular.


Melhores práticas de nomenclatura de eventos

Eventos padrão

A Singular recomenda o uso de eventos padrão e convenção de nomenclatura de atributos para integração simplificada com parceiros e compatibilidade analítica.

Diretrizes de implementação:

  • Eventos padrão: Use a convenção de nomenclatura de eventos padrão da Singularpara mapeamento automático de parceiros e simplificação da integração
  • Idioma inglês: Passe nomes e atributos de eventos personalizados em inglês para compatibilidade com parceiros de 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 receitas

Acompanhe as receitas das compras no jogo para analisar o desempenho da campanha e o ROI, com dados disponíveis em relatórios, exportações de registos e postbacks.

Implementação de eventos de receita: Use o Ponto de extremidade de notificação de evento com parâmetros de receita adicionais para designar eventos de receita.

Parâmetros de receita necessá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 solicitação de evento

Implementações de amostra

PYTHONCURLJAVASCRIPT

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'
)

Próximos passos

Complete a sua integração PC & Console S2S com recursos e suporte adicionais.

Recursos adicionais

Documentação e suporte


Canais de suporte

Obter ajuda

Contacte a equipa da Singular para obter assistência na implementação e suporte técnico.

  • Engenheiro de Soluções: Consultar o Engenheiro de Soluções da Singular para recursos avançados e planejamento de integração
  • Gerente de Sucesso do Cliente: Contactar o CSM para ativação de funcionalidades empresariais e configuração de contas
  • Equipe de suporte: Enviar tickets de suporte para questões técnicas e assistência na resolução de problemas