Referência da API do Endpoint SESSION (Server-to-Server)

Referência da API do Endpoint SESSION

Rastreie sessões de usuário e habilite a atribuição para instalações de apps, reengajamento e métricas de retenção por meio da API REST da Singular usando integração server-to-server como alternativa à implementação por SDK.


Visão geral

Caso de uso Server-to-Server

A API REST da Singular permite a integração direta server-to-server, na qual os apps encaminham dados específicos do dispositivo para o seu backend, que os transmite aos servidores da Singular para processamento de atribuição e geração de relatórios de análise.

Recursos suportados:

  • Atribuição de instalação: Atribuição de primeiro toque a campanhas de marketing
  • Atribuição de reengajamento: Atribuição multitoque para usuários recorrentes
  • Métricas de retenção: Rastreamento de engajamento baseado em sessão
  • Rastreamento de eventos: Medição de eventos in-app personalizados

Arquitetura do fluxo de dados

A integração server-to-server segue um processo de transmissão de dados em quatro etapas.

  1. Coleta no cliente: O app coleta os dados obrigatórios do dispositivo e da aplicação
  2. Transmissão ao servidor: O app encaminha os dados coletados para o seu servidor backend
  3. Chamada à API da Singular: Seu servidor envia os dados para o endpoint da API REST da Singular
  4. Tratamento da resposta: Seu servidor recebe e processa a resposta da Singular

Diagrama do fluxo de dados da sessão


Considerações importantes

Requisitos críticos:

  • Processamento em tempo real: Requisições processadas individualmente—sem suporte a lote
  • Ordem sequencial: Os eventos devem ser enviados cronologicamente
  • Sem deduplicação: A Singular não deduplica dados—implemente a deduplicação no lado do servidor
  • Permanência dos dados: Dados em nível de dispositivo não podem ser excluídos após a ingestão—valide antes de enviar
  • Sessão primeiro: A sessão deve ser estabelecida antes de qualquer rastreamento de eventos

Benefícios da integração:

  • Flexibilidade: Controle total sobre a coleta de dados e o momento da transmissão
  • Paridade de recursos: Suporta todas as funcionalidades do SDK quando os dados adequados são fornecidos
  • Implementação personalizada: Adapte a integração à arquitetura específica do seu backend

Gerenciamento de sessões

O endpoint SESSION notifica a Singular sobre eventos de abertura do app para inicializar as sessões de usuário para atribuição e rastreamento.

Quando enviar sessões

Gatilhos de sessão

Envie requisições SESSION para estes eventos do ciclo de vida do app:

  • Instalações novas: Primeira abertura do app após a instalação
  • Abertura a partir do estado encerrado: O app abre a partir do estado totalmente fechado
  • Do segundo plano para o primeiro plano: O app retorna ao primeiro plano após o período de timeout (recomendado: 60 segundos)

Lógica de timeout de sessão

Implemente um timeout de sessão para evitar requisições SESSION excessivas durante breves períodos em que o app fica em segundo plano.

Implementação recomendada:

  • Duração do timeout: 60 segundos (1 minuto)
  • Primeiro plano < timeout: Não envie SESSION se o app retornar ao primeiro plano dentro do período de timeout
  • Primeiro plano > timeout: Envie SESSION se o app permanecer em segundo plano além do período de timeout
  • Rastreamento do ciclo de vida do app: Use eventos do ciclo de vida do app e timers para gerenciar o estado da sessão

Suporte a deep link: Sempre envie SESSION para aberturas do app via deep links, Universal Links ou App Links com o parâmetro openuri preenchido, independentemente do status de timeout.


Processamento de atribuição

Atribuição baseada em sessão

A Singular processa as requisições SESSION para determinar o tipo de atribuição e acionar os fluxos de trabalho apropriados.

Tipo de sessão Processamento da Singular Resultado da atribuição
Primeira sessão (nova instalação) Processo de atribuição de instalação acionado Atribui a instalação a uma campanha de marketing
Qualificada para reengajamento Processo de atribuição de reengajamento acionado Atribui o retorno do usuário a uma campanha ou deep link
Sessão padrão Sessão registrada para rastreamento de retenção Contabilizada nas métricas de atividade e engajamento do usuário

Saiba mais: FAQ de atribuição de reengajamento


Requisitos de ordem dos eventos

O momento das sessões e dos eventos impacta diretamente a precisão da atribuição e a qualidade dos dados.

Regras críticas de ordenação:

  1. Sessão antes dos eventos: Uma única SESSION deve ser recebida antes de qualquer evento daquela sessão
  2. Transmissão de eventos em tempo real: Os eventos in-app devem ser enviados em tempo real após a respectiva sessão
  3. Processamento sequencial: Uma ordem de sessão inválida resulta em inconsistências de dados e erros de atribuição

Opções avançadas

Funcionalidades estendidas

A integração S2S da Singular suporta recursos avançados que exigem parâmetros SESSION adicionais.

Recursos avançados: Consulte Opções avançadas de S2S para requisitos de deep linking, SKAdNetwork e rastreamento entre dispositivos.


Especificação do endpoint da API

O endpoint SESSION aceita requisições GET com parâmetros de query contendo dados de dispositivo, aplicação e atribuição.

URL do endpoint

URL base e método

GET https://s2s.singular.net/api/v1/launch

Formato da requisição:

GET /api/v1/launch?param1=value1&param2=value2

Corpo da requisição: Não forneça um corpo de requisição—todos os parâmetros devem ser enviados como parâmetros de query na URL usando o método GET.


Parâmetros obrigatórios

Todas as requisições SESSION devem incluir estes parâmetros obrigatórios com os valores e a formatação adequados.

Autenticação da API

SDK Key

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Identificadores de dispositivo

Identificadores específicos da plataforma

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Parâmetros de dispositivo

Informações do dispositivo

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Parâmetros de aplicação

Informações do app

O identificador do app ( i ), app_v e att_authorization_status são parâmetros compartilhados. Consulte Parâmetros de aplicação em Fundamentos de S2S .

Parâmetro Detalhes
install

boolean

Indica se a sessão representa a primeira sessão após a instalação ou reinstalação.

  • true - Primeira sessão após instalação/reinstalação nova
  • false - Sessão subsequente (app já instalado)

Obrigatório para: Recursos de rastreamento de reinstalação

Exemplo: true

install_time
iOS, Android

integer

Timestamp Unix da primeira instalação do app.

Exemplo: 1510040127

update_time
iOS, Android

integer

Timestamp Unix da última atualização do app.

Exemplo: 1510040127


Parâmetros de prevenção de fraude

Validação da fonte de instalação

Parâmetro Detalhes
install_source
Android, PC

string

Nome do pacote da fonte de instalação ou identificador da loja.

Android: Install Source Package Name

Exemplo Android: com.android.vending (Google Play Store)

Lojas de PC suportadas:

  • steam
  • epic
  • microsoftstore
  • humblestore
  • gog
  • selfdistributed
install_receipt
iOS

string

Recibo de instalação iOS codificado em Base64 para validação de fraude.

Exemplo (truncado): MIJF9wYJKoZIhvcNAQcCoIJF6DCCReQCAQExCzAJBgUrDgMCGgUAMII1m...


Parâmetros de deep linking

Suporte a deep link

Parâmetro Detalhes
openuri
iOS, Android

string

Deep link, Universal Link ou App Link codificado em URL que abriu o app.

URL original: myapp://home/page?queryparam1=value1&queryparam2=value2

Exemplo codificado: myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1%26queryparam2%3Dvalue2

ddl_enabled
iOS, Android

boolean

Indica se o app espera a URL de deferred deep link na resposta.

  • true - Espera um deferred deep link na resposta
  • false - Não espera um deferred deep link

Exemplo de resposta:

{
  "deferred_deeplink": "myapp://deferred-deeplink",
  "status": "ok",
  "deferred_passthrough": "passthroughvalue"
}
singular_link_resolve_required
iOS, Android

boolean

Solicita a resolução do short link da Singular para o long link. Deve ser usado com openuri contendo o short link da Singular.

  • true - Retorna o long link expandido
  • false - Não resolve o link

Exemplo de resposta:

{
  "status":"ok",
  "resolved_singular_link":"https://myapp.sng.link/A59c0/nha7?_dl=myapp%3A%2F%2Fdeeplink&_ddl=myapp%3A%2F%2Fdeferred-deeplink&_p=passthroughvalue"
}

Parâmetros avançados de atribuição

Aprimoramento de atribuição por plataforma

Parâmetro Detalhes
install_ref
Android (Google Play)
Native PC (Google Play Games)

JSON

Informações do Google Install Referrer codificadas em JSON e URL. Fornece a atribuição mais precisa para instalações no Android e no Google Play Games PC.

Estrutura JSON Android:

{
   "installBeginTimestampSeconds":"1568939453",
   "referrer":"utm_source=google-play&utm_medium=organic",
   "clickTimestampSeconds":"0",
   "referrer_source":"service",
   "current_device_time":"1568944524"
}

Estrutura JSON Native PC:

{
   "install_time_epoch_seconds":"1568939453",
   "install_referrer":"utm_source=google-play&utm_medium=organic"
}

Obrigatório para:

  • Exportações em nível de usuário do Facebook
  • Compartilhamento via Data Destination
  • Precisão de postbacks

Mais informações:

Exemplo codificado em URL: %7B%22installBeginTimestampSeconds%22%3A%221568939453%22...

meta_ref
Android (Google Play)

JSON

A partir de 18 de junho de 2025: Meta Advanced Mobile Measurement (AMM) elimina a necessidade de implementar o Meta Install Referrer. Não recomendado se o AMM estiver habilitado.

Meta Install Referrer codificado em JSON e URL para dados de atribuição granulares em nível de usuário.

Estrutura JSON:

{
  "install_referrer": {
    "utm_source":"apps.facebook.com",
    "utm_campaign": "fb4a",
    "utm_content": {
      "source":{
        "data":"c7e6b890bf18a059c2185650bdb1af3dced7...",
        "nonce":"24859720343e2381daee9f39ae61"
        },
      "app":533744218636280,
      "t":1731181327
      },
    "is_ct":1,
    "actual_timestamp":1731181444
  }
}

Saiba mais: FAQ do Meta Referrer

attribution_token
iOS

string

Token de atribuição do Apple Search Ads do framework AdServices (iOS 14.3+).

Obtido usando: attributionToken() na primeira abertura do app após instalação/reinstalação.

Exemplo (truncado): KztLg%2FIkNsWDMuBMOU%2BySnkPU5myJb4OFmeaMUE%2BTqQJP...


Parâmetros opcionais

Os parâmetros opcionais aprimoram os recursos de rastreamento e dão suporte a recursos avançados.

Parâmetros de timestamp

Parâmetro Detalhes
utime

integer

Timestamp Unix de 10 dígitos da sessão.

Exemplo: 1483228800

umilisec

integer

Timestamp Unix de 13 dígitos com milissegundos.

Exemplo: 1483228800000


Parâmetros de rede e localização

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Propriedades personalizadas

Parâmetro Detalhes
global_properties

JSON

Objeto JSON codificado em URL com pares de chave-valor personalizados.

Limites:

  • Máximo de 5 pares de chave-valor
  • Máximo de 200 caracteres por chave e valor

JSON: {"key1":"value1","key2":"value2"}

Codificado em URL: %7B%22key1%22%3A%22value1%22%2C%22key2%22%3A%22value2%22%7D


Suporte a rastreamento de desinstalação

Parâmetro Detalhes
apns_token
iOS

string

Token de dispositivo do Apple Push Notification Service (APNs) codificado em hexadecimal.

  • Obrigatório para rastreamento de desinstalação no iOS
  • Deve ser uma string codificada em hexadecimal
  • Obter o token APNs

Exemplo: b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052

fcm
Android

string

Token de dispositivo do Firebase Cloud Messaging.

Exemplo: bk3RNwTe3H0CI2k_HHwgIpoDKCIZvvD...MExUdFQ3P1


Parâmetros de privacidade de dados

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Suporte entre dispositivos

Estes são parâmetros S2S compartilhados definidos uma única vez em Fundamentos de S2S .


Suporte a SKAdNetwork

Parâmetro Detalhes
skan_conversion_value
iOS

integer

Valor de conversão mais recente do SKAdNetwork no momento da sessão.

Saiba mais: Implementação do SKAdNetwork

Exemplo: 7

skan_first_call_timestamp
iOS

integer

Timestamp Unix da primeira chamada à API do SKAdNetwork.

Exemplo: 1483228800

skan_last_call_timestamp
iOS

integer

Timestamp Unix da chamada mais recente à API do SKAdNetwork no momento da sessão.

Exemplo: 1483228800


Suporte a Google Ads ICM (Beta)

Parâmetro Detalhes
odm_info
iOS

string

Obrigatório para o Google Ads Integrated Conversion Measurement (Beta).

Documentação do Google Ads ICM

odm_error
iOS

string

Obrigatório para o Google Ads Integrated Conversion Measurement (Beta).

Documentação do Google Ads ICM


Exemplos de requisição

Os exemplos de código demonstram a integração com o endpoint SESSION em várias linguagens de programação.

Aviso sobre os exemplos: Os exemplos de código podem não incluir todos os parâmetros obrigatórios. Valide a lista completa de parâmetros antes da implementação em produção. Use um valor único de i (identificador do app) para desenvolvimento/teste.

PYTHON CURL HTTP JAVA

Exemplo em Python

import requests

params = {
    'a': 'sdk_key_here',
    'p': 'Android',
    'i': 'com.singular.app',
    'ip': '10.1.2.3',
    've': '9.2',
    'ma': 'samsung',
    'mo': 'SM-G935F',
    'lc': 'en_US',
    'aifa': '8ecd7512-2864-440c-93f3-a3cabe62525b',
    'asid': 'edee92a2-7b2f-45f4-a509-840f170fc6d9',
    'install': 'true',
    'n': 'MyCoolAppName',
    'bd': 'Build/13D15',
    'app_v': '1.2.3',
    'openuri': 'myapp://home/page?queryparam1=value1',
    'ddl_enabled': 'true',
    'install_source': 'com.android.vending',
    'install_time': 1510040127,
    'update_time': 1510090877
}

response = requests.get('https://s2s.singular.net/api/v1/launch', params=params)
print(response.json())

Códigos de resposta e erros

O endpoint SESSION retorna códigos de status HTTP e respostas JSON indicando o sucesso ou a falha da requisição.

Documentação completa de erros: Códigos de resposta de S2S e tratamento de erros


Teste e validação

Verifique a integração S2S antes da implantação em produção usando o SDK Console da Singular para validação de dados em tempo real.

Procedimento de teste

Validação de ponta a ponta

  1. Registrar dispositivo de teste: Obtenha o ID de publicidade do dispositivo e adicione-o ao SDK Console da Singular
  2. Habilitar log no Console: Adicione o identificador do dispositivo no SDK Console para capturar os dados de teste
  3. Usar o App ID de desenvolvimento: Substitua o identificador do app pela versão de desenvolvimento (por exemplo, com.singular.app.dev ) para separar os dados de teste dos de produção
  4. Abrir o app: Abra o app a partir do estado encerrado para acionar a sessão
  5. Validar os dados do cliente: Confirme que o app envia todos os dados obrigatórios da Singular ao seu servidor
  6. Verificar a requisição do servidor: Confirme que seu servidor envia a requisição SESSION para https://s2s.singular.net/api/v1/launch com todos os parâmetros obrigatórios
  7. Verificar o SDK Console: Em poucos segundos, o evento SESSION deve aparecer no SDK Console
  8. Repetir os testes: Valide que a SESSION é acionada a cada entrada no app e operação de primeiro plano

Evento de sessão no SDK Console

Verificação crítica: Confirme que o evento SESSION ocorre na abertura/primeiro plano do app ANTES de qualquer requisição EVENT. Uma ordem inválida causa erros de atribuição.

Indicador de sucesso: Se a SESSION aparecer no SDK Console, você concluiu um teste de integração de ponta a ponta com sucesso!


Recursos adicionais

Documentação de teste

Guia abrangente de testes: Guia de testes de integração S2S