SDK do iOS - Suporte a notificações push

Documento

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:

SwiftObjective-C
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()
        }
    }
}

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:

SwiftObjective-C
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()
}

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:

SwiftObjective-C
// 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)

Esta etapa permite que o Singular rastreie corretamente as interações de notificação push e as atribua de acordo.

Guia de validação

Etapa 4: Validando/verificando o recebimento da notificação por push na chamada de sessão inicial

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
    newsapp://article?id=12345
    Tópicos em destaque
    newsapp://trending
    Desporto
    newsapp://sports

    Saiba mais sobre a substituição de redireccionamentos em links de seguimento Singular.

Sucesso!

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.