Suporte ao rastreamento de reengajamento usando notificações push
O Singular permite o rastreamento de notificações push para medir o reengajamento para aplicativos iOS. Ao integrar o Apple Push Notification Service (APNs) e o Singular SDK, é possível rastrear as interações do usuário com as notificações push e atribuí-las com precisão.
Siga o guia de implementação abaixo para garantir o rastreamento adequado das notificações push em seu aplicativo iOS.
Por que o rastreamento de notificações por push é importante?
As notificações push são essenciais para o reengajamento do usuário, mas sem o rastreamento adequado, seu impacto não é claro. O Singular garante que as interações de notificação são atribuídas corretamente, permitindo-lhe otimizar as campanhas de marketing e medir a retenção de utilizadores.
Guia de implementação
Passo 1: Registo para notificações push
Certifique-se de que a sua aplicação está devidamente registada para notificações push utilizando UNUserNotificationCenter.
Exemplos:
import UserNotifications
// Set the current instance as the delegate for the UNUserNotificationCenter to handle notifications
UNUserNotificationCenter.current().delegate = self
// Define the notification authorization options (alert, badge, sound)
let pushAuthOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
// Request notification authorization from the user
UNUserNotificationCenter.current().requestAuthorization(options: pushAuthOptions) { granted, error in
// If an error occurs during authorization, print the error description
if let error = error {
print("registerForPushNotifications : failure - \(error.localizedDescription)")
}
// If the user granted permission for notifications, register for remote notifications
if granted {
// Ensure that the registration for remote notifications is done on the main thread
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
- (void) registerForPushNotifications:(UIApplication *)application {
// Set delegate to self
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
// Define the push notification options
UNAuthorizationOptions pushAuthOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound;
// Request push notification authorization
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:pushAuthOptions
completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (error) {
NSLog(@"registerForPushNotifications : failure - %@", error.localizedDescription);
}
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[application registerForRemoteNotifications];
});
}
}];
}
Este passo assegura que a sua aplicação está configurada para receber e tratar notificações push.
Etapa 2: Manipulação de notificações push e passagem de dados para o Singular
Quando uma notificação push é recebida, ela deve ser processada e enviada ao Singular para rastreamento.
Exemplos:
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
// Pass the notification data to Singular for tracking.
Singular.handlePushNotification(response.notification.request.content.userInfo)
// Call the completion handler to indicate processing is complete.
completionHandler()
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler {
// Extract the push notification payload (user info).
NSDictionary *userInfo = response.notification.request.content.userInfo;
// Log the userInfo dictionary for debugging purposes.
NSLog(@"didReceiveNotificationResponse userInfo = %@", userInfo);
// Pass the notification data to Singular for tracking.
[Singular handlePushNotification:userInfo];
// Call the completion handler to indicate processing is complete.
completionHandler();
}
Etapa 3: Integrando o payload da notificação push com o SDK da Singular
Certifique-se de que o SDK da Singular esteja configurado corretamente para lidar com notificações push.
Exemplos:
// Assuming config is an optional object, make sure it's not nil before using it
config?.pushNotificationLinkPath = [
["path", "to", "link"],["sng_link"]
]
// Start the Singular SDK with the given configuration (ensure config is valid)
Singular.start(config)
// Assuming config is already initialized and valid
config.pushNotificationLinkPath = @[
@[@"path", @"to", @"link"],
["sng_link"]
];
// Start the Singular SDK with the given configuration
[Singular start:config];
Esta etapa permite que o Singular rastreie corretamente as interações de notificação push e as atribua de acordo.
Guia de validação
A chamada da API do Singular SDK garante que o link do payload da notificação push seja passado corretamente sob o parâmetro reservado singular_link na chamada da sessão inicial.
Exemplo:
https://skan.singular.net:443/api/v1/start?dnt=-1&update_time=0&c=wwan&singular_link_resolve_required=false&rt=plist&lag=0.00&is=false&event_index=10&d=iPhone14,7&skan_has_framework=true&sdk=Singular/12.7.1&skan_conversion_value_mode=managed&mo=iPhone14,7&skan_update_counter=1&i=com.singular.SwiftScene&config_version=0&k=IDFV&cr=1&skan_total_admon_revenue_by_currency={}&install_time=1740577866&n=SwiftScene&av=1.0&skan_skadnetwork_enabled=true&p=iOS&idfv=D159BFDC-D061-479B-AB24-0CE00C1FA2AA&att_authorization_status=0&device_type=phone&s=F90C41BF-99EC-48FC-ABF8-2781FF5A2799&skan_first_call_to_skadnetwork_timestamp=1740577882&u=D159BFDC-D061-479B-AB24-0CE00C1FA2AA&skan_last_call_to_skadnetwork_timestamp=1740577882&singular_install_id=554DBBE4-9842-46A8-9F9D-24B8A9BF83E3&v=18.2.1&singular_link=https://sl.sng.link/Cclbu/2a7n_dl=com.singular.flutterApplication1&_smtype=3&singular_link_resolve_timeout=0&pu=1&a=sdk<>key&skan_total_revenue_by_currency={}&h=8aee646bc4b796a5f8908ef8af677ba0fde70aa9</>
Como alternativa, você pode usar o Console do SDK Singular para verificar o link de rastreamento da notificação por push no URL do Deeplink, conforme demonstrado abaixo.
Ao verificar isso, você pode confirmar que os compromissos de notificação por push são rastreados corretamente no SDK Singular.
Observações:
- Observe que, ao contrário do código singularLinksHandler, o SDK do Singular não fornece retornos de chamada de carga útil de push para esse recurso. É da responsabilidade do programador da aplicação ler os dados da notificação push e implementar a lógica de ligação profunda para redirecionar os utilizadores para páginas de produtos específicas dentro da aplicação. Nesta solução, a Singular recupera o payload da notificação push quando o utilizador toca na notificação e inclui este payload no evento de início de sessão do SDK acionado por Singular.start(). Esses dados são então processados no back-end do Singular para atribuir o ponto de toque/clique da notificação push e registrá-lo para rastreamento de reengajamento.
-
Temos um mecanismo de segurança que permite apenas domínios de link Singular do par de valores-chave personalizado passado na carga útil da notificação push. Especificamente, apenas os domínios sng.link predefinidos na página Singular Manage Links são permitidos.
Por exemplo:
https://prod_test.sng.link/B0s2a/51oi?_dl=singular%3A%2F%2Fmain
Se você pretende envolver links Singular em um domínio diferente (por exemplo, um domínio ESP para provedores de serviços de email), é necessário configurar explicitamente o domínio adicionando a seguinte opção na sua configuração: Isso garante que o domínio externo seja reconhecido e permitido na estrutura do Singular. Consulte o exemplo de configuração abaixo. config.espDomains = @[@"sl.esp.link"];
-
Se você precisar acionar diferentes deep links com base nas ações do usuário a partir de uma única notificação por push, poderá usar um único link de rastreamento Singular e modificar dinamicamente os redirecionamentos.
Exemplo:
Uma notificação por push para notícias de última hora pode oferecer várias opções de links diretos:
Em vez de criar várias ligações de seguimento, configure uma ligação de seguimento única e ajuste os redireccionamentos dinamicamente com base na seleção do utilizador.
Ler as últimas notícias →
Tópicos em destaque →newsapp://article?id=12345
Desporto →newsapp://trending
newsapp://sports
Saiba mais sobre a substituição de redireccionamentos em links de seguimento Singular.
Seguindo essas etapas, seu aplicativo iOS agora está configurado para rastrear notificações push usando o Singular. Isso melhora o rastreamento de engajamento, otimiza as campanhas de reengajamento e aumenta a precisão da atribuição.