PHNMeasurementKit 0.5.2

PHNMeasurementKit 0.5.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2017年9月

Owain BrownPete Cheyne 维护。



 
依赖项
Reachability~> 3.2
Bolts~> 1.8.4
 

  • Performance Horizon

测量套件 iOS SDK (BETA)

概述

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 参数,例如

https://api.performancehorizon.com/reporting/report_advertiser/campaign/1011l45/conversion.json?start_date=2016-11-16+00%3A00%3A00&end_date=2016-12-16+00%3A00%3A00&meta_type%5Bclicks%5D=13&meta_type%5Bconversions%5D=13

安装

将 iOS SDK 集成到项目中有很多选项。首选方法是使用 Cocoapods(参见 https://cocoapods.org.cn/)。

静态库 libPHNMeasurementKit-pod.a 及其关联的伞头 PHNMeasurementKit.h 也可以直接导入到 Xcode 项目中。可以通过克隆移动跟踪仓库来获取库:https://github.com/PerformanceHorizonGroup/measurementkit-cocoapod.git

配置

先决条件

您需要在性能天际线的联盟跟踪平台上设置好广告主,并准备好一场活动。如需进一步指导,请联系支持团队。

配置MeasurementKit

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];

初始化MeasurementKit

无论您是跟踪安装、其他事件还是深链接,您都需要使用您的广告主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 < 9)

为了支持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, 10)

从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

为了支持深链接流程,可以使用camref初始化智能横幅(请参阅智能横幅SDK)或通用链接。要将camref附加到特定活动的目标URL,请在使用性能天际线联盟计划界面的界面中

  1. 选中活动后,从导航栏选择“管理” -> “活动”。
  2. 在活动设置表中,将phn_camref=__CAMREF__添加到“附加URL参数”字段中。

跟踪事件

MeasurementService实例

为了方便起见,提供了测量服务的静态实例。

[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];

skuquantity 都是可选的销售参数。

测试

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]; 

Swift

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 和活动 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];