Referência da API do ponto final da sessão servidor-para-servidor

Documento

Referência da API do endpoint SESSION

Acompanhe as sessões dos usuários e habilite a atribuição para instalações de aplicativos, reengajamento e métricas de retenção por meio da API REST da Singular usando integração servidor a servidor como alternativa à implementação do SDK.


Visão geral

Caso de uso servidor-a-servidor

A API REST da Singular permite a integração direta servidor-a-servidor, na qual os aplicativos encaminham dados específicos do dispositivo para o seu backend, que os transmite aos servidores da Singular para processamento de atribuição e relatórios analíticos.

Recursos suportados:

  • Atribuição de instalação: atribuição de primeiro toque para 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 personalizada de eventos no aplicativo

Arquitetura de fluxo de dados

A integração servidor a servidor segue um processo de transmissão de dados em quatro etapas.

  1. Coleta do cliente: o aplicativo coleta os dados necessários do dispositivo e do aplicativo
  2. Transmissão do servidor: o aplicativo encaminha os dados coletados para o seu servidor back-end
  3. Chamada da API 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 do Singular

Session Data Flow Diagram


Considerações importantes

Requisitos críticos:

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

Benefícios da integração:

  • Flexibilidade: controle total sobre a coleta de dados e o tempo de 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 de back-end específica .

Gerenciamento de sessão

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

Quando enviar sessões

Gatilhos de sessão

Envie solicitações SESSION para estes eventos do ciclo de vida do aplicativo:

  • Novas instalações: primeiro lançamento do aplicativo após a instalação
  • Inicialização do estado encerrado: o aplicativo é aberto a partir do estado totalmente fechado .
  • De segundo plano para primeiro plano: o aplicativo retorna ao primeiro plano após o período de tempo limite (recomendado: 60 segundos)

Lógica de tempo limite da sessão

Implemente o tempo limite da sessão para evitar solicitações SESSION excessivas durante breves momentos em que o aplicativo fica em segundo plano.

Implementação recomendada:

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

Suporte a links diretos: sempre envie SESSION para aberturas de aplicativos por meio de links diretos, links universais ou links de aplicativos com o parâmetro openuri preenchido, independentemente do status do tempo limite.


Processamento de atribuição

Atribuição baseada em sessão

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

Tipo de sessão Processamento Singular Resultado da atribuição
Primeira sessão (nova instalação) Processo de atribuição da instalação acionado Atribuições instaladas na campanha de marketing
Reengajamento qualificado Processo de atribuição de reengajamento acionado Atribui o retorno do usuário à campanha ou ao link direto
Sessão padrão Sessão registrada para rastreamento de retenção Conta para as métricas de atividade e engajamento do usuário

Saiba mais: Perguntas frequentes sobre atribuição de reengajamento


Requisitos de ordem de eventos

O tempo da sessão e do evento afeta 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 SESSÃO deve ser recebida antes de qualquer evento para essa sessão
  2. Transmissão de eventos em tempo real: os eventos no aplicativo 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

Funcionalidade estendida

A integração S2S singular oferece suporte a recursos avançados que exigem parâmetros de SESSÃO adicionais .

Recursos avançados: consulte Opções S2S avançadas para requisitos de links diretos, SKAdNetwork e rastreamento entre dispositivos.


Especificação do endpoint da API

O endpoint SESSION aceita solicitações GET com parâmetros de consulta contendo dados do dispositivo, do aplicativo e de atribuição.

URL do endpoint

URL base e método

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

Formato da solicitação:

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

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


Parâmetros obrigatórios

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

Autenticação da API

Chave SDK

Parâmetro Tipo Descrição
a string

Chave SDK Singular para autenticação API.

Recuperar em: Singular UI → Menu principal → Ferramentas do desenvolvedor

Exemplo: sdkKey_afdadsf7asf56

Importante: Não use a chave da API de relatórios — as solicitações serão rejeitadas.


Identificadores de dispositivo

Identificadores específicos da plataforma

Os identificadores de dispositivo variam de acordo com a plataforma e a disponibilidade. Inclua todos os identificadores aplicáveis à sua plataforma.

Parâmetro Plataforma Descrição
idfa iOS

Identificador para anunciantes (IDFA) permite o rastreamento de anúncios e a atribuição de campanhas.

Requisito ATT: iOS 14.5+ requer a aceitação do usuário por meio da estrutura App Tracking Transparency

  • Omita o parâmetro se o IDFA não estiver disponível (o usuário negou o prompt ATT)
  • Nunca passe NULL ou string vazia
  • Recuperar IDFA

Exemplo:DFC5A647-9043-4699-B2A5-76F03A97064B

idfv iOS

Identificador para fornecedores (IDFV) permanece consistente em todos os aplicativos do mesmo fornecedor.

Sempre necessário: deve ser incluído independentemente do status ATT ou da disponibilidade do IDFA

Exemplo:21DB6612-09B3-4ECC-84AC-B353B0AF1334

aifa Android
(Google Play)

O Google Advertising ID (GAID) permite o rastreamento de publicidade reinicializável pelo usuário no Android.

  • Obrigatório em dispositivos Google Play
  • Omitir em dispositivos que não sejam Google Play
  • Omitir se indisponível — nunca passar NULL ou string vazia
  • Recuperar AIFA

Exemplo:8ecd7512-2864-440c-93f3-a3cabe62525b

asid Android
(Google Play)

ID do aplicativo Android fornece rastreamento entre aplicativos com foco na privacidade para o mesmo desenvolvedor.

Sempre necessário: deve ser incluído em dispositivos Google Play, independentemente da disponibilidade do GAID

Exemplo:edee92a2-7b2f-45f4-a509-840f170fc6d9

amid Android
(Amazon)

ID de publicidade da Amazon para dispositivos Amazon sem os Serviços Google Play.

  • Necessário para dispositivos Amazon Fire
  • Omitir se não estiver disponível
  • Recuperar AMID

Exemplo:df07c7dc-cea7-4a89-b328-810ff5acb15d

oaid Android
(OEMs chineses)

Open Advertising Identifier (OAID) para dispositivos fabricados na China sem Google Play Services (Huawei, Xiaomi, OPPO, etc.).

  • Necessário para dispositivos OEM chineses sem Google Play
  • Omitir se não estiver disponível
  • Recuperar OAID

Exemplo:01234567-89abc-defe-dcba-987654321012

andi Android
(Sem Google Play)

O Android ID é um identificador de 64 bits gerado pelo dispositivo.

Uso restrito: proibido em dispositivos Google Play — use AIFA e ASID em vez disso. Envie apenas se não houver outros identificadores disponíveis e o aplicativo não for distribuído pelo Google Play.

Exemplo: fc8d449516de0dfb

sdid PC, Xbox, PlayStation, Nintendo, MetaQuest, CTV

O Singular Device ID é um UUIDv4 gerado pelo cliente que representa uma instalação única do aplicativo.

Identificador primário: único identificador de dispositivo usado para aplicativos de PC e console

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

sing Somente para empresas

Identificador definido pelo cliente para casos de uso especiais em que os identificadores padrão não estão disponíveis.

Restrito: Somente para clientes empresariais — deve ser habilitado pelo engenheiro de soluções da Singular para cada aplicativo. Entre em contato com o CSM para obter mais informações.

Exemplo:da534a95-1b1b-47d4-94b6-07955ec85177


Parâmetros do dispositivo

Informações do dispositivo

Parâmetro Descrição
p

Plataforma do aplicativo.

Valores permitidos (sensível a maiúsculas e minúsculas):

  • Android
  • iOS
  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
  • CTV

Exemplo: Android

ip

Endereço IPv4 público do dispositivo. IPv6 compatível, mas IPv4 recomendado para compatibilidade de atribuição com redes de publicidade.

Exemplo: 172.58.29.235

ve

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

Exemplo: 9.2

ma
iOS, Android

Marca do dispositivo (nome do fabricante). Deve ser usado com mo (modelo).

Recuperar marca do dispositivo

Exemplos: Samsung, LG, Apple

mo
iOS, Android

Modelo do dispositivo. Deve ser usado com ma (marca).

Recuperar o modelo do dispositivo

Exemplos: iPhone 4S, Galaxy SIII

lc
iOS, Android

Tag de localidade IETF — código de idioma e país de duas letras separados por um sublinhado.

Recuperar localidade do dispositivo

Exemplo: en_US

bd
iOS, Android

Identificador de compilação do dispositivo, codificado em URL.

Recuperar compilação do dispositivo

Exemplo: Build%2F13D15


Parâmetros do aplicativo

Informações do aplicativo

Parâmetro Descrição
i

Identificador do aplicativo (sensível a maiúsculas e minúsculas).

  • Android: Nome do pacote (por exemplo, com.singular.app)
  • iOS: ID do pacote (por exemplo, com.singular.app)
  • PC/Console: Seu identificador designado

Exemplo: com.singular.app

app_v

Versão do aplicativo.

Exemplo: 1.2.3

install

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
  • false - Sessão subsequente (aplicativo já instalado)

Necessário para: Recursos de rastreamento de reinstalação

Exemplo: true

install_time
iOS, Android

Carimbo de data/hora Unix da primeira instalação do aplicativo.

Exemplo: 1510040127

update_time
iOS, Android

Carimbo de data/hora Unix da última atualização do aplicativo.

Exemplo: 1510040127

att_authorization_status
iOS

Código de status da Transparência de Rastreamento de Aplicativos (ATT) (iOS 14.5+).

Valores de status:

  • 0 - Indeterminado (mensagem não exibida)
  • 1 - Restrito (rastreamento no nível do dispositivo desativado)
  • 2 - Negado (autorização negada pelo usuário)
  • 3 - Autorizado (autorização concedida pelo usuário)

Sempre necessário: Mesmo que o ATT não esteja implementado, passe 0 (indeterminado).

Exemplo: 3


Parâmetros de prevenção de fraudes

Instalar validação da fonte

Parâmetro Descrição
install_source
Android, PC

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

Android:Nome do pacote fonte de instalação

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

Lojas compatíveis com PC:

  • steam
  • epic
  • microsoftstore
  • humblestore
  • gog
  • auto-distribuído
install_receipt
iOS

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

Exemplo (truncado):MIJF9wYJKoZIhvcNAQcCoIJF6DCCReQCAQExCzAJBgUrDgMCGgUAMII1m...


Parâmetros de links diretos

Suporte a links diretos

Parâmetro Descrição
openuri
iOS, Android

Link direto codificado por URL, Universal Link ou App Link que abriu o aplicativo.

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

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

ddl_enabled
iOS, Android

Indica se o aplicativo espera uma URL de link direto diferido em resposta.

  • true - Espera um link direto diferido na resposta
  • false - Não espera link direto diferido na resposta

Exemplo de resposta:

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

Solicita a resolução do link curto Singular para o link longo. Deve ser usado com openuri contendo o link curto Singular. - Retorne o link longo expandido

  • true - Retorne o link longo expandido
  • false - Não resolver 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 da atribuição da plataforma

Parâmetro Descrição
install_ref
Android (Google Play)
PC nativo (Google Play Games)

Informações de referência de instalação do Google codificadas em JSON URL. Fornece a atribuição mais precisa para instalações do Android e do Google Play Games PC.

Estrutura JSON do Android:

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

Estrutura JSON do PC nativo:

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

Necessário para:

  • Exportações no nível do usuário do Facebook
  • Compartilhamento de destino de dados
  • Precisão do postback

Mais informações:

 

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

meta_ref
Android (Google Play)

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

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

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: Meta Referrer FAQ

attribution_token
iOS

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

Recuperar usando:attributionToken() na primeira inicialização do aplicativo após a instalação/reinstalação.

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


Parâmetros opcionais

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

Parâmetros de carimbo de data/hora

Parâmetro Descrição
utime

Carimbo de data/hora Unix de 10 dígitos da sessão.

Exemplo: 1483228800

umilisec

Carimbo de data/hora Unix de 13 dígitos com milissegundos.

Exemplo: 1483228800000


Parâmetros de rede e localização

Parâmetro Descrição
use_ip

Instrui o Singular a extrair o endereço IP da solicitação HTTP em vez do parâmetro ip.

Limitações:

  • Impede a geolocalização baseada em IP pelo Singular
  • Fornece o código de país de duas letras através do parâmetro country
  • Mutualmente exclusivo com o parâmetro ip — não use ambos
  • É necessário fornecer ip ou use_ip para evitar a rejeição de dados

Exemplo: true

country

ISO 3166-1alfa-2 código de país de duas letras.

Obrigatório quando: endereço IP não disponível ou use_ip=true

Exemplo: US

ua

String do agente do usuário codificada em URL.

Bruto: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...

Codificado: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

c
iOS, Android

Tipo de conexão de rede.

Valores permitidos: wifi, carrier

Exemplo: wifi

cn
iOS, Android

Nome da operadora do provedor de internet.

Exemplo: Comcast


Propriedades personalizadas

Parâmetro Descrição
global_properties

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

Limites:

  • Máximo de 5 pares 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 para rastreamento de desinstalação

Parâmetro Descrição
apns_token
iOS

Token do dispositivo Apple Push Notification Service (APNs) codificado em hexadecimal. Requerido para rastreamento de desinstalação no iOS.

  • Necessário para rastreamento de desinstalação no iOS
  • Deve ser uma string codificada em hexadecimal
  • Recuperar token APNs

Exemplo: b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052

fcm
Android

Token do dispositivo Firebase Cloud Messaging.

Exemplo: bk3RNwTe3H0CI2k_HHwgIpoDKCIZvvD...MExUdFQ3P1


Parâmetros de privacidade de dados

Parâmetro Descrição
data_sharing_options

Consentimento do usuário final codificado em JSON URL para compartilhamento de dados. Deve persistir e ser transmitido em todas as solicitações SESSION e EVENT subsequentes.

Consentimento do usuário (aceitação):

{"limit_data_sharing":false}

Recusa do usuário (opt-out):

{"limit_data_sharing":true}

Exemplo codificado em URL: %7B%22limit_data_sharing%22%3Atrue%7D

dnt
iOS, Android

Status "Não rastrear".

  • 1 - Não rastrear ativado
  • 0 - Não rastrear desativado

Exemplo: 0

dntoff
iOS, Android

Indica se o Não rastrear está DESATIVADO.

  • 0 - Não rastrear ativado (DESATIVADO=falso)
  • 1 - Não rastrear desativado (DESATIVADO=verdadeiro)

Exemplo: 1


Suporte para vários dispositivos

Parâmetro Descrição
custom_user_id

Sua ID de usuário interna para rastreamento entre dispositivos.

Exemplo: 123456789abcd


Suporte SKAdNetwork

Parâmetro Descrição
skan_conversion_value
iOS

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

Saiba mais: Implementação do SKAdNetwork

Exemplo: 7

skan_first_call_timestamp
iOS

Carimbo de data/hora Unix da primeira chamada à API SKAdNetwork.

Exemplo: 1483228800

skan_last_call_timestamp
iOS

Carimbo de data/hora Unix da chamada mais recente à API SKAdNetwork na hora da sessão.

Exemplo: 1483228800


Suporte ao ICM do Google Ads (Beta)

Parâmetro Descrição
odm_info
iOS

Necessário para a medição de conversões integrada do Google Ads (Beta).

Documentação do Google Ads ICM

odm_error
iOS

Necessário para a medição de conversões integrada do Google Ads (Beta).

Documentação do Google Ads ICM


Exemplos de solicitação

O código de exemplo demonstra a integração do endpoint SESSION em várias linguagens de programação.

Isenção de responsabilidade do exemplo: os exemplos de código podem não incluir todos os parâmetros necessários. Valide a lista completa de parâmetros antes da implementação em produção. Use um identificador de aplicativo ( i ) exclusivo para desenvolvimento/teste.

PYTHONCURLHTTPJAVA

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 solicitação.

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


Teste e validação

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

Procedimento de teste

Validação de ponta a ponta

  1. Registre o dispositivo de teste: obtenha o ID de publicidade do dispositivo e adicione-o ao console do SDK Singular
  2. Habilite o registro do console: adicione o identificador do dispositivo no console SDK para capturar os dados de teste
  3. Use o ID do aplicativo de desenvolvimento: substitua o identificador do aplicativo pela versão de desenvolvimento (por exemplo, com.singular.app.dev) para separar o teste dos dados de produção
  4. Inicie o aplicativo: abra o aplicativo a partir do estado encerrado para acionar a sessão
  5. Validar dados do cliente: confirme se o aplicativo envia todos os pontos de dados Singular necessários para o seu servidor
  6. Verificar solicitação do servidor: confirme se o seu servidor envia a solicitação SESSION para https://s2s.singular.net/api/v1/launch com todos os parâmetros necessários
  7. Verifique o console SDK: em segundos, o evento SESSION deve aparecer no console SDK
  8. Repita os testes: valide os acionamentos de SESSION em cada entrada do aplicativo e operação em primeiro plano

SDK Console Session Event

Verificação crítica: confirme se o evento SESSION ocorre na abertura do aplicativo/primeiro plano ANTES de qualquer solicitação EVENT. Uma ordem inválida causa erros de atribuição.

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


Recursos adicionais

Documentação de teste

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