Configuração do rastreamento de desinstalação do iOS
Rastreie a desinstalação de aplicativos no iOS para medir a retenção de usuários, identificar fontes de tráfego de baixa qualidade e otimizar o desempenho da campanha usando a integração do serviço de Notificação Push da Apple (APNs) com o Singular SDK.
Visão geral
Como funciona o rastreamento de desinstalação
A Singular detecta desinstalações de aplicativos iOS enviando notificações push silenciosas através do serviço de Notificação Push da Apple e monitorando as respostas de entrega para determinar se o aplicativo permanece instalado nos dispositivos.
Processo técnico:
- Registo de Token: O SDK da Singular registra os tokens de dispositivos APNs com os servidores da Singular
- Opção do utilizador: Os utilizadores concedem permissões de notificação push quando solicitados pelo iOS
- Notificações silenciosas: A Singular envia periodicamente notificações push silenciosas para os dispositivos registados
- Feedback de entrega: APNs relatam sucesso ou falha na entrega
- Deteção de desinstalação: Entregas falhadas indicam a desinstalação da aplicação
- Registo de eventos: Evento de desinstalação atribuído à fonte de instalação original
Requisitos
- Versão do SDK: SDK do iOS 8.0+ necessário para rastreamento de desinstalação
- Certificado de APNs: Certificado SSL de produção da conta de desenvolvedor da Apple
- Suporte para notificações push: A aplicação deve implementar o registo de APNs e o tratamento de tokens
- Consentimento do utilizador: Os utilizadores têm de optar por receber notificações push para que o rastreio funcione
- Atualização da aplicação: os utilizadores têm de instalar a versão actualizada da aplicação com o rastreio de desinstalação ativado
Considerações importantes
Requisito de aceitação do utilizador: De acordo com as políticas da Apple, os usuários devem optar explicitamente por receber notificações push. O Singular só pode rastrear desinstalações para usuários que concederam permissões de notificação.
Pontos principais:
- Notificações silenciosas: O rastreamento de desinstalação da Singular usa notificações push silenciosas que não exibem nenhum alerta visível para os usuários
- Preservação da atribuição: As desinstalações são rastreadas como eventos sem remover o link de atribuição original. Os utilizadores podem desinstalar e reinstalar várias vezes, resultando potencialmente em taxas de desinstalação superiores a 100%
- Processamento em lote: A deteção de desinstalação é baseada em lotes, contando com o feedback de resposta dos APNs. Espere até 24 horas para que os dados de desinstalação apareçam no painel do Singular
- Dependências de permissão: A cobertura do rastreamento está diretamente relacionada à taxa de opt-in da notificação push. Aplicativos com baixas taxas de opt-in terão dados de desinstalação incompletos
- Dependência de rede: As notificações push silenciosas requerem uma ligação de rede ativa. Dispositivos offline por longos períodos podem atrasar a deteção de desinstalação
Instruções de configuração
Configure o rastreamento de desinstalação do iOS integrando o SDK do Singular, implementando as Notificações Push da Apple e carregando certificados APNs para o Singular.
Etapa 1: Integrar o SDK do iOS 8.x+
Atualizar a versão do SDK
Atualize para o SDK do iOS 8.0 ou superior para habilitar a funcionalidade de rastreamento de desinstalação.
Instalação do CocoaPods:
platform :ios, '12.0'
use_frameworks!
target 'YourApp' do
# Singular SDK do iOS
pod 'Singular-SDK', '~> 12.6.2'
end
Gerenciador de pacotes Swift:
// File > Add Package Dependencies
// Enter repository URL:
https://github.com/singular-labs/Singular-iOS-SDK
// Select version: 12.6.2 or later
Guia de integração completo: Guia de integração do SDK do iOS
Passo 2: Configurar as notificações push da Apple
Ativar a capacidade de notificação push
Adicione a capacidade de notificação push ao seu projeto Xcode e implemente o registo de APNs na sua aplicação.
Configuração do Xcode:
- Abra Configurações do projeto: Selecione o seu projeto no navegador do Xcode
- Selecionar destino: Escolha o destino da sua aplicação
- Adicionar capacidade: Vá para o separador Assinatura e capacidades
- Ativar Push: Clique em "+ Capacidade" e adicione "Notificações Push"
- Modos de fundo: Ativar "Remote notifications" (Notificações remotas) na capacidade Background Modes (Modos de fundo)
Primeira configuração: Se for a primeira vez que implementa notificações push para iOS, consulte o abrangente Guia de configuração do serviço de notificações push da Apple (APNs).
Implementar o registo de APNs
Adicione código para se registar para notificações push e passe o token de dispositivo APNs para o Singular SDK.
import UIKit
import UserNotifications
import Singular
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Request push notification permissions
requestPushNotificationPermissions()
// Initialize Singular SDK
let config = SingularConfig(apiKey: "SDK KEY", secret: "YOUR_SECRET")
Singular.start(config)
return true
}
func requestPushNotificationPermissions() {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
print("Push notification permission granted")
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
} else {
print("Push notification permission denied")
}
}
}
// Called when APNs successfully registers device
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Pass token to Singular for uninstall tracking
Singular.registerDeviceToken(forUninstall: deviceToken)
// Convert token to hex string for logging
let tokenString = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
print("APNs device token registered: \(tokenString)")
}
// Called if APNs registration fails
func application(_ application: UIApplication,
didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Failed to register for remote notifications: \(error.localizedDescription)")
}
// Handle incoming push notifications
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Pass notification data to Singular
Singular.handleNotification(userInfo)
completionHandler(.newData)
}
}
Requisitos do iOS 13+: A partir do iOS 13, é necessário chamar registerForRemoteNotifications() na thread principal após receber a autorização. Use DispatchQueue.main.async como mostrado acima.
Guia de implementação completo: Guia de implementação do Singular SDK do iOS
Etapa 3: criar certificado de notificação por push da Apple
Gerar certificado SSL de APNs
Crie um certificado SSL de produção na sua conta de desenvolvedor da Apple para permitir que o Singular envie notificações push para rastreamento de desinstalação.
- Abra o Portal do desenvolvedor da Apple: Navegue até Desenvolvedor Apple
- Acessar Certificados: Vá para Certificados, Identificadores e Perfis
- Selecione Identificadores: Clique em Identifiers (Identificadores) na barra lateral esquerda
- Selecione ID da aplicação: Selecione o identificador da sua aplicação na lista
- Configurar notificações push: Desloque-se para Serviços de Aplicação e localize Notificações Push
- Criar certificado: Clique em "Configurar" junto a Notificações Push
- Selecione o tipo: Escolha "Apple Push Notification service SSL (Sandbox & Production)" para o certificado de produção
Requisito de tipo de certificado: O acompanhamento de desinstalação única requer o certificado SSL de produçãopara aplicações activas. Os certificados de desenvolvimento só podem ser utilizados para testes internos.
Criar solicitação de assinatura de certificado (CSR)
Gere um CSR no seu Mac para criar o certificado APNs.
- Abrir o Acesso às Chaves: Inicie o aplicativo Keychain Access no seu Mac
- Solicitar certificado: Menu Acesso às chaves → Assistente de certificado → Solicitar um certificado a uma autoridade de certificação
- Introduzir e-mail: Forneça o seu endereço de correio eletrónico
- Nome comum: Introduza um nome descritivo (por exemplo, "YourApp Push Notifications")
- Guardar no disco: Selecione a opção "Guardado no disco
- Continuar: Clique em Continuar para guardar o ficheiro CSR
Carregar CSR e descarregar certificado
Carregue o seu CSR para o portal de programadores da Apple para gerar o certificado SSL das APNs.
- Carregar CSR: No portal de programadores da Apple, carregue o ficheiro CSR que criou
- Gerar certificado: Clique em Continuar para gerar o certificado
- Descarregar certificado: Descarregar o ficheiro .cer gerado
- Instalar certificado: Faça duplo clique no ficheiro .cer para o adicionar ao seu Mac Keychain
Passo 4: Exportar certificado como ficheiro .p12
Gerar P12 a partir do Keychain
Exporte seu certificado e chave privada de APNs do Keychain como um arquivo .p12 para carregar no Singular.
- Abra o Keychain Access: Inicie o aplicativo Keychain Access
- Selecione Certificado: Na categoria "Meus Certificados", localize seu certificado APNs
- Expandir certificado: Clique no triângulo de divulgação para revelar a chave privada emparelhada com o certificado
- Selecionar ambos os itens: Mantenha premida a tecla Command e clique no certificado e na chave privada para os selecionar
- Exportar: Clique com o botão direito do rato e escolha "Exportar 2 itens..."
- Guardar como P12: Escolha o formato .p12 e guarde com um nome de ficheiro significativo (por exemplo, "YourApp_APNs_Production.p12")
- Definir palavra-passe: Introduza uma palavra-passe para proteger o ficheiro .p12 (esta palavra-passe será necessária quando fizer o upload para o Singular)
- Confirmar: Clique em OK para exportar o arquivo
Nota de segurança: Guarde o seu ficheiro .p12 de forma segura e lembre-se da palavra-passe. Você precisará de ambos para carregar o certificado na Singular. Não compartilhe essas credenciais publicamente.
Etapa 5: Fazer upload do certificado para a Singular
Configurar as definições do aplicativo Singular
Carregue seu arquivo de certificado .p12 na configuração do aplicativo Singular para habilitar o rastreamento de desinstalação.
- Abra o Singular Apps: Navegue até a página do Singular Apps
- Selecione o aplicativo: Escolha seu aplicativo iOS na lista
- Configurações avançadas: Desloque-se para a secção Definições avançadas
- Desinstalar rastreio: Localizar a configuração Desinstalar rastreio
- Carregar certificado: Clique em "Escolher ficheiro" e selecione o seu ficheiro .p12
- Introduzir palavra-passe: Introduza a palavra-passe que criou ao exportar o ficheiro .p12
- Guardar configuração: Clique em Guardar para aplicar as definições
Verificação: Após o upload, a Singular validará o certificado. Se a validação falhar, verifique se está a utilizar o certificado de Produção e se a palavra-passe está correta.
Testando o rastreamento de desinstalação
Verifique se o rastreamento de desinstalação está configurado corretamente antes de liberar o aplicativo atualizado para a produção.
Procedimento de teste
Etapas de validação
- Instalar a compilação de teste: Implantar o aplicativo com o rastreamento de desinstalação ativado no dispositivo de teste
- Conceder permissões: Iniciar a aplicação e aceitar as permissões de notificação push quando solicitado
- Verificar registo: Verificar a consola Xcode para a mensagem de registo do token do dispositivo APNs
- Confirmar o registo do SDK: Verificar se os registos do SDK mostram um registo de token bem sucedido com a Singular
- Aguardar o processo de lote: Aguarde de 24 a 48 horas para que o Singular envie a primeira notificação silenciosa
- Desinstalar aplicativo: Excluir o aplicativo do dispositivo de teste
- Monitorar painel de controle: Verificar o dashboard do Singular após 24-48 horas para o evento de desinstalação
Linha do tempo de teste: O rastreamento de desinstalação é baseado em lote e pode levar até 48 horas para detetar e relatar desinstalações. Esse atraso é um comportamento esperado.
Verificação do console do Xcode
Verifique a saída do console do Xcode para mensagens do Singular SDK confirmando a configuração adequada.
Mensagens de log esperadas:
[Singular] APNs device token registered successfully
[Singular] Uninstall tracking enabled
[Singular] Device token sent to Singular servers
Problemas comuns
| Problema | Causa | Solução |
|---|---|---|
| A caixa de diálogo de permissão de envio não está a aparecer | Permissão já negada ou não solicitada | Repor as permissões: Ajustes → Geral → Transferir ou redefinir iPhone → Redefinir → Redefinir localização e privacidade |
| Não foi gerado nenhum token de dispositivo | A funcionalidade de notificações push não está activada | Verificar se as notificações push estão activadas no Xcode Assinatura e capacidades |
| O registo falha com um erro | Perfil de aprovisionamento em falta ou incorreto | Certifique-se de que o perfil de aprovisionamento inclui o direito a notificações push |
| Falha na validação do certificado no Singular | Tipo de certificado incorreto ou certificado expirado | Verifique se você está usando o certificado SSL de produção e se ele não expirou |
| O token não chega ao Singular | SDK não inicializado ou problema de conetividade de rede | Certifique-se de que Singular.start() é chamado antes de registerDeviceToken() |
| As desinstalações não aparecem no painel | O utilizador não concedeu permissões de envio | O rastreamento de desinstalação só funciona para usuários que optaram por receber notificações |
Limitações do simulador
Dispositivo físico necessário: A geração de token de dispositivo APNs não funciona no Simulador iOS. É necessário testar o rastreamento de desinstalação em dispositivos iOS físicos.
Otimização das taxas de aceitação de notificações push
Maximize a cobertura do rastreamento de desinstalação melhorando a porcentagem de usuários que concedem permissões de notificação por push.
Práticas recomendadas
Avisos de pré-permissão
Exiba explicações personalizadas no aplicativo antes de mostrar a caixa de diálogo de permissão do sistema iOS para aumentar as taxas de aceitação.
- Explicar o valor: Comunicar claramente os benefícios que os utilizadores recebem ao activarem as notificações
- Momento: Pedir permissão em momentos contextualmente relevantes, quando os utilizadores compreendem o valor
- IU personalizada: Mostrar uma caixa de diálogo personalizada com os botões "Permitir" e "Agora não" antes da solicitação do sistema
- Lógica de repetição: Se o utilizador recusar, pedir novamente mais tarde, depois de ter experimentado o valor da aplicação
Exemplo de implementação
class NotificationManager {
func showPrePermissionPrompt() {
// Check if permission already requested
UNUserNotificationCenter.current().getNotificationSettings { settings in
if settings.authorizationStatus == .notDetermined {
DispatchQueue.main.async {
self.displayCustomPrompt()
}
}
}
}
private func displayCustomPrompt() {
let alert = UIAlertController(
title: "Stay Updated",
message: "Enable notifications to receive important updates about your orders and exclusive offers.",
preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "Enable Notifications", style: .default) { _ in
self.requestSystemPermission()
})
alert.addAction(UIAlertAction(title: "Not Now", style: .cancel) { _ in
// User declined - mark for retry later
UserDefaults.standard.set(Date(), forKey: "last_notification_prompt")
})
// Present from root view controller
UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: true)
}
private func requestSystemPermission() {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
}
}
Pedidos de permissão contextuais
Estratégias de tempo efectivas:
- Após a primeira transação: Solicitar após o utilizador concluir a primeira compra ou ação significativa
- Introdução de funcionalidades: Solicitar ao introduzir recursos dependentes de notificação
- Demonstração de valor: Pedir depois de o utilizador experimentar o valor da aplicação
- Evitar o primeiro lançamento: Não solicite na primeira abertura da aplicação antes de os utilizadores compreenderem o valor da aplicação
Analisar dados de desinstalação
Use os dados de desinstalação do iOS nos relatórios do Singular para otimizar o desempenho da campanha e identificar problemas de qualidade do tráfego.
Métricas disponíveis
Métricas de rastreamento de desinstalação
- Contagem de desinstalações: Número total de desinstalações de aplicativos detectadas
- Taxa de desinstalação: Porcentagem de instalações que resultaram em desinstalações
- Taxa de usuários rastreáveis: Percentagem de utilizadores que optaram por receber notificações push
- Dias para desinstalação: Tempo médio entre os eventos de instalação e desinstalação
- Desinstalações por origem: Detalhamento das desinstalações por campanha, editor, criativo
- Análise de cohort: Padrões de desinstalação em diferentes grupos de utilizadores
Considerações sobre a cobertura
Cobertura do rastreamento: o rastreamento de desinstalação do iOS abrange apenas os usuários que concederam permissões de notificação por push. Monitore a taxa de aceitação de notificações do seu aplicativo para entender a porcentagem de cobertura do rastreamento de desinstalação.
Cálculo da cobertura:
Tracking Coverage % = (Users with Push Enabled / Total Installs) × 100
Casos de uso
Otimização de campanhas:
- Identificar campanhas que geram tráfego de baixa qualidade com altas taxas de desinstalação
- Comparar taxas de desinstalação em diferentes fontes de tráfego
- Otimizar estratégias de licitação com base na retenção de utilizadores prevista
- Ajustar mensagens criativas para atrair utilizadores de maior qualidade
Deteção de fraudes:
- Detetar padrões anormais de desinstalação que indicam fraude na instalação
- Sinalizar editores com taxas de desinstalação suspeitamente altas
- Monitorizar o tempo de desinstalação para detetar sinais de tráfego de bots
- Identificar padrões de injeção de cliques através de desinstalações rápidas
Análise da retenção de utilizadores:
- Acompanhar a aderência e o envolvimento do aplicativo ao longo do tempo
- Correlacionar desinstalações com actualizações de aplicações ou lançamentos de funcionalidades
- Identificar factores que contribuem para a perda de utilizadores
- Segmentar as taxas de desinstalação por dados demográficos e comportamento do utilizador
Melhores práticas
Estratégias de otimização
- Definir parâmetros de referência: Estabelecer limiares aceitáveis de taxas de desinstalação para diferentes tipos de campanha
- Monitorizar tendências: Acompanhe as taxas de desinstalação ao longo do tempo para identificar padrões sazonais ou anomalias
- Análise de segmentos: Compare as taxas de desinstalação com os dados demográficos, geográficos e dispositivos dos utilizadores
- Janelas de atribuição: Considere o momento da desinstalação ao avaliar o desempenho da campanha
- Pontuação de qualidade: Incorporar as taxas de desinstalação nos modelos de pontuação da qualidade do tráfego
- Acompanhamento da cobertura: Monitorizar as taxas de aceitação de notificações para compreender a integridade dos dados
- Análise comparativa: Compare os padrões de desinstalação do iOS e do Android para obter informações específicas da plataforma