Server-to-Server - Referência da API do Endpoint EVENT

Referência da API do Endpoint EVENT

Acompanhe eventos in-app e receita para análise de atribuição e otimização de campanhas usando a REST API da Singular por meio de integração server-to-server como alternativa à implementação de SDK.


Visão geral

Caso de uso Server-to-Server

A EVENT API permite o acompanhamento de eventos in-app, em que os apps encaminham dados de interação do usuário para o seu backend, que os transmite aos servidores da Singular para atribuição de eventos e relatórios de análise de receita.

Recursos compatíveis:

  • Atribuição de eventos: Conecte ações do usuário a campanhas de marketing
  • Acompanhamento de receita: Meça e atribua compras in-app e transações
  • Eventos personalizados: Acompanhe qualquer interação do usuário, de registros a conclusões de fases
  • Propriedades de eventos: Anexe dados contextuais aos eventos para uma análise mais aprofundada

Arquitetura do fluxo de dados

O acompanhamento de eventos server-to-server segue um processo de transmissão de dados em quatro etapas.

  1. Coleta no cliente: O app coleta dados de eventos e identificadores de dispositivo
  2. Transmissão ao servidor: O app encaminha os dados de eventos ao seu servidor backend
  3. Consulta ao device graph: O servidor recupera ou atualiza detalhes do dispositivo a partir do device graph da Singular
  4. Chamada à Event API: O servidor envia o evento ao endpoint da REST API da Singular

Diagrama de fluxo de dados de eventos


Requisitos críticos

Pré-requisitos:

  • SESSION antes dos eventos: A SESSION deve ser estabelecida antes de qualquer acompanhamento de evento
  • Ordem sequencial: Uma ordem de sessão inválida resulta em inconsistências de dados e erros de atribuição

Restrições de integração:

  • Processamento em tempo real: As requisições são processadas individualmente—não há suporte a lotes
  • Eventos cronológicos: Os eventos devem ser enviados na ordem em que ocorreram
  • Sem deduplicação: A Singular não deduplica dados—implemente a deduplicação no servidor para evitar duplicatas
  • Permanência dos dados: Os dados em nível de dispositivo não podem ser excluídos após a ingestão—valide antes de enviar

Diretrizes de acompanhamento de eventos

Implemente o acompanhamento de eventos seguindo as práticas recomendadas da Singular para convenções de nomenclatura e estrutura de dados.

Definição de eventos

Definindo eventos

Antes de implementar a integração S2S, defina a lista completa de eventos que a sua organização deseja acompanhar para análise de desempenho de campanhas.

Guia de planejamento de eventos: Definindo eventos in-app

Impacto da nomenclatura de eventos: Os nomes de eventos passados à Singular determinam diretamente como os eventos aparecem em relatórios, exportações e postbacks.


Nomenclatura padrão de eventos

Práticas recomendadas:


Limitações de caracteres

Restrições de comprimento:

  • Nomes de eventos: Máximo de 32 caracteres ASCII (32 bytes ao serem convertidos para UTF-8 no caso de não-ASCII)
  • Atributos de eventos: Máximo de 500 caracteres ASCII por chave e valor de atributo

Seleção do endpoint da API

A Singular oferece duas versões do endpoint EVENT otimizadas para diferentes arquiteturas de integração.

Seleção do endpoint: Escolha o endpoint com base na sua arquitetura de integração e na estratégia de identificador de dispositivo. O caso de uso determina o endpoint correto.

Event Endpoint V1

Casos de uso do V1

Use o Event Endpoint V1 para integrações que dependem de identificadores de dispositivo específicos de plataforma (IDFA, IDFV, AIFA, ASID, etc.).

Recomendado para:

  • Puramente server-side: Integrações server-side sem implementação do Singular SDK
  • Híbrida (não-SDID): Integrações híbridas em que o Singular SDK não usa o Singular Device ID (SDID)

URL do endpoint:

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

Event Endpoint V2

Casos de uso do V2

Use o Event Endpoint V2 para integrações híbridas em que o Singular SDK acompanha sessões usando o SDID e o servidor envia eventos usando o mesmo SDID.

Recomendado para:

  • Híbrida (baseada em SDID): O Singular SDK acompanha sessões com o SDID e os eventos server-side usam o mesmo SDID
  • Identificadores simplificados: Implementações que evitam identificadores de dispositivo específicos de plataforma (IDFA, AIFA, etc.)

URL do endpoint:

GET https://s2s.singular.net/api/v2/evt

Habilitação da conta: O endpoint V2 requer configuração da conta Singular para o uso de SDID. Entre em contato com o seu Solution Engineer ou CSM para habilitação.


Variante Web (p=Web)

As integrações web usam esse mesmo endpoint EVENT com p=Web . Não há chamada de SESSION web: o primeiro __PAGE_VISIT__ evento com conversion_event=true estabelece o touchpoint de atribuição no lugar de um launch.

Guia completo: Para o padrão completo assistido por navegador (persistência de SDID, __PAGE_VISIT__ sequenciamento, web-to-app, e deferred deep linking via clipboard), consulte o Guia de implementação Web S2S .

Parâmetros específicos de web

Estes parâmetros se aplicam quando p=Web . Os parâmetros compartilhados ( a , i , ip , sdid , custom_user_id ) estão definidos em Fundamentos de S2S .

Parâmetro Detalhes
conversion_event

boolean

Defina como true apenas no __PAGE_VISIT__ evento de atribuição; false em todos os outros eventos web. Um evento de não-conversão que chega antes do seu evento de conversão é adiado brevemente para aguardar uma correspondência.

Exemplo: true

attribution_data

JSON

JSON codificado em URL com os dados de campanha extraídos da URL de destino, enviado no __PAGE_VISIT__ evento. Consulte attribution_data e web click IDs para os mapeamentos de campos.

Exemplo: %7B%22partner_name%22%3A%22Snapchat%22%2C%22is_attributed%22%3A%22true%22%7D

web_url

string

A URL de destino da campanha que continha parâmetros de marketing (UTM / wp* / pc* ). Usada para atribuição (criação de touchpoint).

Exemplo: http://my.landing.page/?utm_campaign=test&utm_source=test

web_page_referrer

string

O referenciador ( document.referrer ). Usado para classificação de source/type orgânico.

Exemplo: https://www.google.com/

Web click IDs: passe os click IDs de parceiros ( ScCid , ttclid , gclid / gbraid / wbraid , dclid , fbclid , rdt_uuid ) dentro do parâmetro de evento e .


Identificadores de dispositivo obrigatórios

Os requisitos de identificador de dispositivo variam conforme a versão do endpoint e a plataforma. Revise os requisitos específicos de plataforma abaixo.

Identificadores do endpoint V1

Identificadores específicos de plataforma

O Event Endpoint V1 requer identificadores de publicidade específicos de plataforma com base no sistema operacional do dispositivo e no método de distribuição do app.

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


Identificadores do endpoint V2

Requisito somente de SDID

O Event Endpoint V2 requer apenas o Singular Device ID (SDID) para todas as plataformas, simplificando a identificação de dispositivos.

Parâmetro Detalhes
sdid

Plataformas: iOS, Android, Web, PC, Xbox, PlayStation, Nintendo, MetaQuest, CTV

Singular Device ID obtido a partir do Singular SDK ou gerado no cliente.

  • iOS/Android: Requer habilitação da conta para o uso de SDID—o método de callback do SDK fornece o SDID após a inicialização
  • Simplificação de identificadores: Elimina a necessidade dos parâmetros AIFA, ASID, IDFA, IDFV
  • Web: Obtido a partir do Singular Web SDK
  • PC/Console/CTV: UUIDv4 gerado no cliente representando uma instalação única do app
  • Recuperar SDID

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


Parâmetros obrigatórios

Todas as requisições EVENT devem incluir estes parâmetros obrigatórios além dos identificadores de dispositivo.

Formato dos parâmetros: Todos os parâmetros devem ser passados como parâmetros de query da URL usando o método GET. Não envie parâmetros no corpo de requisição JSON.

Autenticação da API

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


Parâmetros de dispositivo

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


Parâmetros de aplicativo

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


Parâmetros de evento

Parâmetro Detalhes
n

string

Nome do evento que está sendo acompanhado.

Exemplo: sng_add_to_cart


Parâmetros opcionais

Os parâmetros opcionais aprimoram o acompanhamento de eventos com contexto e funcionalidade adicionais.

Parâmetros de timestamp

Parâmetro Detalhes
utime

integer

Timestamp Unix de 10 dígitos do evento.

Exemplo: 1483228800

umilisec

integer

Timestamp Unix de 13 dígitos com milissegundos.

Exemplo: 1483228800000


Atributos de evento

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.

Parâmetro Detalhes
e

JSON

String JSON codificada em URL que especifica atributos de evento personalizados.

Estrutura JSON:

{
  "sng_attr_content_id": 5581,
  "sng_attr_content": "XBox",
  "sng_attr_content_type": "electronics"
}

Exemplo codificado em URL:

%7B%22sng_attr_content_id%22%3A5581%2C%22sng_attr_content%22%3A%22XBox%22%2C%22sng_attr_content_type%22%3A%22electronics%22%7D
global_properties

JSON

Objeto JSON codificado em URL contendo pares chave-valor personalizados aplicados globalmente ao evento.

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


Parâmetros de rede

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


Privacidade de dados

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


Suporte a Cross-Device

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

Conversion value mais recente do SKAdNetwork no momento do evento.

Saiba mais: Implementação de SKAdNetwork

Exemplo: 7

skan_first_call_timestamp
iOS

integer

Timestamp Unix da primeira chamada à SKAdNetwork API.

Exemplo: 1483228800

skan_last_call_timestamp
iOS

integer

Timestamp Unix da chamada mais recente à SKAdNetwork API no momento do evento.

Exemplo: 1483228800


Acompanhamento de receita

Acompanhe compras in-app e eventos de receita com validação adequada e tratamento de moeda.

Parâmetros de receita obrigatórios

Acompanhamento básico de receita

Parâmetros mínimos obrigatórios para o acompanhamento de eventos de receita quando você realiza a sua própria validação de receita.

Prática recomendada: Valide os eventos de receita com as App Stores no seu servidor antes de enviar a requisição do evento à Singular. Se você realizar a sua própria validação, apenas estes parâmetros são obrigatórios.

Parâmetro Detalhes
is_revenue_event

boolean

Especifica se o evento é um evento de receita.

  • Pode ser omitido se o nome do evento for __iap__ ou se um valor diferente de zero em amt for fornecido

Exemplo: true

amt

number

Valor monetário da transação.

  • Use em conjunto com o parâmetro cur

Exemplo: 2.51

cur

string

Código de moeda de três letras maiúsculas ISO 4217 .

  • Use em conjunto com o parâmetro amt

Exemplo: USD


Parâmetros de validação de receita

Receita validada pela Singular

Parâmetros opcionais para que a Singular realize a validação de receita no servidor com as App Stores.

Requisitos de validação:

  • Obrigatório se você depender da Singular para a validação de receita com as App Stores
  • Confirme a sintaxe correta dos valores de recibo de compra e assinatura
  • A formatação incorreta faz com que a Singular bloqueie a receita e gere um __iapinvalid__ evento
Parâmetro Detalhes
purchase_receipt
iOS, Android

JSON

Recibo recebido da transação de compra.

Exemplo (iOS):

MIISqwYJKoZI...cNqts0jvcNvPcK7yuj0KhJ9nTTQ54kDKfReihzc6aw==

Exemplo (Android, codificado em URL):

%7B%22orderId%22%3A%22GPA.1234%22%2C%22packageName%22%3A%22com.example%22%2C%22productId%22%3A%22com.example.product%22...
receipt_signature
Android

string

Assinatura usada para assinar o recibo de compra (somente Android).

Exemplo:

TyVJfHg8OAoW7W4wuJt...5agEDMnNXvhfrw==
purchase_product_id

string

Identificador SKU do produto.

Exemplo: com.example.product

purchase_transaction_id

string

Identificador da transação.

Exemplo (iOS): 380000123004321

Exemplo (Android): GPA.1234-1234-1234-12345


Exemplos de requisição

O código de exemplo demonstra a integração do endpoint EVENT 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 i (identificador de app) exclusivo para desenvolvimento/testes.

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',
    'bd': 'Build/13D15',
    'aifa': '8ecd7512-2864-440c-93f3-a3cabe62525b',
    'asid': 'edee92a2-7b2f-45f4-a509-840f170fc6d9',
    'n': 'sng_add_to_cart'
}

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

Códigos de resposta e erros

O endpoint EVENT 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 S2S e tratamento de erros


Testes e validação

Verifique a integração de eventos 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. Registrar dispositivo de teste: Obtenha o advertising ID do dispositivo e adicione-o ao Singular SDK Console
  2. Habilitar log do Console: Adicione o identificador de dispositivo no SDK Console para capturar os dados de teste
  3. Usar App ID de desenvolvimento: Sobrescreva o identificador de app com a versão de desenvolvimento (por exemplo, com.singular.app.dev ) para separar os dados de teste dos de produção
  4. Compilar e iniciar: Compile ou abra o app a partir do estado encerrado
  5. Validar dados do cliente: Confirme que o app envia todos os pontos de dados obrigatórios da Singular ao seu servidor
  6. Verificar SESSION: Confirme que o 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 (SESSION): Em segundos, o evento SESSION deve aparecer no SDK Console

Evento SESSION no SDK Console


Teste de eventos

  1. Disparar evento: Prossiga para disparar um evento no app
  2. Validar dados do evento: Confirme que o evento foi enviado ao seu servidor com todos os pontos de dados obrigatórios da Singular
  3. Verificar requisição do servidor: Confirme que o seu servidor envia a requisição EVENT para https://s2s.singular.net/api/v1/evt com todos os parâmetros obrigatórios
  4. Verificar o SDK Console (EVENT): Em segundos, o EVENT deve aparecer no SDK Console
  5. Repetir os testes: Valide que todos os eventos foram enviados com os valores esperados

Evento no SDK Console

Verificações críticas:

  • Confirme que o evento SESSION ocorre na abertura/foreground do app ANTES de o EVENT ser recebido
  • Confirme que os pontos de dados obrigatórios do EVENT correspondem aos pontos de dados da SESSION

Indicador de sucesso: Se os eventos aparecerem no SDK Console, você concluiu com sucesso o teste de integração de eventos de ponta a ponta!


Recursos adicionais

Documentação de testes

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