虚幻引擎 SDK - 跟踪应用程序内事件


跟踪应用内收入

跟踪来自应用内购买 (IAP)、订阅和自定义收入来源的收入,以衡量营销活动绩效和广告支出回报率 (ROAS)。

收入数据通过三个渠道流动:

  • 互动报告: 在 Singular 面板中查看收入指标
  • 导出日志: 访问详细的 ETL 数据,进行自定义分析
  • 实时回传: 向外部平台发送收入事件

货币转换: 不同货币的收入会自动转换为您的 Singular 账户中设置的贵组织首选货币。


收入事件指南

收入事件限制

收入事件要求

  • 事件名称: 自定义收入事件名称限制为 32 个 ASCII 字符(或转换为 UTF-8 后 32 个字节的非 ASCII 字符
  • 属性: 事件属性名称和值限制为 500 个 ASCII 字符
  • 货币代码: 必须使用大写字母,并遵循三个字母的 ISO 4217 标准 (例如,美元、欧元、印度卢比、英镑、日元

发送收入事件

简单的收入跟踪

向 Singular 发送包含事件名称、货币代码和交易金额的收入事件,以跟踪基本购买数据。

C++
// Example 1: Basic purchase tracking
USingularSDKBPLibrary::SendRevenue(TEXT("Purchase Completed"), TEXT("USD"), 9.99f);

// Example 2: Subscription purchase
USingularSDKBPLibrary::SendRevenue(TEXT("SubscriptionPurchase"), TEXT("USD"), 29.99f);

// Example 3: In-game currency purchase
USingularSDKBPLibrary::SendRevenue(TEXT("CoinPackagePurchase"), TEXT("EUR"), 4.99f);

// Example 4: Premium item purchase
USingularSDKBPLibrary::SendRevenue(TEXT("PremiumItemPurchase"), TEXT("GBP"), 19.99f);

方法签名

static void SendRevenue(FString eventName, FString currency, float amount);

注意: 以三个字母的 ISO 4217 货币代码形式传递货币,如 "USD"、"EUR"、"INR"。


使用属性跟踪收入

发送带有附加自定义参数的收入事件,以捕捉交易细节,如产品 SKU、类别或促销代码。

C++
// Example 1: Revenue with product details
TMap<FString, FString> PurchaseArgs;
PurchaseArgs.Add(TEXT("product_id"), TEXT("coin_pack_100"));
PurchaseArgs.Add(TEXT("product_name"), TEXT("100 Coin Pack"));
PurchaseArgs.Add(TEXT("product_category"), TEXT("currency"));
USingularSDKBPLibrary::SendRevenueWithArgs(
    TEXT("Purchase Completed"), 
    TEXT("USD"), 
    4.99f, 
    PurchaseArgs
);

// Example 2: Subscription with billing details
TMap<FString, FString> SubArgs;
SubArgs.Add(TEXT("subscription_tier"), TEXT("premium"));
SubArgs.Add(TEXT("billing_period"), TEXT("monthly"));
SubArgs.Add(TEXT("trial_period"), TEXT("false"));
SubArgs.Add(TEXT("renewal_count"), TEXT("3"));
USingularSDKBPLibrary::SendRevenueWithArgs(
    TEXT("SubscriptionRenewal"), 
    TEXT("USD"), 
    9.99f, 
    SubArgs
);

// Example 3: Purchase with promotional discount
TMap<FString, FString> PromoArgs;
PromoArgs.Add(TEXT("product_id"), TEXT("bundle_mega_001"));
PromoArgs.Add(TEXT("promo_code"), TEXT("SUMMER2025"));
PromoArgs.Add(TEXT("discount_amount"), TEXT("5.00"));
PromoArgs.Add(TEXT("original_price"), TEXT("19.99"));
USingularSDKBPLibrary::SendRevenueWithArgs(
    TEXT("BundlePurchase"), 
    TEXT("USD"), 
    14.99f, 
    PromoArgs
);

// Example 4: IAP with transaction metadata
TMap<FString, FString> IAPArgs;
IAPArgs.Add(TEXT("platform"), TEXT("google_play"));
IAPArgs.Add(TEXT("transaction_id"), TEXT("GPA.1234-5678-90AB"));
IAPArgs.Add(TEXT("item_type"), TEXT("consumable"));
IAPArgs.Add(TEXT("user_level"), TEXT("42"));
USingularSDKBPLibrary::SendRevenueWithArgs(
    TEXT("IAP_Consumable"), 
    TEXT("USD"), 
    2.99f, 
    IAPArgs
);

方法签名

static void SendRevenueWithArgs(FString eventName, FString currency, float amount, TMap<FString, FString> args);

最佳做法: 在属性中包含尽可能多的交易详情,以便进行精细的收入分析,并根据产品性能优化营销支出。


收入跟踪最佳实践

推荐属性

在收入事件中包含这些常用属性,以便全面跟踪交易:

  • product_id: 所购商品或 SKU 的唯一标识符
  • product_name: 人可读的产品名称
  • product_category:产品类别: 产品类别或类型(例如,"货币"、"武器"、"订阅
  • transaction_id: 来自支付平台的唯一交易标识符
  • 平台: 购买平台(例如,"app_store"、"google_play"、"steam
  • promo_code:促销代码: 用于折扣的促销代码
  • user_tier: 用户订阅或会员等级
  • 数量: 购买物品数量

实施提示

  • 非零金额: 仅在金额大于或小于 0 时发送收入事件
  • 统一命名: 在所有收入事件中使用一致的属性名称,以便于分析
  • 测试购买: 使用小额(如 0.01 美元)进行测试,以避免生产收入数据出现偏差

混合事件跟踪(高级)

通过集成到应用程序中的 Singular SDK 发送所有事件和收入,以获得最佳归因。不过,必要时,Singular 也可以从其他来源收集事件。

在 Singular SDK 之外发送的事件必须符合 Singular 的 服务器到服务器事件文档 ,并提供匹配的设备标识符,以便正确归因。

重要归因注意事项

当服务器到服务器请求中的设备标识符与 Singular SDK 记录的标识符不匹配时,就会出现差异:

  • 早期事件: 如果事件 Singular SDK 记录设备标识符 之前 到达,该事件就会成为未知设备的 "首次会话",从而导致自然量归因。
  • 标识符不匹配: 如果 Singular SDK 记录的设备标识符与服务器到服务器请求中的设备标识符不同,则事件将被 错误归因

混合事件跟踪选项

从内部服务器发送事件

在客户端跟踪不足的情况下,从内部服务器收集收入数据,分析营销活动绩效和投资回报率。

要求

  • 捕获设备标识符: 在应用内注册或登录事件中,捕获并传递设备标识符,然后将此数据与用户 ID 一起存储在服务器上。当用户生成新的应用程序会话时更新标识符,以确保正确的归因
  • 平台特定标识符: 使用与平台匹配的设备标识符发送服务器端事件(例如,iOS 设备使用 IDFA 或 IDFV,Android 设备使用 GAID
  • 实时更新: 使用Singular内部商业智能回传机制将事件实时推送到您的终端。 请参阅 内部商业智能回传常见问题
  • 实施细节: 查看服务器到服务器集成指南中的 "跟踪收入 " 部分

从收入提供商发送事件

集成 RevenueCat 或 adapty 等第三方收入提供商,向 Singular 发送购买和订阅收入。

支持的供应商

注意: 在使用收入提供商时,请确保它们配置为发送与 Singular SDK 捕捉到的内容相匹配的正确设备标识符,以保持归因的准确性。


从 Segment 发送事件

通过在Segment中添加 "云模式 "目标,使Segment能与Singular SDK并行发送事件到Singular。

请按照实施指南 Singular-Segment Integration 获取详细设置说明。

配置说明: Segment 集成需要设置 Cloud-Mode 目标地址,以确保事件正确路由到 Singular,并带有正确的设备标识符和属性上下文。