Apoyo a las notificaciones push

Documento

Seguimiento del reenganche mediante notificaciones push

Singular admite el seguimiento de notificaciones push para mejorar la medición del reenganche. Mediante la integración de Firebase Cloud Messaging (FCM) con el SDK de Singular, puede realizar un seguimiento de los usuarios que interactúan con las notificaciones push y atribuirlos en consecuencia.

Para garantizar un seguimiento preciso, siga las directrices de implementación que se indican a continuación y asegúrese de que los datos de las notificaciones se transmiten correctamente a Singular SDK.

¿Por qué es importante el seguimiento de las notificaciones push?

Las notificaciones push son una herramienta clave de captación, pero su seguimiento requiere una integración correcta. Singular asegura que los usuarios que interactúan con las notificaciones son atribuidos correctamente, ayudando a optimizar las campañas de marketing y las estrategias de compromiso.


Guía de implementación

Paso 1: Configuración de las notificaciones push de Firebase en Flutter

En primer lugar, integra Firebase en tu app Flutter para gestionar las notificaciones push. Sigue estos pasos:

  1. Añade dependencias Añade los paquetes necesarios a tu pubspec.yaml
    yaml
    dependencies:
      firebase_core: ^2.24.2
      firebase_messaging: ^14.7.10
  2. Configurar Firebase
    • Android: Coloca google-services.json en android/app/ y actualiza los archivos Gradle (ver ).
    • iOS: Coloca GoogleService-Info.plist en la carpeta Xcode Runner y actualiza Podfile con los pods de Firebase.
  3. Inicializa Firebase en Flutter Actualiza tu main.dart:
    dart
    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_messaging/firebase_messaging.dart';
    
    Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
      await Firebase.initializeApp();
      print("Background message: ${message.messageId}");
    }
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
      runApp(MyApp());
    }

Paso 2: Manejo de notificaciones push en Flutter

Cuando tu aplicación recibe una notificación push de Firebase, necesitas capturar los datos de la notificación y prepararlos para Singular. A continuación se explica cómo gestionar las notificaciones en diferentes estados de la aplicación:

Android

  • Primer plano: Gestiona las notificaciones directamente en Dart.
  • Fondo/Terminado: Interfaz con la capa nativa de Android.

Actualiza tu código Dart:

dart
class _MyAppState extends State<MyApp> {
  final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;

  @override
  void initState() {
    super.initState();

    // Request permission

    _firebaseMessaging.requestPermission();

    // Foreground notifications

    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      print('Foreground message: ${message.messageId}');
      String title = message.notification?.title ?? '';
      String body = message.notification?.body ?? '';
      Map<String, dynamic> data = message.data;

      // Process notification for Singular (foreground)

      _processNotificationForSingular(title, body, data);
    });

    // Background/Opened from notification

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      print('Message opened: ${message.messageId}');
      _processNotificationForSingular(
        message.notification?.title ?? '',
        message.notification?.body ?? '',
        message.data,
      );
    });
  }

  void _processNotificationForSingular(
      String title, String body, Map<String, dynamic> data) {
    print('Notification - Title: $title, Body: $body, Data: $data');
    // Add Singular handling here (Step 3)

  }
}

iOS

  • Primer plano: Similar a Android, manejado en Dart.
  • Fondo/Terminado: Requiere integración nativa de iOS.

Paso 3: Interfaz de notificaciones push con el SDK de Singular

Para asegurarse de que Singular realiza un seguimiento de las notificaciones push para su atribución, debe pasar la carga útil de la notificación al SDK de Singular. Esto implica código Dart y alguna configuración nativa.

Proporcionar la carga útil push

  1. Android
    • Antecedentes: En su Android MainActivity, anule onNewIntent para pasar la intención a Singular:
      kotlin
      // MainActivity.kt
      
      package com.example.yourapp
      
      import io.flutter.embedding.android.FlutterActivity
      import android.content.Intent
      import com.singular.sdk.SingularBridge
      
      class MainActivity: FlutterActivity() {
          override fun onNewIntent(intent: Intent) {
              super.onNewIntent(intent)
              SingularBridge.onNewIntent(intent)
          }
      }
    • Terminado: Manejado automáticamente por la capa puente de Singular, sin necesidad de código adicional.
  2. iOS
    • En segundo plano: Llame a handlePushNotification en su código Dart cuando procese notificaciones en segundo plano:
      dart
      void _processNotificationForSingular(
          String title, String body, Map<String, dynamic> data) {
        Singular.handlePushNotification(data);
      }
    • Terminado: Actualice AppDelegate.swift para manejar las opciones de lanzamiento:
      swift
      import UIKit
      import Singular
      
      @UIApplicationMain
      @objc class AppDelegate: FlutterAppDelegate {
        override func application(
          _ application: UIApplication,
          didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
        ) -> Bool {
          SingularAppDelegate.shared().launchOptions = launchOptions
          return super.application(application, didFinishLaunchingWithOptions: launchOptions)
        }
      }

Configuración de rutas de enlaces push en Singular Config

Configure Singular SDK para que reconozca rutas específicas en sus cargas útiles de notificación para la atribución de Re-engagement:

dart
import 'package:singular_flutter_sdk/singular.dart'; // Adjust import


void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // Singular configuration

  SingularConfig config = SingularConfig(
    apiKey: 'your_api_key',
    secret: 'your_secret',
  );

  // Set push notification link paths (same for iOS and Android)

  config.pushNotificationsLinkPaths = [
    ['sng_link'],
    ['rootObj', 'nestedObj', 'anotherNested', 'singularLink'],
  ];

  // Initialize Singular

  Singular.init(config);

  runApp(MyApp());
}

Guía de validación

Paso 4: Validación/Verificación de la recepción de notificaciones push en la llamada de inicio de sesión

La llamada a la API de Singular SDK garantiza que el enlace de la carga útil de la notificación push se pasa correctamente bajo el parámetro reservado singular_link en la llamada de inicio de sesión.

Ejemplo:

https://sdk-api-v1.singular.net/api/v1/start?a=<SDK-Key>&ab=arm64-v8a&aifa=180f63a1-0955-47b4-896a-d75ae3d35955&apc=Marchv7&apg=1&aps=Intex&asid_scope=1&asid_timeinterval=0.112&av=20.0&br=samsung&c=wifi&current_device_time=1740905574088&de=m15x&device_type=phone&device_user_agent=Dalvik/2.1.0 (Linux; U; Android 14; SM-E156B Build/UP1A.231005.007)&dnt=0&event_index=3&fi=e5bRZuVddO8:APA91bHXI3OmFZv3-r8f03zyji2kvKWbIngwf8KBDHk4Rj5q5MEeEm6EtzC-if1vpJRmuYLyGdAcSz9-nc49eIjD86xwj-n9J4jKucqMVt9mP8ICifP0arA&i=net.singular.singularsampleapp&install_time=1740905507036&is=false&k=SDID&lag=0.067&lc=en_IN&ma=samsung&mo=SM-E156B&n=Singular-TestApp-Debug&p=Android&pr=m15xnndins&pu=1&rt=json&s=1740905574084&sdk=Singular/v12.6.2&singular_install_id=2dc5dfc2-a2a8-484a-aad1-fed6cb7a3023&singular_link=https://singularassist2.sng.link/C4nw9/r1m0?_dl=singular://test&_smtype=3&src=com.android.shell&u=75f7b911-5a77-597d-8892-56f5e0e210ff&update_time=1740905507036&v=14&h=1e723fd90344d5d037059f110611ed1d84fbba88


Alternativamente, puede utilizar la consola de Singular SDK para verificar el enlace de seguimiento de la notificación push bajo la URL Deeplink, como se demuestra a continuación.

Al verificar esto, puede confirmar que los compromisos de notificación push se rastrean correctamente en Singular SDK.

Notas:

  • Tenga en cuenta que, a diferencia del código singularLinksHandler, Singular SDK no proporciona callbacks de carga útil push para esta función. Es responsabilidad del desarrollador de la aplicación leer los datos de la notificación push e implementar la lógica de enlace profundo para redirigir a los usuarios a páginas de productos específicos dentro de la aplicación. En esta solución, Singular recupera la carga útil de la notificación push cuando el usuario toca la notificación e incluye esta carga útil en el evento de inicio de sesión del SDK activado por Singular.start(config). A continuación, estos datos se procesan en el backend de Singular para atribuir el punto de contacto/clic de la notificación push y registrarlo para el seguimiento del reenganche.
  • Disponemos de un mecanismo de seguridad que sólo permite a Singular enlazar dominios a partir del par clave-valor personalizado pasado en la carga útil de la notificación push. En concreto, sólo se permiten los dominios sng.link predefinidos en la página Singular Manage Links.

    Por ejemplo
    https://prod_test.sng.link/B0s2a/51oi?_dl=singular%3A%2F%2Fmain

    Si pretende envolver enlaces Singular dentro de un dominio diferente (por ejemplo, un dominio ESP para proveedores de servicios de correo electrónico), debe configurar explícitamente el dominio añadiendo la siguiente opción en su configuración: Esto garantiza que el dominio externo se reconozca y se permita dentro del marco de Singular. consulte el siguiente ejemplo de configuración. config.withESPDomains(Arrays.asList("sl.esp.link"));

  • Si necesita activar diferentes enlaces profundos en función de las acciones del usuario desde una única notificación push, puede utilizar un único enlace de seguimiento de Singular y modificar dinámicamente las redirecciones.

    Ejemplo:

    Una notificación push de noticias de última hora puede ofrecer múltiples opciones de enlaces profundos. En lugar de crear varios enlaces de seguimiento, configure un único enlace de seguimiento Singular y ajuste los redireccionamientos dinámicamente en función de la selección del usuario.

    Leer últimas noticias
    newsapp://article?id=12345
    Temas de actualidad → Trending Topics
    newsapp://trending
    Deportes
    newsapp://sports


    Más información sobre la anulación de redirecciones en Enlaces de seguimiento singulares.

¡¡¡Éxito!!!

Siguiendo estos pasos, su aplicación ya está configurada para realizar un seguimiento de las interacciones de las notificaciones push mediante Singular. Esto ayuda a mejorar la información sobre el rendimiento de la campaña y garantiza una atribución precisa del reenganche.