Acompanhamento de eventos in-app

Documento

Rastreamento de eventos in-app

A Singular pode coletar dados sobre eventos in-app para ajudar a analisar o desempenho de suas campanhas e medir KPIs. Por exemplo, a sua organização pode querer recolher dados sobre logins de utilizadores, registos, conclusões de tutoriais ou subida de nível numa aplicação de jogos.

Eventos e atributos padrão

O Singular suporta uma variedade de eventos padrão. Estes eventos normalmente utilizados são muitas vezes suportados por redes de anúncios para relatórios e otimização. Outra vantagem é que, quando você usa nomes de eventos padrão, o Singular os reconhece automaticamente e os adiciona à lista de eventos sem que você tenha que defini-los manualmente. Recomendamos o uso de eventos padrão sempre que possível.

A lista de eventos enviados para a Singular (com os atributos que os acompanham) deve ser compilada pela equipa de UA/marketing/negócio com base nos KPIs de marketing da sua organização. A equipe de negócios pode seguir o guia em Como rastrear eventos no aplicativo: Guide For Singular Attribution Customers.

Com cada evento que rastreia, pode passar vários atributos. Veja os atributos padrão recomendados por evento.

Envio de eventos

Em seu código, envie eventos para a Singular usando os métodos eventJSON ou event (recomendamos eventJSON para facilitar a leitura).

Limitações de eventos personalizados:

  • Recomendamos vivamente a passagem de nomes e atributos de eventos em inglês para garantir a compatibilidade com parceiros terceiros e soluções de análise, caso planeie utilizá-los.
  • Os nomes de eventos são limitados a 32 caracteres ASCII. As cadeias de caracteres em caracteres não ASCII têm de ter menos de 32 bytes depois de convertidas para UTF-8.
  • Os atributos e valores estão limitados a 500 caracteres ASCII.

Método Singular.eventJSON

Comunica um evento de utilizador ao Singular com informações adicionais no formato JSONObject.

Assinaturas

Singular.eventJSON(String name, JSONObject args)
Nota: 'args' é um JSONObject que contém um ou mais pares chave-valor. A chave é uma string e o valor pode ser qualquer tipo que seja permitido como um valor JSONObject.

Exemplos de utilização

JavaKotlin
// Example 1:

// Send the standard event sng_tutorial_complete with the

// recommended standard attributes


JSONObject att = new JSONObject();
try {
    att.put(Attributes.sngAttrContent.toString(), "Telugu");
    att.put(Attributes.sngAttrContentId.toString(), 32);
    att.put(Attributes.sngAttrContentType.toString(), "video");
    att.put(Attributes.sngAttrSuccess.toString(), 92);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON(Events.sngTutorialComplete.toString(), att);

// Example 2:

// Send a custom event named "bonus_points_earned" with custom attributes

JSONObject att = new JSONObject();
try {
    att.put("Points", 500);
    att.put("score", 650);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON("Bonus Points Earned", att);

Método Singular.event

Relata um evento de usuário para o Singular com ou sem informações adicionais.

Assinaturas

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

Nota: 'args' é um ou mais pares chave-valor (veja o exemplo abaixo). A chave é uma cadeia de caracteres e o valor pode ser qualquer tipo que seja permitido como um valor JSONObject (ou seja, 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 pelo Singular.

Exemplos de uso

JavaKotlin
// Example 1:

// Send the standard event "Subscribe" (sng_subscribe) without any attributes

Singular.event(Events.sngSubscribe.toString());

// Example 2:

// Send the standard event "sng_tutorial_complete" with the 

//recommended standard attributes
Singular.event(Events.sngTutorialComplete.toString(),
    Attributes.sngAttrContent.toString(), "Spanish",
    Attributes.sngAttrContentId.toString(), 52,
    Attributes.sngAttrContentType.toString(), "video",
    Attributes.sngAttrSuccess.toString(), 46
);

// Example 3:

// Send a custom event named "SignUp" without any custom attributes

Singular.event("SignUp");

// Example 4:

// Send a custom event named "bonus_points_earned" with a custom attribute

Singular.event("Bonus Points Earned", "Points", 500);

Rastreamento de receita in-app

A Singular captura eventos de receita de compras in-app (IAP), assinaturas e receita personalizada para medir o desempenho da campanha e o retorno sobre o gasto com anúncios (ROAS). Os dados de receita ficam disponíveis por meio de três canais principais:

  • Relatórios interactivos no dashboard Singular
  • Registos de exportação detalhados e destinos de dados ETL para análise personalizada
  • Postbacks em tempo real para plataformas externas

Este acompanhamento abrangente das receitas permite tomar decisões baseadas em dados sobre os gastos de marketing e a otimização de campanhas, proporcionando flexibilidade na forma como os dados são consumidos e analisados.

Limitações do evento de receita
  • Se forem utilizados nomes personalizados de eventos de receitas, os nomes personalizados de eventos de receitas estão limitados a 32 caracteres ASCII. Para caracteres não-ASCII, o limite é de 32 bytes depois de convertidos para UTF-8.
  • Os nomes e valores de atributos de eventos estão limitados a 500 caracteres ASCII.
  • Os códigos de moeda têm de estar em MAIÚSCULAS e respeitar o código de moeda ISO 4217 de três letras:

    USD, EUR, INR

Melhores práticas

  • A Singular recomenda a transmissão de eventos usando a convenção de nomenclatura de eventos e atributos padrão da Singular.
  • Se forem usados nomes personalizados de eventos de receita, eles devem ser enviados em inglês para melhorar a compatibilidade com postbacks da rede de anúncios.
  • Os eventos de receita só devem ser enviados para a Singular quando o valor da receita for maior ou menor que 0.

Compra no aplicativo sem assinatura

Para relatar eventos de receita para a Singular, passe o objeto Purchase recebido da Biblioteca de faturamento do Google para os métodos SDK revenue ou customRevenue. Isso tem duas vantagens:

  • A Singular obtém todos os detalhes da transação, o que enriquece seus relatórios da Singular.
  • O Singular obtém o recibo da transação do Google, que pode ser usado para validar a transação no contexto do combate à fraude in-app.

Observações:

  • customRevenue permite-lhe passar um nome de evento personalizado, para que possa ver a receita nos relatórios Singular dividida pelos diferentes tipos de eventos de receita.
  • Qualquer receita relatada em uma moeda diferente será convertida automaticamente para a moeda preferida da sua organização, conforme definido na sua conta do Singular.

Método de receita

Enviar um evento de receita para a Singular com o objeto Purchase.

Assinaturas

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

Exemplos de uso

JavaKotlin
Singular.revenue("USD", 5.50, purchase);

Método customRevenue

Envia um evento de receita para a Singular com um nome de evento personalizado e o objeto Purchase.

Assinaturas

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

Exemplos de uso

JavaKotlin
Singular.customRevenue("MyCustomRevenue", "USD", 5.50, purchase);

Receita de assinatura

Acompanhamento de assinaturas:

O Singular permite que você rastreie suas assinaturas e renovações dentro do seu aplicativo, fornecendo insights sobre o comportamento do usuário e geração de receita. Consulte nosso guia abrangente sobre como implementar eventos de assinatura usando o SDK Singular.[Guia de implementação técnica de eventos de assinatura].


Receita personalizada sem validação de compra

Embora seja altamente recomendável relatar eventos de receita da maneira descrita acima, também é possível usar revenue e customRevenue sem passar o objeto de compra. Em vez disso, você passa a moeda e o valor da transação, e detalhes opcionais do produto.

O método customRevenue também permite passar um nome de evento personalizado.

Observe que, se você usar esses métodos, o Singular não obtém o recibo da transação e não pode validar a transação.

Método revenue

Envia um evento de receita para a Singular com o valor da receita, moeda e detalhes opcionais.

Assinaturas

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

JavaKotin

Sem detalhes do produto

Singular.revenue("USD", 5.50);

Com detalhes do produto

Singular.revenue("EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

Com detalhes do produto em um mapa de atributos

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.revenue("USD", 9.99, attributes);

Método customRevenue

Envie eventos de receita personalizados para o Singular especificando o nome do evento, o valor da receita, o código da moeda e quaisquer atributos de transação adicionais. A Singular processa esses eventos para rastrear a receita in-app.

Assinaturas

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

JavaKotin

Sem detalhes do produto

Singular.customRevenue("MyCustomRevenue", "USD", 5.50);

Com detalhes do produto

Singular.customRevenue("MyCustomRevenue", "EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

Com detalhes do produto em um mapa de atributos

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.customRevenue("MyCustomRevenue", "USD", 9.99, attributes);

Rastreamento de eventos híbrido (avançado)

A Singular recomenda o envio de todos os eventos e receitas por meio do SDK da Singular integrado ao seu aplicativo. No entanto, a Singular pode coletar eventos e receitas de outras fontes.

Qualquer evento NÃO enviado do SDK da Singular deve estar em conformidade com os requisitos de documentação de eventos de servidor para servidor da Singular e fornecer o identificador de dispositivo correspondente para atribuir corretamente um evento.

Importante:

Ocorrerão discrepâncias se os identificadores de dispositivo usados nas solicitações de eventos de servidor para servidor não tiverem um identificador de dispositivo correspondente no Singular. Tenha em atenção as seguintes possibilidades:

  • Se um pedido de evento for recebido "antes" de o SDK do Singular ter registado o identificador do dispositivo, a partir de uma sessão da aplicação, o pedido de evento será considerado a "primeira sessão" para o dispositivo desconhecido e o Singular atribuirá o dispositivo como uma atribuição orgânica.
  • Se o Singular SDK tiver registado um identificador de dispositivo, mas o identificador do Singular SDK for diferente do identificador de dispositivo especificado no pedido de evento de servidor para servidor, o evento será atribuído incorretamente.

Guias de rastreamento de eventos híbridos

Envio de eventos de um servidor interno

A Singular pode coletar dados sobre a receita do seu servidor para ajudar a analisar o desempenho e o ROI de suas campanhas.

Requisitos:

  • A partir de um evento de registo ou de início de sessão na aplicação, capture e passe os identificadores do dispositivo e armazene estes dados com o ID de utilizador no seu servidor. Como os identificadores de dispositivo podem mudar para um utilizador, certifique-se de que actualiza os identificadores quando um utilizador gera uma sessão de aplicação. Isto garante que o evento do lado do servidor será atribuído ao dispositivo correto.
  • Os eventos do lado do servidor são específicos da plataforma e só devem ser enviados com o identificador de dispositivo correspondente à plataforma do dispositivo (por exemplo, IDFA ou IDFV para dispositivos iOS).
  • Pode utilizar o mecanismo de postback do Singular Internal BI para enviar um evento em tempo real para o seu ponto de extremidade interno, para que possa atualizar o conjunto de dados no lado do servidor. Consulte as Perguntas frequentes sobre o postback do BI interno.
  • Reveja a secção "Acompanhamento de receitas" no guia de Integração Servidor a Servidor para obter mais detalhes.

Envio de eventos de um fornecedor de receitas

Provedores de terceiros, como RevenueCat ou adapty, podem fornecer receita de compra e assinatura para a Singular.

Siga os links abaixo para obter detalhes sobre como habilitar esses parceiros.


Envio de eventos do Segment

Para habilitar o Segment a enviar eventos para a Singular, em paralelo com o SDK da Singular, é preciso adicionar um Destino "Cloud-Mode" no Segment. Siga nosso guia AQUI.