O SDK do Singular está disponível como um plug-in para o Cordova. As instruções abaixo mostram como integrar o Singular na sua aplicação Cordova.
Pré-requisitos
- Este artigo assume que você tem um aplicativo Cordova funcional.
- Para inicializar o SDK, você precisa da Chave do SDK Singular e do Segredo do SDK. Você pode obtê-los na plataforma Singular em"Ferramentas do desenvolvedor > Integração do SDK > Chaves do SDK".
Adicionando o plugin do Singular
Para adicionar o plug-in Singular ao seu projeto Cordova, execute o seguinte:
cordova plugin add singular_cordova_sdk
Ionic
Se você estiver usando o Ionic:
-
Instale o plug-in Singular SDK:
$ ionic cordova plugin add singular_cordova_sdk
-
No seu arquivo ts principal, declare uma variável de janela:
declare var cordova;
-
Agora você pode usar o plug-in Singular diretamente do Cordova:
import {Component} from '@angular/core'; import {Platform} from '@ionic/angular'; declare var cordova; ... export class HomePage { constructor(public platform: Platform) { this.platform.ready().then(() => { // Add code to initialize the Singular SDK here }); }}
Inicializando o SDK (obrigatório)
O código de inicialização do Singular SDK deve ser chamado toda vez que seu aplicativo for aberto. Ele é um pré-requisito para todas as funcionalidades de atribuição do Singular. Ele também envia uma nova sessão de usuário para o Singular (as sessões são usadas para calcular a retenção de usuários).
Para inicializar o SDK do Singular:
- Crie um objeto SingularConfig. O objeto contém sua chave e segredo do Singular SDK.
- Defina configurações opcionais se quiser que seu aplicativo ofereça suporte a deep links e/ou SKAdNetwork (consulte Adicionando suporte a deep links e Adicionando suporte a SKAdNetwork abaixo).
- META Instalar suporte à atribuição de referenciador
Configuração necessária do SDK para ativar a atribuição do "Meta Install Referrer":
- Forneça seu ID do aplicativo do Facebook no objeto de configuração Singular.
// To enable META Install Referrer singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
- Forneça seu ID do aplicativo do Facebook no objeto de configuração Singular.
- Inicialize o SDK usando o objeto SingularConfig.
Exemplo de código (com configurações opcionais comentadas):
// Create the configuration object
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
/*
// Optional: Enable deep linking (requires additional setup steps, see guide)
var linkHandler = function(data){
var deeplink = data.deeplink;
var passthrough = data.passthrough;
var isDeferred = data.isDeferred;
// Add link handling logic here
}
singularConfig.withSingularLink(linkHandler);
*/
/*
// To enable META Install Referrer
singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
*/
/*
// Optional: Enable SKAdNetwork (in Managed Mode, see guide for more options)
singularConfig.withSkAdNetworkEnabled(true);
*/
// Initialize Singular
cordova.plugins.SingularCordovaSdk.init(singularConfig);
Enviando o ID de usuário para a Singular (opcional)
Você pode enviar sua ID de usuário interna para a Singular usando um método do SDK da Singular.
Observação: Se você usar a solução Cross-Device da Singular, deverá coletar a ID de usuário em todas as plataformas.
- A ID de usuário pode ser qualquer identificador e não deve expor PII (Informações de identificação pessoal). Por exemplo, não deve utilizar o endereço de correio eletrónico, o nome de utilizador ou o número de telefone de um utilizador. A Singular recomenda o uso de um valor com hash exclusivo apenas para seus dados primários.
- O valor da ID de usuário passado para a Singular também deve ser a mesma ID de usuário interna que você captura em todas as plataformas (Web/Mobile/PC/Console/Offline).
- A Singular incluirá o ID de utilizador nas exportações ao nível do utilizador, ETL e postbacks do BI interno (se configurado). O ID do usuário é um dado primário e a Singular não o compartilha com outras partes.
- O valor da ID de usuário, quando definido com o método Singular SDK, persistirá até que seja desmarcado usando o método unsetCustomUserId ou até que o aplicativo seja desinstalado. Fechar ou reiniciar a aplicação não anula a definição do ID de utilizador.
Para definir o ID de utilizador, utilize o método setCustomUserId. Para a anular (por exemplo, se o Utilizador "sair" da conta), ligue para unsetCustomUserId.
Nota: Se vários Utilizadores utilizarem um único dispositivo, recomendamos a implementação de um fluxo de fim de sessão para definir e anular a definição do ID de Utilizador para cada início e fim de sessão.
Se você já sabe a ID de usuário quando o aplicativo é aberto, chame setCustomUserId antes de inicializar o SDK do Singular. Dessa forma, o Singular pode ter a ID de usuário desde a primeira sessão. No entanto, a ID de usuário normalmente não está disponível até que o usuário se registre ou faça um login. Nesse caso, chame setCustomUserId após a conclusão do fluxo de registo.
Método SingularCordovaSdk.setCustomUserID | |
---|---|
Descrição | Envia o ID do utilizador para o Singular. |
Assinatura | SingularCordovaSdk.setCustomUserId(String customUserId) |
Exemplo de utilização |
|
Método SingularCordovaSdk.unsetCustomUserID | |
Descrição | Desfaz a definição do ID do utilizador que foi enviado para o Singular. |
Assinatura | SingularCordovaSdk.unsetCustomUserId() |
Exemplo de uso |
|
Importante: Este recurso avançado da Enterprise está disponível apenas em casos excepcionais. Consulte um dos engenheiros de soluções da Singular antes de implementá-lo.
A Singular pode receber dados adicionais de rastreamento de eventos móveis por meio de uma integração de servidor para servidor. Para utilizar este recurso, é necessário mapear o ID do usuário para o identificador de rastreamento de dispositivos móveis da Singular.
Nota: Chame este método o mais rápido possível após a inicialização do SDK do Singular ou assim que tiver o ID do usuário.
Método SingularCordovaSdk.setDeviceCustomUserId | |
---|---|
Descrição | Define o ID de usuário personalizado igual ao login e o mapeia para o identificador de rastreamento do Singular. |
Assinatura | SingularCordovaSdk.setDeviceCustomUserId(String customUserId) |
Exemplo de utilização |
|
Eventos de rastreamento (sem receita)
Além de enviar sessões de usuário para a Singular (através da inicialização do SDK), você também pode enviar eventos de usuário. Os dados sobre eventos in-app ajudam a Singular a analisar o desempenho de suas campanhas de aquisição de usuários e medir KPIs.
Por exemplo, sua organização pode querer coletar dados sobre logins de usuários, registros, conclusões de tutoriais ou subida de nível em um aplicativo de jogos.
Para enviar eventos para o Singular, use o método eventWithArgs . Dê um nome ao evento e adicione os atributos que deseja rastrear.
// Example: Report an event called View Product with event attributes
cordova.plugins.SingularCordovaSdk.eventWithArgs(
'ViewProduct', // Event name
{
// Event attributes
productID:"123",
productCategory:"Outerwear"
}
)
Rastreamento de receita
Para permitir que o Singular rastreie a receita que seu aplicativo gera com compras no aplicativo, relate eventos de IAP ao Singular.
Recomendamos usar o método eventWithArgs e passar o objeto IAP como um atributo de evento. A Singular usa o objeto IAP para validar a compra e detetar compras fraudulentas para que elas não distorçam suas métricas de receita (consulte as Perguntas frequentes sobre validação de compras no aplicativo).
Se estiver a utilizar a biblioteca https://github.com/j3k0/cordova-plugin-purchase, pode utilizar o seguinte código:
store.when('product123 verified', onProductVerified);
product.verify();
function onProductVerified(product){
const iap = new cordova.plugins.SingularCordovaSdk.SingularIAP(product);
cordova.plugins.SingularCordovaSdk.eventWithArgs('IAP_EVENT', iap)
}
Envio de receita personalizada
Se não for possível enviar o objeto IAP para a Singular, uma alternativa é usar o método customRevenue, que aceita um nome de evento, um código de moeda e o valor da compra.
Exemplo:
cordova.plugins.SingularCordovaSdk.customRevenue(
customEventName, // E.g. "purchase"
currencyCode, // E.g. "USD"
purchaseAmount // E.g. 3.2
);
Nota: Passe a moeda como um código de moeda ISO 4217 de três letras, por exemplo, "USD", "EUR", "INR".
Rastreamento de evento 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. Esteja ciente das seguintes possibilidades:
- Se uma solicitação de evento for recebida "antes" de o SDK do Singular ter gravado o identificador do dispositivo, a partir de uma sessão de aplicativo, a solicitação de evento será considerada 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
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 in-app, capture e passe os identificadores de 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.
Siga os links abaixo para obter detalhes sobre como ativar esses parceiros.
Acompanhamento da atribuição de receita de anúncios
A Singular está integrada com plataformas de mediação como Google AdMob, AppLovin, Unity LevelPlay (IronSource) e TradPlus para atribuição de receita de anúncios. A Singular também suporta outras plataformas de mediação através da nossa integração genérica de SDK de receita de anúncios.
Pode obter dados de atribuição de receitas de anúncios da sua plataforma de mediação adicionando um fragmento de código à sua integração do SDK do Singular. Isto também lhe permite obter dados de receitas de anúncios para campanhas SKAdNetwork.
A obtenção da receita de anúncios ao nível do utilizador a partir da sua plataforma de mediação permite que o Singular envie a receita de anúncios atribuída de volta às fontes de media que podem aceitar estes dados para executar campanhas AdROAS.
Consulte as instruções e os trechos de código para a implementação do SDK[AQUI].
Adicionando suporte a Deep Linking
As ligações profundas são ligações que abrem a aplicação no telemóvel do utilizador e o enviam diretamente para uma página ou experiência de utilizador específica, em vez de apenas para o widget principal da aplicação.
As ligações profundas são normalmente utilizadas em campanhas de retargeting, destinadas a utilizadores que já têm a aplicação no seu telemóvel, mas que podem não ter interagido com ela durante algum tempo.
O Singular suporta links profundos por meio de Singular Links (consulte as Perguntas frequentes sobre Singular Links).
Para usar o Singular Links em seu aplicativo:
- Siga as instruções em Pré-requisitos do Singular Links.
-
Para Android, adicione este código à atividade principal:
import singular_cordova_sdk.SingularCordovaSdk; @Override public void onNewIntent(Intent intent) { SingularCordovaSdk.handleNewIntent(intent); }
import singular_cordova_sdk.SingularCordovaSdk override fun onNewIntent(intent: Intent) { SingularCordovaSdk.handleNewIntent(intent) }
Para iOS, adicione este código ao seu AppDelegate:
import UIKit import SingularCordovaSdk class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var viewController: MainViewController? func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { // Initialize window window = UIWindow(frame: UIScreen.main.bounds) // Configure view controller viewController = MainViewController() window?.rootViewController = viewController // Initialize Singular SDK SingularCordovaSdk.setLaunchOptions(launchOptions) // Make window visible window?.makeKeyAndVisible() return true } func application( _ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void ) -> Bool { return SingularCordovaSdk.startSession(with: userActivity) } }
#import "SingularCordovaSdk.h" #import "MainViewController.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Initialize window self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // Configure view controller self.viewController = [[MainViewController alloc] init]; self.window.rootViewController = self.viewController; // Initialize Singular SDK [SingularCordovaSdk setLaunchOptions:launchOptions]; // Make window visible [self.window makeKeyAndVisible]; return YES; } - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id> *))restorationHandler { return [SingularCordovaSdk startSessionWithUserActivity:userActivity]; }
-
Antes de inicializar o SDK Singular em seu código, adicione .withSingularLink ao objeto de configuração Singular e especifique sua função de manipulador de link:
var singularConfig = new cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>"); var linkHandler = function(data){ var deeplink = data.deeplink; var passthrough = data.passthrough; var isDeferred = data.isDeferred; // Add link handling logic here } singularConfig.withSingularLink(linkHandler); cordova.plugins.SingularCordovaSdk.init(singularConfig);
Adicionando suporte a SKAdNetwork
O plug-in Singular oferece suporte à estrutura SKAdNetwork. Você pode ativar o rastreamento de SKAdNetwork para seu aplicativo usando as opções de configuração abaixo.
Modo gerenciado (recomendado)
No modo gerenciado, o Singular gerencia automaticamente o valor de conversão de SKAdNetwork para você, com base em um modelo de conversão de sua escolha que pode ser configurado na plataforma Singular.
Para saber mais, consulte Entendendo o gerenciamento de valores de conversão da Singular e as Perguntas frequentes sobre a configuração do modelo SKAdNetwork. Para obter um guia passo a passo sobre como usar a SKAdNetwork com a Singular, consulte Como começar a usar a SKAdNetwork.
Para ativar a SKAdNetwork no modo gerido, utilize o seguinte código:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("", "");
// Enable SKAdNetwork (in managed mode by default)
singularConfig.withSkAdNetworkEnabled(true);
cordova.plugins.SingularCordovaSdk.init(singularConfig);
Modo manual
Se já tiver a sua própria estratégia e ferramentas para gerir o valor de conversão de SKAdNetwork, pode utilizar SKAdNetwork em modo manual.
Para ativar a SKAdNetwork em modo manual, utilize o seguinte código:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
// Enable SKAdNetwork
singularConfig.withSkAdNetworkEnabled(true);
// Select SKAdNetwork manual mode
singularConfig.withManualSkanConversionManagement();
// Optional: define handler to track changes to the conversion value
var conversionHandler = function(updatedConversionValue){
// Do something with updatedConversionValue
}
singularConfig.withConversionValueUpdatedHandler(conversionHandler);
// Initialize the Singular SDK
cordova.plugins.SingularCordovaSdk.init(singularConfig);
Para atualizar o valor de conversão, utilize o seguinte código:
cordova.plugins.SingularCordovaSdk.skanUpdateConversionValue(
newConversionValue,
function(isSuccess){
// isSuccess == true if the update was successful
}
)
Para recuperar o valor de conversão atual, utilize o seguinte código:
cordova.plugins.SingularCordovaSdk.skanGetConversionValue(
function(conversionValue){
// Do something with conversionValue
}
)
Outras opções
Acompanhamento de desinstalações
Para permitir que a Singular rastreie desinstalações de aplicativos, envie o token APNS/FCM para a Singular usando o seguinte código:
Android:
cordova.plugins.SingularCordovaSdk.setUninstallToken(fcmToken)
iOS:
cordova.plugins.SingularCordovaSdk.setUninstallToken(apnsToken)
Criando links de referência curtos
Use links curtos para transformar links Singular longos e cheios de parâmetros em links mais curtos e mais seguros que são convenientes para compartilhamento.
Normalmente, pretende criar links curtos de forma dinâmica para que os utilizadores da sua aplicação possam partilhá-los com amigos para os convidar a utilizar a aplicação.
Para criar um link curto, você precisa de:
- Um link singular que leva ao download do seu aplicativo (consulte as Perguntas frequentes sobre links singulares).
- Quaisquer parâmetros que queira adicionar ao link dinamicamente (consulte Parâmetros de link de rastreamento para obter a lista de opções).
- O nome e a ID do utilizador de referência, se pretender acompanhar as novas instalações da aplicação até ao utilizador que partilhou o link.
Para criar links curtos, use o seguinte código:
cordova.plugins.SingularCordovaSdk.createReferrerShortLink(
longLinkURL,
referrerName,
referrerID,
{
// Tracking link parameters to add to the short link, e.g. "channel":"sms"
param1: value1,
param2: value2,
...
},
{
onSuccess: function (shortLinkURL) {
// Do something with shortLinkURL
},
onError: function (error) {
// Handle error
}
}
)
Conformidade com as leis de privacidade de dados
A Singular fornece uma funcionalidade de proteção da privacidade para o ajudar a cooperar com quaisquer parceiros que possam estar em conformidade com as leis de privacidade do consumidor, como o GDPR e o CCPA(California Consumer Privacy Act). Estes parceiros querem ser notificados se o utilizador final consentiu em partilhar as suas informações privadas.
Se tiver implementado uma forma de pedir o consentimento dos utilizadores para partilharem as suas informações, utilize o método limitDataSharing para notificar a Singular da escolha do utilizador:
Utilize SingularCordovaSdk.limitDataSharing(false) para indicar que o utilizador consentiu (opted in) em partilhar as suas informações.
Utilize SingularCordovaSdk.limitDataSharing(true) se o utilizador não tiver dado o seu consentimento.
A Singular utiliza LimitDataSharing em"User Privacy Postbacks", bem como transmite esta informação a parceiros que a requerem para cumprir os regulamentos relevantes. Consulte"Privacidade do utilizador e Limitar partilha de dados" para obter mais informações.
Nota: A utilização do método é opcional, mas pode haver informações de atribuição que o parceiro partilhará com a Singular apenas se for especificamente notificado de que o utilizador optou por participar.
Método SingularCordovaSdk.limitDataSharing | |
---|---|
Assinatura | SingularCordovaSdk.limitDataSharing(booleanshouldLimitDataSharing) |
Descrição | Notifica a Singular do consentimento do utilizador (opt-in) para a partilha de dados privados. O método Limitar Partilha de Dados dá-lhe uma opção para controlar se a sua aplicação envia dados do utilizador a terceiros. Isto é útil se quiser restringir a partilha de dados com base nas preferências do utilizador ou nos requisitos de privacidade. |
Exemplo de utilização |
|
Métodos adicionais para conformidade com o GDPR
O Singular SDK fornece vários métodos para ajudá-lo a cumprir as políticas do GDPR e informar ao Singular sobre o consentimento ou não consentimento do usuário para rastreamento.
Método SingularCordovaSdk.trackingOptIn | |
---|---|
Descrição | Notifica a Singular sobre o consentimento do usuário (opt-in) para rastreamento. O método TrackingOptIn() é usado para enviar um evento "gdpr" para os servidores da Singular. Se você não chamar esse método, o aplicativo continuará rastreando os usuários como se eles tivessem dado consentimento, mas não os marcará especificamente como opt-in do GDPR. Se o seu aplicativo precisa estar em conformidade com o GDPR (Regulamento Geral de Proteção de Dados), você deve chamar essa função para garantir que o consentimento do usuário seja registrado corretamente. |
Exemplo de utilização |
|
Método SingularCordovaSdk.stopAllTracking | |
Descrição |
Interrompe todas as actividades de rastreio para este utilizador nesta aplicação.
Nota: Chamar este método desactiva efetivamente o SDK, mesmo depois de a aplicação ser reiniciada (o estado é persistente)! A única forma de voltar a ativar o rastreio é chamar resumeAllTracking().
|
Exemplo de utilização |
|
Método SingularCordovaSdk.resumeAllTracking | |
Descrição | Retoma o seguimento para este utilizador nesta aplicação. |
Exemplo de utilização |
|
Método SingularCordovaSdk.isAllTrackingStopped | |
Descrição | Verifica o estado do seguimento deste utilizador nesta aplicação. Devolve true se o seguimento tiver sido interrompido com StopAllTracking() e não tiver sido retomado. |
Exemplo de utilização |
|