Unity插件V6版本接入指南——进阶SDK对接

概要:除了基础SDK功能以外,您还可以通过API实现其他的进阶SDK功能,包括卸载衡量、用户邀请归因、推送通知以及隐私设置。

 相关文章

下列文档可以帮助您更全面地了解Unity插件对接流程的各个方面:

归因

衡量卸载

衡量各渠道的用户卸载率。

请根据对应的操作系统按以下说明设置卸载衡量。

Android - FirebaseiOS
  1. Unity Firebase SDK下载地址:https://firebase.google.com/docs/unity/setup
  2. FirebaseMessaging.unitypackage导入项目。
  3. google-services.json导入项目(从Firebase控制台获取)。

     注意

    Unity Firebase SDK会自动添加manifest receiver。

  4. 将此代码添加到处理AppsFlyer代码的Unity类中:
    using Firebase.Messaging;
    using Firebase.Unity;
  5. 添加到Start()方法:
    Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
  6. 添加以下方法:
    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token)
    {
    #if UNITY_ANDROID
    AppsFlyerAndroid.updateServerUninstallToken(token.Token);
    #endif
    }

Android卸载衡量指南

 重要提示

场景:接入Unity Firebase SDK。

要求:如果您在项目中添加了Firebase Unity SDK,请勿将以下方法添加到enableUninstallTracking(“ SenderID”)。

后果(如果添加):

  • Firebase Unity SDK将从先前添加的google-services.json文件中获取发件人ID。
  • 这会触发Android发出调试警告(debug warning)。

设置其他自定义数据

如需在插件级别与多个与外部合作伙伴平台(包括SegmentAdobe和Urban Airship)对接,就需要用到setAdditionalData API。

在合作伙伴对接指南中明确指出需要使用setAdditionalData API时,才使用此API。

示例:setAdditionalData代码

Dictionary<string, string> CustomDataMap = new Dictionary<string, string>();
CustomDataMap.Add("custom_param_1", "value_of_param_1");

AppsFlyer.setAdditionalData(CustomDataMap);

Sessions(应用打开)

设定两个session之间的间隔

默认情况下,两次应用启动之间必须至少有5秒钟的间隔,AF才会将其记录为两个单独的session。请按以下方式设置session之间的最短间隔:

AppsFlyer.setMinTimeBetweenSessions(custom_time_ins_seconds);

注意!如果您将session之间的间隔设置得较高,可能会对依赖session数据(例如深度链接)的API产生负面影响。

详情请见应用session统计说明

工具类应用的后台session

在Unity中不可用。

自有媒体

如何解决嵌套型深度链接的网址问题

某些第三方服务商(例如ESP邮件营销服务商 )会:

  • 使用自己的域名(用于记录点击)将链接嵌套在电子邮件中。
  • 允许您设置自己的域名,用于记录点击。

如果将OneLink嵌套在此类域名中,可能会影响其功能。为了克服这个问题:

  • 在SDK初始化之前,请先调用setResolveDeepLinkURLs API。
  • 该API会从启动应用的点击域中获取OneLink。

场景:假设您有多个能跳转到OneLink的点击域,这个OneLink的地址是https://mysubdomain.onelink.me/abCD

解决方案:

  • 使用setResolveDeepLinkURLs API获取OneLink(即用户点击链接后跳转到的地址)。
  • 此API方法会接收由插件解析的域列表。
  • 以下代码可以让您在保留OneLink功能的情况下使用点击域:

     示例

    AppsFlyer.setResolveDeepLinkURLs("example.com", "click.example.com");

完成上述设置后您就可以使用此OneLink中的数据实现深度链接并打造个性化的用户内容。

记录推送通知

您可以记录推送通知,并将其做为再营销投放的一部分进行考察。

请按以下方式实现推送通知记录:

  • 调用sendPushNotificationData方法。
  • 将此方法放在所有由点击通知触发的活动(activity)的onCreate方法中。
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.handlePushNotifications();
#endif

详情请见推送通知衡量

用户邀请归因

让现有用户邀请好友或联系人成为新用户可以推动用户增长。

您可以对应用中的用户邀请所产生的激活进行归因和记录。详情请见用户邀请归因

交叉推广归因

对您的应用进行交叉推广可以进一步提升拉新效果。

您可以在用户的现有应用上交叉推广您的其他应用,并通过AppsFlyer来对这类激活进行归因和记录。详情请见交叉推广归因

用户标识符

获取AppsFlyer ID

AppsFlyer ID是在用户激活应用时生成的,您可以使用这个ID实现以下功能:

  • 发送S2S应用内事件
  • 将该ID与您后端系统中的用户进行匹配。
  • 合并Pull API和Push API的数据时进行数据映射。

请按以下方式获取AppsFlyer ID:

string AppsFlyerUID = AppsFlyer.getAppsFlyerId();

设置Customer User ID(客户用户ID,简称CUID)

您可以设置专用的CUID,并将其关联到对应的AppsFlyer ID。

CUID具有唯一性,且:

  • 会出现在CSV格式的AppsFlyer原始数据报告中。
  • 可以在回传API中使用,与内部ID进行交叉索引。

请按以下方式设置CUID:

AppsFlyer.setCustomerUserId("someId");

推荐方式:建议在应用链路中尽早设置CUID,因为只有在CUID设置后上报的事件才能关联到CUID。

在调用startSDK之前先调用setCustomerUserId

  • 记录到的事件将与CUID相关联。
  • 相关数据将显示在激活和应用内事件的原始数据报告中。
AppsFlyer.setCustomerUserId("someId");

获取CUID

详情请见CUID

延迟插件初始化以获取customerUserID

如果您想要让激活数据和事件数据都包含CUID,请在CUID设置完毕后再对插件进行初始化。

请根据具体的操作系统参考以下说明:

  1. Android
  2. iOS

 重要提示

延迟设置CUID可能会增加数据差异和作弊风险,因此请仅在符合业务逻辑时使用该方式。

收集OAID

OAID作为一种设备唯一标识符,是实现归因的重要元素。

请按以下方式收集OAID

Unity plugin V5.4及以上版本Unity plugin V5.3及以下版本

默认情况下会自动收集OAID。如需关闭自动收集,请调用AppsFlyerAndroid.setCollectOaid(false);

用户隐私

用户拒绝授权

某些情况下(例如有法律和隐私合规性问题时),您可能需要关闭并停止所有的数据记录(SDK跟踪)。

推荐方式:建议根据应用的实际情况,严格按照相关场景的说明进行操作。

请按以下方式停止SDK跟踪:

  • 调用stopSDK并将其设置为true
    AppsFlyer.stopSDK(true);
  • 插件将停止运行,并且不再与AppsFlyer服务器交互。

如需重新启用跟踪:调用stopSDK并将其设置为false。

注意

如需完全停止对某个具体用户的SDK跟踪,请使用stopSDK API。注意:使用此API会严重影响归因、数据收集和深度链接机制。

用户数据的匿名化处理

您可以在AppsFlyer的分析工具中对具体的用户标识符进行匿名化处理,以确保符合隐私保护条例以及Facebook数据隐私政策的规定。

请按以下方式对应用用户进行匿名化处理:

  1. 在SDK初始化期间设置API
  2. 调用anonymizeUser并将其设置为true
    AppsFlyer.anonymizeUser(true);
  3. 用户激活、事件和session数据的匿名化完成。

如需重新启用SDK跟踪:调用anonymizeUser并将其设置为false

 重要提示

对用户进行匿名化处理会严重影响您的归因信息,因此请仅在法律规定不能收集用户信息的地区使用这种做法。

停止与渠道的数据共享

在某些情况下,广告主可能需要停止与广告平台/渠道共享特定用户的用户级别数据。其原因包括:

  • CCPA或GDPR等隐私政策的合规问题
  • 用户拒绝授权
  • 与某些渠道(广告平台、第三方)存在竞争关系

AppsFlyer提供两种API方法来停止与某些或所有渠道共享数据:

  • setSharingFilter广告主需要让某些(可以是一个或多个)广告平台/对接渠道停止获取数据时使用该方法。
  • setSharingFilterForAllPartners:广告主需要让所有平台/对接渠道停止获取数据时使用该方法。

SDK V5.4.1及之后的版本支持上述筛选方法。

每次SDK初始化时都必须调用上述筛选方法,且筛选会对整个session生效。如果不能立即判断是否需要筛选数据共享渠道,请延迟SDK初始化。

在首次调用startSDK之前激活该方法:

  • 来自SRN的用户会被归因到自然量,他们的数据不会分享给对接渠道。
  • 点击广告平台(非SRN)的用户在AppsFlyer后台会按实际情况归因,但不会通过回传、API、原始数据报告或任何其他方式与广告平台分享该数据。

卸载数据目前还无法对数据共享渠道进行筛选。但是,您可以在AppsFlyer后台的合作伙伴配置页中关闭卸载事件发送。

这篇文章有帮助吗?