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 o método Event() com atributos opcionais para dados enriquecidos.
-
Eventos padrão: Use o nome da Unidade do eventoda lista de eventos padrão, por exemplo,
Events.sngLogin - Eventos personalizados: Para eventos exclusivos do seu aplicativo que não correspondem aos eventos padrão, use 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 de evento
Comunicar eventos do utilizador com ou sem informações adicionais utilizando argumentos variáveis ou o formato Dictionary.
Assinaturas de método:
public static void Event(string name)
public static void Event(string name, params object[] args)
public static void Event(Dictionary<string, object> args, string name)
Nota: Ao usar a assinatura params object[] args, a lista de argumentos deve conter um número par de elementos (pares chave-valor) ou o evento será rejeitado. Ao passar dicionários, os valores devem ser de um destes tipos: string, int, long, float, double, null, ArrayList, Dictionary<string, object>
Exemplos de uso
// Example 1: Standard event without attributes
SingularSDK.Event(Events.sngLogin);
// Example 2: Standard event with recommended attributes (key-value pairs)
SingularSDK.Event(Events.sngTutorialComplete,
Attributes.sngAttrContent, "Unity Basics",
Attributes.sngAttrContentId, 32,
Attributes.sngAttrContentType, "video",
Attributes.sngAttrSuccess, "yes"
);
// Example 3: Standard event with attributes using Dictionary
Dictionary<string, object> attributes = new Dictionary<string, object>()
{
[Attributes.sngAttrContent] = "Unity Basics",
[Attributes.sngAttrContentId] = 32,
[Attributes.sngAttrContentType] = "video",
[Attributes.sngAttrSuccess] = "yes"
};
SingularSDK.Event(attributes, Events.sngTutorialComplete);
// Example 4: Custom event without attributes
SingularSDK.Event("SignUp");
// Example 5: Custom event with custom attributes
SingularSDK.Event("Bonus Points Earned", "Points", 500, "Level", 5);
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 por 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)
Nota: A receita em diferentes moedas é automaticamente convertida para a moeda preferida da sua organização definida na sua conta Singular.
Práticas recomendadas
- Nomeação padrão: Use 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
Integração do Unity IAP
Compra no aplicativo com IAP do Unity
Passe o objeto IAP Purchase ou Order do Unity para o método InAppPurchase() para relatórios enriquecidos e validação de transações.
Benefícios:
- 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 fraudes no aplicativo
Compatibilidade de versão do Unity IAP:
-
Unity IAP v5: Usa a nova API de compras do Unitycom a biblioteca de faturamento do Google Play 7+. Compatível com Unity 2021.3 LTS e posterior. Utiliza os métodos
InAppPurchase(Order) -
Unity IAP v4: usa a API IAPmais antiga do Unitycom a Biblioteca de Faturamento do Google Play 6. Compatível com o Unity 2018.4 LTS até 2020.3 LTS. Use os métodos
InAppPurchase(Product)
Método InAppPurchase (Unity IAP v5)
Envie eventos IAP usando o objeto Order do Unity IAP v5 para validação automática e dados enriquecidos.
Assinaturas de método:
public static void InAppPurchase(Order order)
public static void InAppPurchase(Order order, Dictionary<string, object> attributes)
public static void InAppPurchase(Order order, bool isRestored)
public static void InAppPurchase(Order order, string eventName, Dictionary<string, object> attributes)
Exemplos de utilização
// Example 1: IAP with order object only
SingularSDK.InAppPurchase(order);
// Example 2: IAP with order and additional attributes
Dictionary<string, object> attr = new Dictionary<string, object>()
{
["promo_code"] = "SUMMER2025",
["user_tier"] = "premium"
};
SingularSDK.InAppPurchase(order, attr);
// Example 3: IAP with restored transaction flag
SingularSDK.InAppPurchase(order, true);
// Example 4: IAP with custom event name and attributes
Dictionary<string, object> attr = new Dictionary<string, object>()
{
["subscription_tier"] = "gold",
["billing_period"] = "monthly"
};
SingularSDK.InAppPurchase(order, "PremiumSubscription", attr);
Método InAppPurchase (Unity IAP v4)
Envia eventos IAP utilizando o objeto Product do Unity IAP v4 para validação automática e dados enriquecidos.
Assinaturas de métodos:
public static void InAppPurchase(Product product, Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName, Product product, Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(IEnumerable<Product> products, Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName, IEnumerable<Product> products, Dictionary<string, object> attributes, bool isRestored = false)
Exemplos de utilização
// Example 1: IAP with single product, no extra attributes
SingularSDK.InAppPurchase(myProduct, null);
// Example 2: IAP with single product and attributes
Dictionary<string, object> attr = new Dictionary<string, object>()
{
["promo_code"] = "SUMMER2025",
["user_tier"] = "premium"
};
SingularSDK.InAppPurchase(myProduct, attr);
// Example 3: IAP with custom event name
SingularSDK.InAppPurchase("PremiumUpgrade", myProduct, null);
// Example 4: IAP with list of products
SingularSDK.InAppPurchase(myProductList, null);
// Example 5: IAP with list of products and custom event name
SingularSDK.InAppPurchase("BundlePurchase", myProductList, null);
Receita personalizada sem validação de compra
Controlo manual de receitas
Rastreie a receita passando a moeda, o valor e os detalhes opcionais do produto sem o objeto Purchase ou Order. Observe que este 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 IAP do Unity descritos acima sempre que possível.
Método de receita
Envia eventos de receita com moeda, valor e detalhes opcionais do produto.
Assinaturas de métodos:
public static void Revenue(string currency, double amount)
public static void Revenue(string currency, double amount, string productSKU, string productName, string productCategory, int productQuantity, double productPrice)
public static void Revenue(string currency, double amount, Dictionary<string, object> attributes)
Exemplos de uso
// Example 1: Revenue without product details
SingularSDK.Revenue("USD", 1.99);
// Example 2: Revenue with product details
SingularSDK.Revenue("USD", 4.99, "coin_package_abc123", "Coin Pack 5", "Bundles", 1, 4.99);
// Example 3: Revenue with attributes dictionary
Dictionary<string, object> attributes = new Dictionary<string, object>()
{
["productSKU"] = "coin_package_abc123",
["productName"] = "Coin Pack 5",
["productCategory"] = "Bundles",
["productQuantity"] = 2,
["productPrice"] = 4.99,
["transaction_id"] = "T12345"
};
SingularSDK.Revenue("USD", 9.98, attributes);
Método CustomRevenue
Envia eventos de receita personalizados com um nome de evento especificado, moeda, valor e atributos de transação opcionais.
Assinaturas do método:
public static void CustomRevenue(string eventName, string currency, double amount)
public static void CustomRevenue(string eventName, string currency, double amount, string productSKU, string productName, string productCategory, int productQuantity, double productPrice)
public static void CustomRevenue(string eventName, string currency, double amount, Dictionary<string, object> attributes)
Exemplos de uso
// Example 1: Custom revenue without product details
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 9.99);
// Example 2: Custom revenue with product details
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 50.50, "abc123", "Premium Item", "Virtual Goods", 2, 25.50);
// Example 3: Custom revenue with attributes dictionary
Dictionary<string, object> attributes = new Dictionary<string, object>()
{
["productSKU"] = "premium_bundle_xyz",
["productName"] = "Premium Bundle",
["productCategory"] = "Bundles",
["productQuantity"] = 1,
["productPrice"] = 99.99,
["discount_applied"] = true
};
SingularSDK.CustomRevenue("PremiumBundlePurchase", "USD", 99.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, o 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 servidor do 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, o que resulta 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, GAID para dispositivos Android)
- Actualizações em tempo real: Utilize o mecanismo de postback do Singular Internal BI para enviar eventos em tempo real para o seu ponto de extremidade. Consulte as FAQs sobre Postback do BI Interno
- Detalhes de implementação: Revise a seção "Rastreamento de receita" no guia de integração de servidor para 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:
- RevenueCat: Saiba mais na documentação do RevenueCat
- adapty: Saiba mais na documentação do adapty
Envio de eventos do Segment
Habilite o Segment para enviar eventos para o Singular em paralelo com o SDK do Singular adicionando um destino "Modo nuvem" no Segment.
Siga o guia de implementação Integração Singular-Segment para obter instruções detalhadas de configuração.