测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2017年9月 |
由 Owain Brown 和 Pete Cheyne 维护。
依赖项 | |
Reachability | ~> 3.2 |
Bolts | ~> 1.8.4 |
Performance Horizon 的移动测量套件 SDK 允许广告商跟踪安装和可提成事件,并将原始分成归因于原生应用程序内的原始联盟。通过在您的应用中使用 SDK,并结合测量套件的其它组件,可以跟踪应用内的一系列事件。
测量套件包括跟踪 API、智能横幅 SDK 以及 iOS 和 Android 的原生 SDK。在 Performance Horizon 的 API 基础上,测量套件增加了与原生应用交互的额外功能。事件和安装必须归因于智能横幅 SDK 或移动跟踪 API 生成的点击。常规点击(来自域名 prf.hn 的点击)在所有场景中均未跟踪。
SDK 安装和事件跟踪需要集成移动跟踪 API 或智能横幅 SDK。
本文件描述了在 iOS 平台上安装和基本使用移动测量套件 SDK。
事件和安装作为 Performance Horizon 企业平台中的转换进行跟踪。目前,MMK 生成的转换在标准界面中被隐藏。如果您想查看事件和安装,请在转换报告中添加转换_meta_type=13 参数,例如
将 iOS SDK 集成到项目中有很多选项。首选方法是使用 Cocoapods(参见 https://cocoapods.org.cn/)。
静态库 libPHNMeasurementKit-pod.a 及其关联的伞头 PHNMeasurementKit.h 也可以直接导入到 Xcode 项目中。可以通过克隆移动跟踪仓库来获取库:https://github.com/PerformanceHorizonGroup/measurementkit-cocoapod.git
您需要在性能天际线的联盟跟踪平台上设置好广告主,并准备好一场活动。如需进一步指导,请联系支持团队。
MeasurementKit提供了一个默认配置的单例实例。如果您希望使用自定义配置,实例必须使用PHNMeasurementServiceConfiguration
初始化。
PHNMeasurementServiceConfiguration* configuration = [PHNMeasurementServiceConfiguration defaultConfiguration];
//Active fingerprinting uses webviews/safariviews for improved measurement accuracy.
config.activeFingerprint = YES;
PHNMeasurementService* measurement = [[PHNMeasurementService alloc] initWithConfiguration:configuration];
//set the shared instance for future use.
[PHNMeasurementService setSharedInstance:measurement];
无论您是跟踪安装、其他事件还是深链接,您都需要使用您的广告主ID和想要跟踪的活动ID来初始化SDK。
将<PHNMeasurementKit/PHNMeasurementService.h>
导入您的AppDelegate.m
文件,并添加以下内容
#import <PHNMeasurementKit/PHNMeasurementService.h>
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSString* phg_advertiser_id = @"advertiser_id";
NSString* phg_campaign_id = @"campaign_to_be_tracked";
[[PHNMeasurementService sharedInstance] startSessionWithAdvertiserID:phg_advertiser_id andCampaignID:phg_campaign_id];
}
当您在性能天际线平台上注册时,您将获得唯一的PHG广告主ID和活动ID。
为了支持iOS 8和更早版本,
测量套件API将一个标识符附加到深链接中。该标识符用于初始化SDK。请将以下内容添加到应用程序委托中的application:openURL:options:
方法中。
- (BOOL) application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
// if you're processing the URI for routing in this method
// and you'd prefer the mobile tracking API additions removed,
// the output of this method is the original URI.
NSURL* originalurl = [[PHNMeasurementService sharedInstance] processDeepLinkWithURL:url];
/*
* Handle the deep link
*/
return YES;
}
从iOS 9开始,通用链接用于初始化测量套件。通常,通用链接是通过测量套件API配置的。请将以下内容添加到应用程序委托中的application:continueUserActivity:restorationHandler:
方法中。
- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
NSURL* originalurl = [[PHNMeasurementService sharedInstance] processDeepLinkWithURL:userActivity.webpageURL];
return YES;
}
此外,您还需要配置您的应用程序以支持通用链接。请参阅:https://drive.google.com/file/d/0B3-jrdC-fCS4T3BueVE2T3ZUV00/view?usp=sharing
为了支持深链接流程,可以使用camref初始化智能横幅(请参阅智能横幅SDK)或通用链接。要将camref附加到特定活动的目标URL,请在使用性能天际线联盟计划界面的界面中
phn_camref=__CAMREF__
添加到“附加URL参数”字段中。为了方便起见,提供了测量服务的静态实例。
[PHNMeasurementService sharedInstance];
您可以使用事件来跟踪应用程序中的各种操作。事件在联盟界面上表示为转化。
最基本的事件形式没有与之关联的值。(可能是在不打算奖励联盟的情况下进行的应用内操作)
使用category
参数来设置product
转化。
PHNEvent* event = [[PHNMeasurementService sharedInstance] trackEvent:[PHNEvent eventWithCategory:@"registration-initiated"]];
如果事件有您想要跟踪的值,可以按以下方式将销售与事件关联。
currency
参数是ISO 4217货币代码。(例如,USD、GBP)
//an example event with a single sale attached.
PHNSale* sale = [PHNSale saleWithCategory:@"registration-complete" andValue:[NSDecimalNumber decimalNumberWithString:@"1.10"];
PHNEvent *registration = [PHNEvent eventWithSale:sale ofCurrency:@"USD"];
[[PHNMeasurementService sharedInstance] trackEvent:registration];
//now one with several.....
PHNSale* upgrade= [PHNSale saleWithCategory:@"premium-upgrade" andValue:[NSDecimalNumber decimalNumberWithString:@"10.99"];
PHNSale* purchase = [PHNSale saleWithCategory:@"song-purchase" value:[NSDecimalNumber decimalNumberWithString:@"0.99"] sku:@"biffyclyro-12" andQuantity:1];
PHNEvent *purchases = [PHNEvent eventWithSales:@[upgrade, purchase] ofCurrency:@"USD"];
[[PHNMeasurementService sharedInstance] trackEvent:purchases];
sku
和 quantity
都是可选的销售参数。
MeasurementKit 在首次启动时会检查联盟活动。如果没有先前的活动,它将在未来的启动中禁用。如果您正在测试一个集成,您可能希望将其重置,以便它将在每次启动时检查联盟活动。您可以通过 MeasurementService 上的 clearMeasurementServiceIDs 方法完成此操作。
NSString* phg_advertiser_id = @"advertiser_id";
NSString* phg_campaign_id = @"campaign_to_be_tracked";
[[PHNMeasurementService sharedInstance] clearMeasurementServiceIDs];
[[PHNMeasurementService sharedInstance] startSessionWithAdvertiserID:phg_advertiser_id andCampaignID:phg_campaign_id];
Measurement Kit 与 Swift 兼容,请确保在您的 podfile 中添加 use_frameworks!
。
use_frameworks!
target 'Exactview' do
pod 'PHNMeasurementKit', '~> 0.4.6'
end
之后所有 MeasurementKit 方法都将在 Swift 中可用,例如
PHNMeasurementService.sharedInstance().trackEvent(PHNEvent(category: "Signup"));
广告商 ID 和活动 ID 都可以在性能天平网页界面的“设置”部分找到。请参阅管理员 -> 广告商 -> 广告商 ID。
Measurement Kit 有一个用于_extended_debug_logging 的配置选项,这有助于诊断集成问题。要启用,请使用 PHNMeasurementServiceConfiguration 上的 debugLoggingActive 属性。
PHNMeasurementServiceConfiguration* configuration = [PHNMeasurementServiceConfiguration defaultConfiguration];
//enable debug logging.
configuration.debugLoggingActive = YES;
PHNMeasurementService* measurement = [[PHNMeasurementService alloc] initWithConfiguration:configuration];
//set the shared instance for future use.
[PHNMeasurementService setSharedInstance:measurement];