推送通知活动测量

文档

推送通知营销活动测量

跟踪和测量 iOS 和 Android 上的推送通知活动性能,将重新参与事件归因于特定的推送活动,并优化用户保留策略。

Singular为Firebase Cloud Messaging(FCM)、Apple Push Notification Service(APN)以及CleverTap、MoEngage、WebEngage、OneSignal、Salesforce Marketing Cloud和Braze等第三方平台上的推送通知活动提供无缝跟踪。


推送通知跟踪的工作原理

Singular通过在通知有效载荷中嵌入跟踪链接来跟踪推送通知活动,并将应用程序的打开归因于发起的活动。

跟踪流程

  1. 创建营销活动:创建推送通知,并将Singular跟踪链接作为自定义键值/值数据嵌入其中
  2. 用户接收通知:推送提供商向用户设备发送通知
  3. 用户点击通知:用户点击通知打开应用
  4. SDK 处理有效载荷:Singular SDK 从通知有效载荷中提取跟踪数据
  5. 记录归因:Singular 将应用程序的打开归因于推送活动的再接触事件

再参与与获取:推送通知跟踪测量的是再参与(现有用户返回到您的应用程序),而不是新用户获取。跟踪链接必须配置为启用重新吸引。


支持的推送通知提供商

Singular支持所有主要推送提供商和营销自动化平台的推送通知跟踪。

平台支持矩阵

提供商 平台 集成类型 Singular 支持
Firebase 云消息 (FCM) 安卓 自定义数据有效载荷
苹果推送通知服务(APN) 苹果 自定义数据有效载荷
CleverTap iOS、安卓 自定义数据有效载荷
MoEngage iOS、安卓 自定义数据有效载荷
WebEngage iOS、安卓 自定义数据有效载荷
OneSignal iOS、安卓 自定义数据或启动 URL
销售力营销云 (SFMC) iOS、安卓 自定义数据或 OpenDirect
Braze iOS、安卓 自定义数据或点击行为

集成灵活性:某些提供商(OneSignal、SFMC、Braze)支持通过 CTA 字段直接集成跟踪链接,无需自定义 SDK 配置。有关详情,请参阅替代集成方法。


前提条件

在实施推送通知跟踪之前,请确认您的应用程序符合这些要求。

所需设置

Singular SDK 集成

安装和配置 Singular SDK,并启用推送通知支持。


推送通知基础架构

在应用程序和后台系统中配置推送通知交付。

  • 安卓:使用有效的服务器密钥配置 Firebase Cloud Messaging
  • iOS 系统:苹果开发者账户中配置的 APNs 证书或令牌
  • 设备注册:应用程序成功注册推送通知并存储令牌
  • 交付测试:验证推送通知是否成功到达设备

推送提供商帐户

设置和配置推送通知服务提供商。

  • 提供商账户:FCM、APN 或第三方平台的活动账户
  • 自定义数据支持:验证提供商是否支持有效载荷中的自定义键/值对
  • API 访问:为以编程方式发送通知而配置的凭证

实施步骤

按照以下步骤使用 Singular 实施推送通知活动跟踪。

步骤 1:创建 Singular 跟踪链接

生成再参与链接

创建专门为推送通知活动的再参与跟踪配置的奇异链接。

  1. 导航至奇异链接:访问 Singular 面板中的 Singular 链接部分
  2. 创建新链接:单击 "创建新链接 "并选择您的应用程序
  3. 启用再参与:将 "再参与 "设置切换为启用(对于推送跟踪至关重要
  4. 配置参数:为归因添加营销活动参数(来源、媒介、营销活动名称
  5. 生成链接:保存并生成长短两种 URL 格式

完整指南:构建奇异跟踪链接

关键:跟踪链接必须启用再参与功能。未启用再参与功能的链接将无法正确归因于推送通知的打开。

链接配置示例

Singular Link Creation

再参与切换

Enable Re-engagement

生成链接

Generated Singular Link

步骤 2:在推送通知有效载荷中添加链接

配置自定义数据

使用标准密钥名称将 Singular 跟踪链接嵌入推送通知的自定义数据部分。

配置要求

  • 键名:使用sng_link 作为自定义数据键(区分大小写
  • 值:粘贴完整的 Singular 跟踪链接(短或长格式
  • 数据类型:自定义数据有效载荷中的字符串值

Firebase 云消息示例

通过 Firebase 控制台或 API 向 FCM 通知添加自定义数据。

Firebase 控制台配置

Firebase Custom Data
FCM API
{
  "notification": {
    "title": "Special Offer Inside!",
    "body": "Open now to claim your reward"
  },
  "data": {
    "sng_link": "https://your-app.sng.link/Abc12/xyz9?pcn=push_campaign"
  },
  "to": "device_registration_token_here"
}

苹果推送通知服务示例

使用标准 aps 字典格式在 APNs 有效负载中包含自定义数据。

APNs 有效负载结构

APNs Custom Data
APNs JSON
{
  "aps": {
    "alert": {
      "title": "Special Offer Inside!",
      "body": "Open now to claim your reward"
    },
    "sound": "default",
    "badge": 1
  },
  "sng_link": "https://your-app.sng.link/Abc12/xyz9?pcn=push_campaign"
}

支持两种格式:Singular 既接受短链接(sng.link),也接受长链接(自定义域格式)。请使用适合您的跟踪基础设施的格式。


第 3 步:配置 SDK 以处理自定义密钥

安卓 SDK 配置

配置 Singular Android SDK,以便从 FCM 通知中提取和处理sng_link 自定义数据密钥。

Kotlin
// In your FirebaseMessagingService
override fun onMessageReceived(remoteMessage: RemoteMessage) {
    super.onMessageReceived(remoteMessage)
    
    // Extract custom data from notification
    val data = remoteMessage.data
    
    // Check for Singular tracking link
    if (data.containsKey("sng_link")) {
        val singularLink = data["sng_link"]
        
        // Pass to Singular SDK for attribution
        Singular.setGCMData(data)
    }
    
    // Display notification to user
    showNotification(remoteMessage)
}

完整集成指南:支持安卓推送通知


iOS SDK 配置

配置 Singular iOS SDK,从 APNs 通知中提取并处理sng_link 自定义数据密钥。

Swift
// In your AppDelegate
func application(_ application: UIApplication, 
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    
    // Check for Singular tracking link
    if let singularLink = userInfo["sng_link"] as? String {
        // Pass to Singular SDK for attribution
        Singular.setAPNSData(userInfo)
    }
    
    completionHandler(.newData)
}

// For iOS 10+ UNUserNotificationCenter
func userNotificationCenter(_ center: UNUserNotificationCenter,
                           didReceive response: UNNotificationResponse,
                           withCompletionHandler completionHandler: @escaping () -> Void) {
    
    let userInfo = response.notification.request.content.userInfo
    
    // Check for Singular tracking link
    if let singularLink = userInfo["sng_link"] as? String {
        // Pass to Singular SDK for attribution
        Singular.setAPNSData(userInfo)
    }
    
    completionHandler()
}

完整集成指南:iOS 推送通知支持


第 4 步:测试和验证

测试程序

在启动营销活动之前,验证推送通知跟踪是否正常。

  1. 发送测试通知:使用自定义数据中的 Singular 链接触发测试推送通知
  2. 在设备上接收:确认通知出现在测试设备上
  3. 点击通知:点击通知打开应用程序
  4. 检查 SDK 日志:验证 SDK 日志是否显示奇异链接提取
  5. 验证仪表板:确认重新参与事件在 5 分钟内出现在 Singular 面板中

特定平台验证

常见问题

  • 缺少事件:验证sng_link关键名称是否准确(区分大小写
  • 错误归属:确认跟踪链接已启用重新参与功能
  • SDK 未处理:检查 SDK 是否在通知处理前初始化

步骤 5:监控营销活动性能

分析推送通知结果

在 Singular 的分析报告中跟踪推送通知活动的再参与性能和投资回报率。

可用指标

  • 再参与事件:推送通知导致的应用程序打开总数
  • 再参与率:通过推送打开应用的用户百分比
  • 收入归因:重新参与用户产生的收入
  • 活动比较:不同推送活动的表现
  • 群组分析:重新吸引后的用户行为

仪表板示例

Singular Analytics Dashboard

通过以下方式访问报告:分析 → 汇总分析报告 → 按重新吸引来源过滤


其他集成方法

某些推送提供商支持直接跟踪链接集成,无需在 SDK 中进行自定义数据配置。

直接 CTA 集成

某些平台允许在通知 CTA 字段中直接配置 Singular 跟踪链接,从而自动启动带有归因数据的应用程序。

OneSignal 启动 URL

OneSignal 通过启动 URL 功能支持直接跟踪链接。

  • 配置:在通知组成器中的启动 URL 字段中添加 Singular 链接
  • 行为:点击通知打开应用程序,并自动处理 Singular 链接
  • SDK 要求:最低标准的 Singular SDK 集成即可

文档:OneSignal 启动 URL


Salesforce 营销云 OpenDirect

SFMC 提供 OpenDirect 功能,用于启动带有跟踪链接的应用程序。

  • 配置:在消息设置中将 Singular 链接设置为 OpenDirect URL
  • 行为:通知点按通过 OpenDirect 协议触发应用程序启动
  • 平台支持:适用于 iOS 和 Android

文档:SFMC OpenDirect


Braze 点击行为

Braze 允许在通知点击行为设置中配置 Singular 跟踪链接。

  • 配置:在推送组成器中的点击行为字段中添加奇异链接
  • 行为:通知点击打开应用程序并自动处理链接
  • 操作类型:支持深度链接和外部 URL 选项

文档:Braze 点击行为

建议在可用时使用直接 CTA 集成--它可简化实施并减少 SDK 配置要求。不过,自定义数据方法可为所有提供商提供最大的灵活性。


最佳实践

请遵循以下指导原则,以最大限度地提高推送通知营销活动跟踪的准确性和有效性。

营销活动结构

链接配置

  • 每个营销活动的唯一链接:为每个推送活动创建单独的跟踪链接,以隔离性能
  • 描述性参数:在跟踪链接参数中使用清晰的广告系列名称
  • 一致的命名:为推送活动建立命名约定(例如,push_promo_2025_q1
  • 启动前测试:通过测试通知验证每个新的跟踪链接

技术实施

  • 大小写敏感性:始终使用sng_link(小写
  • URL 编码:确保在 API 请求中对跟踪链接进行正确的 URL 编码
  • 有效载荷大小:监控通知有效载荷大小--保持在平台限制范围内(APN 为 4KB,FCM 为 4KB
  • 错误处理:如果通知中缺少自定义数据,则实施回退逻辑
  • SDK 版本:使用最新的 Singular SDK 版本,以获得最佳推送通知支持

性能优化

  • 细分:将推送活动定位到参与的用户群,以提高打开率
  • 定时:根据用户行为在最佳参与窗口发送通知
  • A/B 测试:使用单独的跟踪链接测试不同的消息传递和时间安排
  • 频率上限:限制推送频率,避免用户疲劳和退出
  • 深度链接:将推送跟踪与特定应用内内容的深度链接相结合

故障排除

常见问题和解决方案

问题 原因 解决方案
仪表板中未显示事件 未在链接上启用重新参与 验证跟踪链接是否已在 "奇异链接 "中启用 "重新参与 "切换。
SDK 无法提取链接 自定义数据密钥名称不正确 确认关键字正是sng_link (区分大小写)
归属到错误的营销活动 在不同营销活动中使用相同链接 为每个营销活动创建唯一的跟踪链接
事件报告延迟 网络延迟或脱机模式 SDK 将事件排成队列,并在恢复连接时发送--最多允许 24 小时
未跟踪 iOS 通知 缺少 APN 数据处理器 在通知委托方法中实施setAPNSData()
未跟踪 Android 通知 缺少 FCM 数据处理器 在 FirebaseMessagingService 中调用setGCMData()

支持:如需更多故障排除帮助,请联系 Singular 支持,并提供推送通知有效载荷示例、SDK 日志和显示问题的仪表盘截图。