Unreal 引擎 SDK 集成: 高级选项

 

创建短推荐人链接

注:此功能在 SDK 2.0.6+ 版本中可用。

使用短链接可将冗长、充满参数的奇异链接转换为更短、更安全的链接,方便共享。

通常情况下,您需要动态创建短链接,以便应用程序的用户可以与朋友分享,邀请他们使用应用程序。

要创建短链接,您需要

  • 指向应用程序下载的奇异链接(请参阅奇异链接常见问题)。
  • 要动态添加到链接中的任何参数(选项列表请参阅跟踪链接参数)。
  • 推荐用户的姓名和 ID,如果您希望跟踪新应用的安装情况,并追溯到共享链接的用户。

要启用短链接,首先将此代码添加到主字符构造函数中:

if (AUnrealTestAppCharacter::singularDelegates == NULL) {
    AUnrealTestAppCharacter::singularDelegates =
      CreateDefaultSubobject<USingularDelegates>(TEXT("SingularShortLinksHandler"));
      singularDelegates->OnSingularShortLinksResolved.AddDynamic(this, &AUnrealTestAppCharacter::SingularShortLinksResolved);
  }
      
  void AUnrealTestAppCharacter::SingularShortLinksResolved(const FSingularShortLinkParams& linkParams) {
    const FString shortLinkURL = linkParams.SingularShortLinksParams["data"];
    const FString errorMessage = linkParams.SingularShortLinksParams["error"];
/* 在这里添加您的分享逻辑。 如果出现错误,请根据错误原因添加逻辑以重试/中止/修改传递给函数的参数。*/ }

然后使用CreateReferrerShortLink方法创建一个短链接,如下图所示。

  // 向链接添加参数(如果长链接 URL 中尚不存在)
  TMap<FString, FString> params;
  params.Add(TEXT("channel"), TEXT("sms"));
  params.Add(TEXT("anotherparam"), TEXT("paramvalue"));
  
  // 基于原始单一链接 URL 创建短链接,其中包含引用者名称、引用者 ID 和可选的附加参数。
  USingularSDKBPLibrary::CreateReferrerShortLink(
      "https://sample.sng.link/B4tbm/v8fp?_dl=https%3A%2F%2Fabc.com",
      "referrer name",
      "referrer ID", 
      params
  );

跟踪卸载

注意:卸载跟踪仅适用于企业客户。

安卓卸载跟踪

要启用安卓应用程序的卸载跟踪功能,首先要在 Singular 平台上配置应用程序,详见 设置卸载跟踪。 然后按照以下说明操作。

注意: 谷歌于 2018 年 4 月废弃了 GCM API。请使用 FCM 进行卸载跟踪。

使用 Firebase 云消息 (FCM) 启用卸载跟踪

1.与 FCM 集成

要跟踪卸载,您可以使用 Firebase Cloud Messaging (FCM) 平台的服务。如果您尚未使用 FCM,请按照 Google 的说明 在 Android 上设置 Firebase Cloud Messaging 客户端应用程序

FCM 要求(来源)

FCM 客户端要求运行 Android 4.1 或更高版本的设备,同时安装 Google Play Store 应用程序,或运行 Android 4.1 和 Google API 的模拟器。请注意,您并不局限于通过 Google Play Store 部署您的 Android 应用程序。

不在支持版本的安卓系统上运行的用户/设备将无法进行Singular卸载跟踪。

2.更新 AndroidManifest.xml 文件

更新 AndroidManifest.xml 文件,为应用程序添加必要的意图过滤器(用实现 Firebase 服务的类替换 MyFirebaseMessagingService):

<service android:name=".java.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".java.MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>

3.注册并发送 FCM 设备令牌

最后,在 OnCreate() 中初始化 SingularConfig 后设置 FCM 设备令牌,如下所示:

Singular.setFCMDeviceToken(String fcmDeviceToken);

iOS 卸载跟踪

iOS 上的卸载跟踪基于 Apple 推送通知技术。如果您的应用程序目前不支持推送通知,请参阅 Apple 的指南。 如果您的应用程序已经支持推送通知,您只需在 SDK 初始化后使用 RegisterDeviceTokenForUninstall 方法传递从 APNS 返回的设备令牌即可。

SingularSDK SetUninstallToken 方法
说明 传递从 APNS / FCM 返回的设备令牌。请注意,APNS / FCM 令牌通常是本地形式的二进制数据,但您需要以字符串形式传递。
签名
public static void SetUninstallToken(FString token)
使用示例
// 将令牌作为十六进制字符串传递
USingularSDKBPLibrary::SetUninstallToken("ba85ab31a7c7f5c2f012587f29fb0e596d4b67e7b7b2838fa1a8582c1f7dbdee");

遵守数据隐私法

Singular提供隐私保护功能,帮助您与任何可能遵守消费者隐私法(如GDPR和CCPA(加州消费者隐私法))的合作伙伴合作。 这些合作伙伴希望在最终用户同意共享其私人信息时得到通知。

限制数据共享

如果你已经实施了一种征求用户同意共享其信息的方法,请使用limitDataSharing方法通知 Singular 用户的选择:

  • 使用limitDataSharing:NO表示用户同意(选择加入)共享其信息。
  • 如果用户不同意,则使用 limitDataSharing:YES

Singular在"用户隐私回传"中使用限制数据分享,并将此信息传递给需要的合作伙伴,以遵守相关法规。更多信息请参阅"用户隐私和限制数据共享"

注意:该方法的使用是可选的,但可能会有归属信息,只有在明确通知用户已选择的情况下,合作伙伴才会与Singular共享这些信息。

SingularSDK 限制数据共享方法
签名 public void LimitDataSharing(bool shouldLimitDataSharing)
说明 通知 Singular 用户同意(选择加入)共享私人数据。限制数据共享方法可让您选择控制应用程序是否向第三方发送用户数据。如果您想根据用户偏好或隐私要求限制数据共享,这将非常有用。
使用示例
// 用户已选择共享数据
USingularSDKBPLibrary::LimitDataSharing(false);

 

遵守 GDPR 的其他方法

Singular SDK 提供多种方法,帮助您遵守 GDPR 政策,并让 Singular 了解用户是否同意追踪。

SingularSDK TrackingOptIn 方法
说明 通知 Singular 用户同意(选择加入)跟踪。TrackingOptIn()方法用于向Singular服务器发送 “gdpr ”事件。如果您不调用此方法,应用程序将继续跟踪用户,就像他们已经同意一样,但不会特别将他们标记为 GDPR 选择加入。如果您的应用程序需要遵守 GDPR(《通用数据保护条例》),则应调用此功能,以确保正确记录用户同意。
使用示例
USingularSDKBPLibrary::TrackingOptIn();
SingularSDK StopAllTracking 方法
说明 停止此用户在此应用程序上的所有跟踪活动。
注意: 调用此方法将有效禁用 SDK,即使应用程序重新启动后也是如此(状态是持久的)!重新启用跟踪的唯一方法是调用 resumeAllTracking()。
使用示例
USingularSDKBPLibrary::StopAllTracking();
SingularSDK ResumeAllTracking 方法
说明 在此应用程序上恢复对该用户的跟踪。
使用示例
USingularSDKBPLibrary::ResumeAllTracking();
SingularSDK IsAllTrackingStopped 方法
说明 检查此应用程序中该用户的跟踪状态。如果使用 StopAllTracking() 停止了跟踪且未恢复,则返回 true。
使用示例
USingularSDKBPLibrary::IsAllTrackingStopped();