Rudderstack - Destino Singular (Modo Dispositivo)

RudderStack é uma plataforma de dados do cliente (CDP) de código aberto que permite que as empresas coletem, unifiquem e encaminhem dados de clientes para diversos destinos. Ela fornece uma plataforma centralizada para gerenciar pipelines de dados de clientes, permitindo que as organizações coletem dados facilmente de diversas fontes, como sites, aplicativos móveis, servidores e serviços em nuvem.

O Singular SDK está disponível como um plug-in para o Rudderstack, chamado de Destino "Device-Mode" . As instruções abaixo mostram como adicionar o Destino Singular no Rudderstack.

Esteja ciente de que esta integração é criada e mantida pelo Rudderstack. Consulte o Rudderstack caso ocorram problemas durante a implementação.

Guia para Equipes de Engenharia
Pré-requisitos Este artigo pressupõe que você já tenha o Rudderstack iOS, Android, React Native ou SDK do Cordova integrado ao seu aplicativo. Consulte a documentação do Rudderstack para mais detalhes sobre device-mode e os SDKs móveis.

Para usar esta integração, você deve estar usando o Mobile SDK do Rudderstack para: iOS (Native Obj-C ou Swift), Android (Java ou Kotlin), React Native ou Cordova. Esta integração NÃO é compatível com nenhum outro framework!

O que é suportado
  1. Atribuição básica de instalação
  2. Suporte a SkAdNetwork
  3. Atribuição do Apple Search Ads
  4. Rastreamento de eventos in-app personalizados
  5. Rastreamento de receita
  6. Custom User ID
O que NÃO é suportado
  1. Atribuição por META Install Referrer
  2. Deep linking
  3. Suporte a Limited Data Sharing

Se você precisar de suporte para outros Frameworks ou quiser a "Funcionalidade Completa de Recursos" oferecida pelo Singular SDK, você deve implementar o Singular SDK de forma independente do Rudderstack. Consulte as Opções de SDK e Frameworks AQUI .

Primeiros passos

  1. No seu painel do RudderStack , adicione a fonte. Em seguida, na lista de destinos, selecione Singular .
  2. Atribua um nome ao seu destino e clique em Continue .

Configurações de conexão

Para configurar o Singular como destino com sucesso, você precisa definir as seguintes configurações:



  • API Key: Insira aqui sua "SDK Key" do Singular. Este é um campo obrigatório.
  • Secret: Insira seu secret do Singular. Este é um campo obrigatório e é necessário para integrações em device mode com os SDKs iOS e Android do RudderStack.

    Obtenha sua "SDK KEY" do Singular, encontrada no Singular Dashboard em "Developer Tools > SDK Integration > SDK Keys" .


    Nota: Para a integração "Cloud-Mode", você irá inserir APENAS o valor da API Key (SDK Key) .
    Deixe o campo "Secret" em branco.

  • Session Event Name: Esta configuração é aplicável apenas para envio de eventos via cloud mode.
  • Use device mode to send events: Ao usar as plataformas Android ou iOS, você pode habilitar esta configuração para enviar eventos via device mode. Em seguida, siga o guia de Device Mode do Singular para as etapas de adição do Singular ao seu projeto.

    Ao enviar eventos via device mode, o RudderStack também permite especificar quais eventos devem ser descartados ou autorizados a fluir. Para mais informações, consulte o guia de Filtragem de Eventos no lado do cliente .

Adicionando a integração em device mode

Após configurar o Singular como destino no RudderStack, siga estas etapas para adicioná-lo ao seu projeto, dependendo da sua plataforma de integração.

React NativeCordovaiOS Obj-C (Legacy)SDK do iOS v2 (Legacy)Android Java (Legacy)

Para adicionar o Singular ao seu aplicativo React Native, siga estas etapas:

  1. Adicione o módulo RudderStack-Singular ao seu aplicativo executando o seguinte comando:

    bash

    npm install @rudderstack/rudder-integration-singular-react-native
    // OR //
    yarn add @rudderstack/rudder-integration-singular-react-native
  2. Abra o arquivo android/build.gradle no nível do projeto e adicione o seguinte trecho:

    groovy

    repositories {
      maven {
        url "https://maven.singular.net/"
      }
    }
    
  3. Importe o módulo acima e adicione-o à inicialização do seu SDK:

    typescript

    import rudderClient from "@rudderstack/rudder-sdk-react-native"
    import singular from "@rudderstack/rudder-integration-singular-react-native"
    const config = {
    	dataPlaneUrl: <data_plane_url>,
    	trackAppLifecycleEvents: true,
    	withFactories: [singular],
    }
    rudderClient.setup(<write_key>, config)

Identify

Para integrações em device mode, o Singular SDK usa o método identify do RudderStack para mapear o user ID ao seu custom user ID. O RudderStack usa a API setCustomUserId do Singular para encaminhar o user ID identificado ao Singular.

Um exemplo de chamada identify para os SDKs Android e iOS é mostrado abaixo:

iOS (Obj-C) Android (Kotlin)
[[RSClient getInstance] identify:@"1hKOmRA4el9Zt1WSfVJIVo4GRlm"];

Track

A chamada track permite capturar quaisquer ações do usuário e as propriedades associadas a elas. Cada ação do usuário é considerada um evento.

Rastreando eventos personalizados

Uma chamada track personalizada permite rastrear eventos personalizados à medida que ocorrem nos seus aplicativos. O RudderStack envia essas chamadas ao Singular, onde são processadas como eventos personalizados pós-instalação e disponibilizadas nos relatórios relevantes.

Um exemplo de chamada track personalizada para os SDKs Android e iOS é mostrado abaixo:

iOS (Obj-C) Android (Kotlin)
[[RSClient getInstance] track:@"Product Reviewed" properties:@{
        @"product_id" : @"345676543",
        @"review_id" : @"123454387"
    }];

Rastreando receita

O Singular suporta o rastreamento de eventos de receita. Ele implementa o rastreamento de receita sempre que um evento contendo a propriedade revenue é enviado (incluindo um valor zero). Opcionalmente, você também pode passar o campo currency como um código ISO .

A moeda padrão está definida como USD.

Um exemplo de chamada track de revenue é mostrado abaixo:

iOS (Obj-C) Android (Kotlin)
[[RSClient getInstance] track:@"Order Completed" properties:@{
        @"revenue" : @1251,
        @"currency" : @"INR"
    }];

Screen

O método screen permite registrar sempre que um usuário visualiza a tela do dispositivo móvel, junto com quaisquer propriedades opcionais associadas. Esta chamada é semelhante à chamada page para aplicações web, mas exclusiva para o seu dispositivo móvel.

Um exemplo de chamada screen para os SDKs Android e iOS é mostrado abaixo:

iOS (Obj-C) Android (Kotlin)
[[RSClient sharedInstance] screen:@"Home" properties:@{
    @"category" : @"launcher"
}];

No trecho acima, o RudderStack captura todas as informações relacionadas à tela visualizada, junto com quaisquer informações adicionais sobre a tela.

O RudderStack envia o evento screen ao Singular como um evento personalizado.

Reset

O método reset redefine a identidade do usuário atual e cria uma nova sessão anônima. Ele deve ser chamado quando um usuário faz logout.

O RudderStack chama o método unsetCustomUserId do Singular para redefinir a identidade de um usuário.

Um exemplo de chamada reset para os SDKs Android e iOS é mostrado abaixo:

iOS (Obj-C) Android (Kotlin)
[[RSClient getInstance] reset];

Implementando o suporte a SKAdNetwork (SKAN)

Adicione o seguinte código antes da inicialização do SDK do iOS para dar ao Singular o controle da sua integração com SKAdNetwork:

Importante:

  • Definir manualSkanConversionManagement = true exigirá que você atualize manualmente seus próprios Conversion Values. Isso NÃO permitirá que o Modelo SKAN do Singular atualize os valores de CV em seu nome. Defina como "false" para habilitar o modo "gerenciado".
  • Definir waitForTrackingAuthorizationWithTimeoutInterval só deve ser usado se o seu aplicativo utilizar o prompt de iOS App Tracking Transparency (ATT). Se você estiver exibindo o ATT, então isso deve ser definido com um valor de 300.

Obj-C

[RudderSingularIntegration setSKANOptions:YES
        isManualSkanConversionManagementMode:NO
withWaitForTrackingAuthorizationWithTimeoutInterval:@300
        withConversionValueUpdatedHandler:^(NSInteger conversionValue){
    // Receive a callback whenever the Conversion Value is updated
    NSLog(@"SKAN handler %ld",conversionValue);
}];