SDK do Android - Acompanhamento de eventos na aplicação

Documento SDK do Android - Acompanhamento de eventos e receitas

Acompanhamento de eventos in-app

Acompanhe os eventos in-app para analisar o desempenho da campanha e medir os principais indicadores de desempenho (KPIs), como logins de utilizadores, registos, conclusões de tutoriais ou marcos de progressão.

Eventos e atributos padrão

Uso de eventos padrão

O Singular oferece suporte a eventos padrãoque são reconhecidos pelas redes de anúncios para geração de relatórios e otimização. Use nomes de eventos padrão sempre que possível para reconhecimento automático e configuração simplificada.

A sua equipa de UA, de marketing ou de negócios deve compilar a lista de eventos com base nos KPIs de marketing da sua organização. Consulte o guia Como rastrear eventos no aplicativo: Guia para Clientes de Atribuição Singularpara planeamento.

Cada evento suporta vários atributos. Consulte os atributos padrão recomendados por eventopara obter detalhes de implementação.


Envio de eventos

Diretrizes de implementação de eventos

Envie eventos para a Singular usando os métodos eventJSON ou event (recomendamos eventJSON para melhorar a legibilidade).

  • Eventos padrão: Use o nome Android do eventoda lista de eventos padrão, por exemplo, sngTutorialComplete
  • Eventos personalizados: Para eventos exclusivos da sua aplicação que não correspondam aos eventos padrão, utilize qualquer cadeia descritiva que esteja em conformidade com as limitações de caracteres

Limitações de eventos personalizados:

  • Idioma: Transmita nomes e atributos de eventos em inglês para garantir a compatibilidade com parceiros de terceiros e soluções de análise
  • Nomes de eventos: Limitado a 32 caracteres ASCII. As cadeias de caracteres não ASCII devem ter menos de 32 bytes quando convertidas para UTF-8
  • Atributos e valores: Limitado a 500 caracteres ASCII

Método eventJSON

Reportar eventos de utilizador com informações adicionais utilizando o formato JSONObject para dados estruturados.

Assinatura do método:

Singular.eventJSON(String name, JSONObject args)

Nota: O parâmetro args é um JSONObject que contém um ou mais pares de valores chave. As chaves devem ser cadeias de caracteres e os valores podem ser de qualquer tipo permitido como um valor JSONObject.

Exemplos de utilização

KotlinJava
// Example 1: Standard event with recommended attributes
val att = JSONObject().apply {
    put(Attributes.sngAttrContent.toString(), "Telugu")
    put(Attributes.sngAttrContentId.toString(), 32)
    put(Attributes.sngAttrContentType.toString(), "video")
    put(Attributes.sngAttrSuccess.toString(), 75)
}
Singular.eventJSON(Events.sngTutorialComplete.toString(), att)

// Example 2: Custom event with custom attributes
val att = JSONObject().apply {
    put("Points", 500)
    put("score", 650)
}
Singular.eventJSON("Bonus Points Earned", att)

event Método

Relata eventos do utilizador com ou sem informações adicionais utilizando argumentos variáveis.

Assinaturas de método:

Singular.event(String eventName)
Singular.event(String eventName, Object... args)

Nota: O parâmetro args aceita um ou mais pares de valores chave. As chaves devem ser cadeias de caracteres e os valores podem ser de qualquer tipo permitido como um valor JSONObject (JSONObject, JSONArray, String, Boolean, Integer, Long, Double ou NULL). A lista args deve conter um número par de elementos ou o evento será rejeitado.

Exemplos de uso

KotlinJava
// Example 1: Standard event without attributes
Singular.event(Events.sngSubscribe.toString())

// Example 2: Standard event with recommended attributes
Singular.event(Events.sngTutorialComplete.toString(),
    Attributes.sngAttrContent.toString(), "Telugu",
    Attributes.sngAttrContentId.toString(), "32",
    Attributes.sngAttrContentType.toString(), "video",
    Attributes.sngAttrSuccess.toString(), "yes"
)

// Example 3: Custom event without attributes
Singular.event("SignUp")

// Example 4: Custom event with custom attribute
Singular.event("Bonus Points Earned", "Points", 500)

Acompanhamento de receitas na aplicação

Acompanhe a receita de compras no aplicativo (IAP), assinaturas e fontes de receita personalizadas para medir o desempenho da campanha e o retorno sobre o gasto com anúncios (ROAS).

Os dados de receita fluem através de três canais:

  • Relatórios interactivos: Visualizar métricas de receita no painel do Singular
  • Registos de exportação: Aceder a dados ETL detalhados para análise personalizada
  • Postbacks em tempo real: Enviar eventos de receita para plataformas externas

Limitações de eventos de receita:

  • Nomes de eventos: Os nomes personalizados de eventos de receita são limitados a 32 caracteres ASCII (ou 32 bytes para não-ASCII quando convertidos para UTF-8)
  • Atributos: Os nomes e valores dos atributos do evento estão limitados a 500 caracteres ASCII
  • Códigos de moeda: Devem estar em MAIÚSCULAS e seguir a norma ISO 4217de três letras (por exemplo, USD, EUR, INR)

Melhores práticas

  • Nomenclatura padrão: Utilizar a convenção de nomenclatura de eventos e atributos padrãoda Singular
  • Idioma: Envie nomes de eventos de receita personalizados em inglês para melhorar a compatibilidade de postback da rede de anúncios
  • Valores diferentes de zero: Envie eventos de receita apenas quando o valor for maior ou menor que 0

Compra no aplicativo sem assinatura

Integração do objeto de compra

Passe o objeto Purchaseda Biblioteca de faturação do Google para os métodos revenue ou customRevenue para obter relatórios enriquecidos e validação de transacções.

Vantagens:

  • Dados avançados: O Singular recebe detalhes completos da transação para relatórios abrangentes
  • Prevenção de fraudes: Os recibos de transação permitem a validação para combater a fraude in-app

Observações:

  • Nomes de eventos personalizados: O método customRevenueaceita nomes de eventos personalizados para dividir a receita por tipo de evento em relatórios
  • Conversão de moeda: A receita em diferentes moedas é automaticamente convertida para a moeda preferida da sua organização

Método de receita com Purchase

Enviar um evento de receita com o objeto Purchase para validação automática e dados enriquecidos.

Assinatura do método:

Singular.revenue(String currency, double amount, Object purchase)

Exemplo de utilização

KotlinJava
Singular.revenue("USD", 5.50, purchase)

customRevenue Método com Purchase

Envia um evento de receita com um nome personalizado e o objeto Purchase para um acompanhamento categorizado das receitas.

Assinatura do método:

Singular.customRevenue(String eventName, String currency, double amount, Object purchase)

Exemplo de utilização

KotlinJava
Singular.customRevenue("MyCustomRevenue", "USD", 5.50, purchase)

Receita de assinatura

Implementação do evento de assinatura

Acompanhe as compras e renovações de subscrições para obter informações sobre o comportamento do utilizador e a geração de receitas recorrentes.

Guia de implementação: Consulte o abrangente Guia de Implementação Técnica de Eventos de Assinaturapara obter instruções detalhadas sobre como rastrear assinaturas com o SDK Singular.


Receita personalizada sem validação de compra

Rastreamento manual de receita

Rastreie a receita passando a moeda, o valor e os detalhes opcionais do produto sem o objeto Purchase. Observe que esse método não fornece recibos de transação para validação.

Importante: Ao usar esses métodos, o Singular não pode validar transações. É altamente recomendável usar os métodos do objeto Purchase descritos acima sempre que possível.


Método de receita sem compra

Envia eventos de receita com moeda, valor e detalhes opcionais do produto.

Assinaturas de métodos:

Singular.revenue(String currency, double amount)
Singular.revenue(String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.revenue(String currency, double amount, Map<String, Object> attributes)

Exemplos de uso

KotlinJava
// Without product details
Singular.revenue("USD", 5.50)

// With product details
Singular.revenue("EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee", 1, 5.00)

// With product details in an attribute map
val attributes = mutableMapOf<String, Any>().apply {
    put("product_id", "com.app.premium")
    put("transaction_id", "T12345")
    put("quantity", 1)
    put("is_trial", false)
}
Singular.revenue("USD", 9.99, attributes)

customRevenue Método sem Purchase

Envia eventos de receita personalizados com um nome de evento especificado, moeda, montante e atributos de transação opcionais.

Assinaturas do método:

Singular.customRevenue(String eventName, String currency, double amount)
Singular.customRevenue(String eventName, String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.customRevenue(String eventName, String currency, double amount, Map<String, Object> attributes)

Exemplos de uso

KotlinJava
// Without product details
Singular.customRevenue("MyCustomRevenue", "USD", 5.50)

// With product details
Singular.customRevenue("MyCustomRevenue", "EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee", 1, 5.00)

// With product details in an attribute map
val attributes = mutableMapOf<String, Any>().apply {
    put("product_id", "com.app.premium")
    put("transaction_id", "T12345")
    put("quantity", 1)
    put("is_trial", false)
}
Singular.customRevenue("MyCustomRevenue", "USD", 9.99, attributes)

Rastreamento de evento híbrido (avançado)

Envie todos os eventos e receitas através do Singular SDK integrado em seu aplicativo para uma atribuição ideal. No entanto, a Singular pode coletar eventos de outras fontes quando necessário.

Os eventos enviados fora do Singular SDK devem estar em conformidade com a documentação de eventos de servidor para servidordo Singular e fornecer identificadores de dispositivo correspondentes para atribuição correta.

Importante:

Ocorrem discrepâncias quando os identificadores de dispositivos em solicitações de servidor para servidor não correspondem aos identificadores registrados pelo SDK da Singular:

  • Eventos antecipados: Se um evento chegar antes de o Singular SDK registar o identificador do dispositivo, o evento torna-se a "primeira sessão" de um dispositivo desconhecido, resultando numa atribuição orgânica
  • Identificadores incompatíveis: Se o Singular SDK registar um identificador de dispositivo diferente do que consta do pedido de servidor para servidor, o evento será atribuído incorretamente

Guias de rastreamento de eventos híbridos

Envio de eventos de um servidor interno

Colete dados de receita do seu servidor interno para analisar o desempenho da campanha e o ROI.

Requisitos:

  • Capturar identificadores de dispositivo: Durante os eventos de registo ou início de sessão in-app, capture e passe identificadores de dispositivo e, em seguida, armazene estes dados com o ID de utilizador no seu servidor. Atualize os identificadores quando os usuários gerarem novas sessões de aplicativo para garantir a atribuição correta
  • Identificadores específicos da plataforma: Envie eventos do lado do servidor com o identificador de dispositivo correspondente à plataforma (por exemplo, IDFA ou IDFV para dispositivos iOS)
  • Actualizações em tempo real: Utilize o mecanismo de postback do BI interno da Singular para enviar eventos em tempo real para o ponto de extremidade. Consulte as Perguntas frequentes sobre postback do BI interno
  • Detalhes de implementação: Reveja a secção "Tracking Revenue"no guia de Integração Servidor a Servidor

Envio de eventos de um fornecedor de receitas

Integre provedores de receita de terceiros como RevenueCat ou adapty para enviar receitas de compras e assinaturas para a Singular.

Provedores suportados:


Envio de eventos do Segment

Habilite o Segment para enviar eventos para a Singular em paralelo com o SDK da Singular adicionando um destino "Modo nuvem" no Segment.

Siga o guia de implementação Integração Singular-Segmentpara obter instruções detalhadas de configuração.