SDK do iOS - Rastreio de desinstalação

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 Serviço de Notificação Push da Apple (APNs) com o SDK Singular.

Importante: O rastreamento de desinstalação requer a configuração de APNs em seu aplicativo. Consulte a documentação da Estrutura de UserNotifications da Applepara obter detalhes completos de implementaçã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 iOS.


Requisitos do sistema

O rastreamento de desinstalação requer o Serviço de Notificação por Push da Apple e configurações específicas do dispositivo.

Requisitos de APNs(fonte):

  • Versão do iOS: Os dispositivos devem executar o iOS 10.0 ou superior para a estrutura UserNotifications
  • Certificado de APNs: Configurar certificados ou tokens de APNs no portal de desenvolvedores da Apple
  • Capacidade de envio: Ativar a capacidade de notificações push nas definições do projeto Xcode
  • Permissão do utilizador: Solicitar e obter autorização do utilizador para notificações push

Nota: Os utilizadores que recusarem as permissões de notificações push ou utilizarem dispositivos sem suporte para APNs não serão monitorizados para desinstalações.


Etapas de implementação

Etapa 1: ativar as notificações por push

Configure o seu projeto Xcode para suportar notificações push, se ainda não estiver ativado.

  1. Abra o seu projeto no Xcode
  2. Selecione o destino da aplicação e vá para Signing & Capabilities
  3. Clique em + Capacidade e adicione Notificações push
  4. Certifique-se de que as Notificações remotas estejam marcadas em Modos em segundo plano

Passo 2: Solicitar autorização do utilizador

Solicite a permissão dos utilizadores para receber notificações push utilizando a estrutura UserNotifications.

SwiftObjective-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
    }
}

Passo 3: Registar o Token de Dispositivo APNs

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

Recuperar e definir o token

Implemente o retorno de chamada didRegisterForRemoteNotificationsWithDeviceToken para capturar o token de APNs e registrá-lo no Singular.

SwiftObjective-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
}

Prática recomendada: Chame registerDeviceTokenForUninstall imediatamente quando o token for recebido para garantir que o rastreamento de desinstalação seja ativado desde a primeira sessão do aplicativo.


Formato dos dados do token

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

Importante: O token APNs é um dado binário (NSData/Data). Passe-o diretamente para a Singular sem conversão. Se seu aplicativo precisar converter o token em uma cadeia hexadecimal para outros fins, mantenha o objeto NSData original para o Singular.

Exemplo de formato hexadecimal:b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052


Método de configuração alternativo

Definir token durante a inicialização

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

SwiftObjective-C
// Get cached token if available
if let cachedToken = getCachedAPNsToken() {
    let config = SingularConfig(apiKey: "SDK_KEY", andSecret: "SDK_SECRET")
    config?.apnsDeviceToken = cachedToken
    
    Singular.start(config)
}

func getCachedAPNsToken() -> Data? {
    // Implement your token caching logic here
    return nil
}

Assinatura do método:

@property (nonatomic, strong) NSData *apnsDeviceToken;

Verificação e resolução de problemas

Verificar a implementação

Confirme se o acompanhamento da desinstalação está a funcionar corretamente.

  1. Verificar registos: Verificar se o registo do token APNs 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. Testar permissões: Verificar se o prompt de autorização de notificação aparece e funciona corretamente

Problemas comuns

  • Token não gerado: Verifique se o recurso Notificações por push está ativado no Xcode e se os certificados APNs estão configurados no portal do desenvolvedor da Apple
  • Permissões recusadas pelo utilizador: Implemente uma lógica para lidar com permissões de notificação recusadas de forma elegante
  • Dados em falta: Certifique-se de que os dispositivos executam o iOS 10.0+ e que os utilizadores concederam permissões de notificação
  • Erro de configuração: Confirmar se o rastreamento de desinstalação está ativado nas configurações da plataforma Singular
  • Limitações do simulador: Os tokens APNs não estão disponíveis no Simulador iOS; teste em dispositivos físicos

Recursos adicionais: Para uma resolução de problemas detalhada, consulte o Guia de Configuração do Controlo de Desinstalaçãoe a Documentação UserNotifications da Apple.