SDK do Android - Desinstalação do rastreio

Documento

Rastreamento de desinstalação

Rastreie desinstalações de aplicativos para medir a retenção de usuários e otimizar campanhas de reengajamento integrando o Firebase Cloud Messaging (FCM) com o SDK Singular.

Importante: o Google descontinuou as APIs do GCM em abril de 2018. Use o Firebase Cloud Messaging (FCM) para todas as implementações de rastreamento de desinstalação.

Pré-requisitos

Configurar a plataforma Singular

Antes de implementar o rastreamento de desinstalação em seu aplicativo, configure seu aplicativo na plataforma Singular seguindo o guia Configurando o rastreamento de desinstalação do Android.


Requisitos do sistema

O rastreamento de desinstalação requer o Firebase Cloud Messaging e configurações específicas do dispositivo.

Requisitos do FCM(fonte):

  • Versão do Android: Os dispositivos devem executar o Android 4.1 (API 16) ou superior
  • Serviços do Google Play: Os dispositivos devem ter o aplicativo Google Play Store instalado
  • Suporte de emulador: São suportados emuladores Android 4.1+ com APIs do Google
  • Distribuição: As aplicações podem ser distribuídas fora da Google Play Store, continuando a suportar o controlo de desinstalações

Nota: Os utilizadores de versões do Android não suportadas ou de dispositivos sem o Google Play Services não serão rastreados para desinstalações.


Etapas de implementação

Etapa 1: Integrar o Firebase Cloud Messaging

Configure o Firebase Cloud Messaging no seu aplicativo, caso ainda não esteja configurado.

Siga o guia oficial do Google para Configurar um aplicativo cliente do Firebase Cloud Messaging no Android. Isso inclui:

  1. Adicionar o Firebase ao seu projeto Android
  2. Adicionar a dependência do FCM SDK ao seu app/build.gradle
  3. Criar uma classe de serviço de mensagens do Firebase
  4. Solicitar permissões de notificação (Android 13+)

Etapa 2: Configurar o AndroidManifest.xml

Registre seu Firebase Messaging Service no manifesto do Android para receber mensagens FCM.

AndroidManifest.xml
<service 
    android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Importante: Substitua .MyFirebaseMessagingService pelo nome totalmente qualificado da sua classe que estende FirebaseMessagingService.


Passo 3: Registar o Token de Dispositivo FCM

Recupere o token do dispositivo FCM e envie-o para a Singular para rastrear a desinstalação.

Recuperar e definir o token

Obtenha o token FCM e registre-o com a Singular imediatamente após a inicialização do SDK.

KotlinJava
import com.google.firebase.messaging.FirebaseMessaging
import com.singular.sdk.Singular

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        // Initialize Singular SDK
        val config = SingularConfig("SDK_KEY", "SDK_SECRET")
        Singular.init(applicationContext, config)
        
        // Retrieve and register FCM token
        FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w("FCM", "Fetching FCM token failed", task.exception)
                return@addOnCompleteListener
            }
            
            // Get FCM token
            val token = task.result
            
            // Register token with Singular
            Singular.setFCMDeviceToken(token)
            Log.d("FCM", "FCM token registered with Singular: $token")
        }
    }
}

Melhores práticas: Registre o token FCM imediatamente após Singular.init() para garantir que o rastreamento de desinstalação seja ativado desde a primeira sessão do aplicativo.


Manipular a atualização do token

Atualize o token FCM com o Singular sempre que ele for atualizado para manter o rastreamento de desinstalação preciso.

KotlinJava
import com.google.firebase.messaging.FirebaseMessagingService
import com.singular.sdk.Singular

class MyFirebaseMessagingService : FirebaseMessagingService() {
    
    override fun onNewToken(token: String) {
        super.onNewToken(token)
        
        // Send updated token to Singular
        Singular.setFCMDeviceToken(token)
        Log.d("FCM", "New FCM token registered: $token")
        
        // Also send token to your server if needed
        sendTokenToServer(token)
    }
    
    private fun sendTokenToServer(token: String) {
        // Implement your server communication logic here
    }
}

Importante: Os tokens FCM podem ser atualizados a qualquer momento (atualizações de aplicativos, restauração de dispositivos, etc.). Sempre implemente onNewToken() para manter o Singular atualizado.


Método de configuração alternativo

Definir token durante a inicialização

Se você tiver o token FCM disponível antes da inicialização do SDK, configure-o no objeto SingularConfig.

KotlinJava
// Get token synchronously (if cached)
val cachedToken = getStoredFCMToken() // Your caching logic

val config = SingularConfig("SDK_KEY", "SDK_SECRET")
    .withFCMDeviceToken(cachedToken)

Singular.init(applicationContext, config)

Assinatura do método:

public SingularConfig withFCMDeviceToken(String token)

Verificação e solução de problemas

Verificar a implementação

Confirme se o rastreamento de desinstalação está funcionando corretamente.

  1. Verificar registos: Verificar se o registo do token FCM aparece nos seus registos
  2. Teste a geração de tokens: Garantir que os tokens sejam gerados na primeira inicialização do aplicativo
  3. Monitorar o painel: Verifique o painel do Singular para obter dados de rastreamento de desinstalação após 24-48 horas
  4. Teste a atualização do token: Limpar os dados do aplicativo e verificar se o token é atualizado corretamente

Problemas comuns

  • Token não gerado: Verifique se as dependências do FCM foram adicionadas corretamente e se o Firebase está configurado no seu projeto
  • O token não está sendo atualizado: Verifique se o retorno de chamada onNewToken() está implementado em seu FirebaseMessagingService
  • Dados ausentes: Certifique-se de que os dispositivos atendam aos requisitos do FCM (Android 4.1+, Google Play Services instalado)
  • Erro de configuração: Confirme se o rastreamento de desinstalação está ativado nas configurações da plataforma Singular

Recursos adicionais: Para obter uma solução de problemas detalhada, consulte o Guia de configuração do rastreamento de desinstalaçãoe a Documentação do Firebase Cloud Messaging.