SDK do iOS - Rastreamento de desinstalação

Rastreamento de desinstalação

Faça o rastreamento de desinstalações do app para medir a retenção de usuários e otimizar campanhas de reengajamento, integrando o Apple Push Notification Service (APNs) ao SDK do Singular.

Importante: O rastreamento de desinstalação requer a configuração do APNs no seu app. Consulte a documentação do framework UserNotifications da Apple para obter os detalhes completos de implementação.

Pré-requisitos

Configurar a plataforma Singular

Antes de implementar o rastreamento de desinstalação no seu app, configure seu app na plataforma Singular seguindo o guia Configuração do rastreamento de desinstalação no iOS .


Requisitos do sistema

O rastreamento de desinstalação requer o Apple Push Notification Service e configurações específicas do dispositivo.

Requisitos do APNs ( fonte ):

  • Versão do iOS: Os dispositivos devem executar o iOS 10.0 ou superior para o framework UserNotifications
  • Certificado APNs: Configure certificados ou tokens APNs no portal Apple Developer
  • Capacidade de push: Habilite a capability Push Notifications nas configurações do projeto no Xcode
  • Permissão do usuário: Solicite e obtenha a autorização do usuário para notificações push

Observação: Usuários que recusarem a permissão de notificações push ou que utilizarem dispositivos sem suporte ao APNs não serão incluídos no rastreamento de desinstalações.


Etapas de implementação

Etapa 1: Habilitar notificações push

Configure seu projeto no Xcode para oferecer suporte a notificações push, caso ainda não esteja habilitado.

  1. Abra seu projeto no Xcode
  2. Selecione o target do seu app e vá para Signing & Capabilities
  3. Clique em + Capability e adicione Push Notifications
  4. Certifique-se de que Remote notifications esteja marcado em Background Modes

Etapa 2: Solicitar autorização do usuário

Solicite permissão dos usuários para receber notificações push usando o framework UserNotifications.

Swift Objective-C
import UIKit
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication,
                    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // Set notification delegate
        UNUserNotificationCenter.current().delegate = self

        // Request authorization for notifications
        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { granted, error in
            if let error = error {
                print("Notification authorization error: \(error.localizedDescription)")
            }

            if granted {
                // Register for remote notifications on main thread
                DispatchQueue.main.async {
                    application.registerForRemoteNotifications()
                }
            }
        }

        return true
    }
}

Etapa 3: Registrar o token do dispositivo APNs

Recupere o token do dispositivo APNs e envie-o ao Singular para o rastreamento de desinstalação.

Recuperar e definir o token

Implemente o callback didRegisterForRemoteNotificationsWithDeviceToken para capturar o token APNs e registrá-lo no Singular.

Swift Objective-C
import Singular

func application(_ application: UIApplication,
                didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    // Register the device token with Singular for uninstall tracking
    Singular.registerDeviceToken(forUninstall: deviceToken)

    print("APNs device token registered with Singular")

    // Also send to your server if needed for your own push notifications
    sendTokenToServer(deviceToken)
}

func application(_ application: UIApplication,
                didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print("Failed to register for remote notifications: \(error.localizedDescription)")
}

private func sendTokenToServer(_ deviceToken: Data) {
    // Implement your server communication logic here
}

Melhor prática: Chame registerDeviceTokenForUninstall imediatamente quando o token for recebido para garantir que o rastreamento de desinstalação esteja habilitado desde a primeira sessão do app.


Formato dos dados do token

Passe o token do dispositivo APNs para o Singular em seu formato binário nativo, conforme recebido da Apple.

Importante: O token APNs são dados binários (NSData/Data). Passe-o diretamente para o Singular sem conversão. Se seu app precisar converter o token em uma string hexadecimal para outros fins, mantenha o objeto NSData original para o Singular.

Exemplo de formato hexadecimal: b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052


Verificação e solução de problemas

Verificar a implementação

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

  1. Verifique os logs: Confirme que o registro do token APNs aparece nos seus logs
  2. Teste a geração do token: Garanta que os tokens sejam gerados na primeira execução do app
  3. Monitore o dashboard: Verifique no dashboard do Singular os dados de rastreamento de desinstalação após 24-48 horas
  4. Teste as permissões: Confirme que o aviso de autorização de notificações é exibido e funciona corretamente

Problemas comuns

  • Token não gerado: Confirme se a capability Push Notifications está habilitada no Xcode e se os certificados APNs estão configurados no portal Apple Developer
  • Usuário recusou as permissões: Implemente uma lógica para lidar adequadamente com permissões de notificação recusadas
  • Dados ausentes: Certifique-se de que os dispositivos executem iOS 10.0 ou superior e que os usuários tenham concedido as permissões de notificação
  • Erro de configuração: Confirme se o rastreamento de desinstalação está habilitado nas configurações da plataforma Singular
  • Limitações do simulador: Os tokens APNs não estão disponíveis no simulador do iOS; teste em dispositivos físicos

Recursos adicionais: Para uma solução de problemas detalhada, consulte o Guia de configuração do rastreamento de desinstalação e a documentação do UserNotifications da Apple .