Unreal 引擎 SDK 集成: 高级选项

Singular 虚幻引擎 SDK
下载
奇异虚幻引擎 SDK 2.4.0 版
兼容性

虚幻引擎 4.23+

集成指南
  1. 基本集成
  2. 跟踪事件和收入
  3. 实现深度链接
  4. 添加SKAdNetwork支持
  5. 高级选项

 

创建短推荐人链接

注:此功能在 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 用户同意(选入)跟踪。
使用示例
USingularSDKBPLibrary::TrackingOptIn();
SingularSDK StopAllTracking 方法
说明 停止此用户在此应用程序上的所有跟踪活动。
注意: 调用此方法将有效禁用 SDK,即使应用程序重新启动后也是如此(状态是持久的)!重新启用跟踪的唯一方法是调用 resumeAllTracking()。
使用示例
USingularSDKBPLibrary::StopAllTracking();
SingularSDK ResumeAllTracking 方法
说明 在此应用程序上恢复对该用户的跟踪。
使用示例
USingularSDKBPLibrary::ResumeAllTracking();
SingularSDK IsAllTrackingStopped 方法
说明 检查此应用程序中该用户的跟踪状态。如果使用 StopAllTracking() 停止了跟踪且未恢复,则返回 true。
使用示例
USingularSDKBPLibrary::IsAllTrackingStopped();