这是 AdjustIo 的 iOS SDK。您可以在 adjust.io 上了解更多关于 AdjustIo 的信息。
以下是集成 AdjustIo SDK 到您 iOS 项目中所需的最小步骤。我们将假设您使用 Xcode 进行 iOS 开发。
如果您正在使用 CocoaPods,您可以添加以下行到您的 Podfile
中,然后继续到步骤 3
pod 'AdjustIO', :git => 'git://github.com/adeven/adjust_ios_sdk.git', :tag => 'v2.2.0'
从我们的 发布页面 下载最新版本。将归档文件解压缩到您选择的文件夹中。
在 Xcode 的项目导航中定位到 支持文件
组(或你选择的任何其他组)。从 Finder 将 AdjustIo
子目录拖动到 Xcode 的 支持文件
组中。
在对话框 选择将这些文件添加到目标中的选项
中,确保勾选 将项复制到目标文件夹
的复选框,并选择上方的单选按钮以 为任何添加的文件夹创建组
。
在项目导航中选择您的项目。在主视图的左侧选择您的目标。在 构建阶段
选项卡下,展开 链接二进制与库
组。在该组底部点击 +
按钮。选择 AdSupport.framework
并点击 添加
按钮。在框架列表中选择新添加的 AdSupport.framework
并将属性 Required
更改为 Optional
。
在项目导航中打开您的 Application Delegate 的源文件。在文件顶部添加 import
语句。在您的 App Delegate 的 didFinishLaunching
或 didFinishLaunchingWithOptions
方法中添加以下调用到 AdjustIo
#import "AdjustIo.h"
// ...
[AdjustIo appDidLaunch:@"{YourAppToken}"];
[AdjustIo setLogLevel:AILogLevelInfo];
[AdjustIo setEnvironment:AIEnvironmentSandbox];
用您的 App Token {YourAppToken}
替换。您可以在您的 控制台 中找到。
通过调用 setLogLevel:
并传入以下参数之一,您可以增加或减少查看的日志数量:
[AdjustIo setLogLevel:AILogLevelVerbose]; // enable all logging
[AdjustIo setLogLevel:AILogLevelDebug]; // enable more logging
[AdjustIo setLogLevel:AILogLevelInfo]; // the default
[AdjustIo setLogLevel:AILogLevelWarn]; // disable info logging
[AdjustIo setLogLevel:AILogLevelError]; // disable warnings as well
[AdjustIo setLogLevel:AILogLevelAssert]; // disable errors as well
根据您是为测试还是为生产构建您的应用程序,您必须通过以下参数之一调用 setEnvironment:
[AdjustIo setEnvironment:AIEnvironmentSandbox];
[AdjustIo setEnvironment:AIEnvironmentProduction];
重要:如果正在测试您的应用程序,则该值应设置为 AIEnvironmentSandbox
。仅在发布应用程序之前设置环境为 AIEnvironmentProduction
。再次开始测试时将其设置回 AIEnvironmentSandbox
。
我们使用该环境来区分真实流量和测试设备产生的模拟流量。始终确保该值具有意义非常重要!特别是如果您正在跟踪收入。
构建并运行您的应用程序。如果构建成功,则您已成功将 AdjustIo 集成到您的应用程序中。应用程序启动后,您应看到调试日志 跟踪会话开始
。
如果由于存在多个重复的符号而导致构建失败,您可能在集成 AdjustIo 之前就已经使用了 AFNetwork。只需从您的项目导航器中删除 AdjustIo/AFNetworking
组即可解决这个问题。
如果您的构建因出现错误 AdjustIo requires ARC
而失败,则您的项目似乎没有使用 ARC。在这种情况下,我们建议您将项目移至使用 ARC。如果您不想使用 ARC,则必须在目标的构建阶段中启用 AdjustIo 所有源文件的 ARC
展开 编译源
组,选择所有 AdjustIo 文件(AdjustIo、AI...、...+AIAdditions、AF...、...+AFNetworking),并将 编译器标志
更改为 -fobjc-arc
(选择所有并按 Return
键以同时更改所有内容)。
一旦将 AdjustIo SDK 集成到您的项目中,您就可以利用以下功能。
您可以将每个想要跟踪的事件都告诉 AdjustIo。假设您想跟踪按钮上的每个点击。您需要在您的仪表板中创建一个新的事件令牌。假设事件令牌是 abc123
。然后您可以在按钮的 buttonDown
方法中添加以下行来跟踪点击。
[AdjustIo trackEvent:@"abc123"];
您还可以在您的 仪表板 中为该事件注册一个回调 URL,并且每当事件被跟踪时,我们将向该 URL 发送 GET 请求。在这种情况下,您还可以将一些键值对放入字典中,并将其传递给 trackEvent
方法。然后我们将添加这些命名参数到您的回调 URL 中。
例如,假设您已注册 http://www.adeven.com/callback
这个 URL 作为具有事件令牌 abc123
的事件的回调 URL,并执行以下行
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:@"value" forKey:@"key"];
[parameters setObject:@"bar" forKey:@"foo"];
[AdjustIo trackEvent:@"abc123" withParameters:parameters];
在这种情况下,我们将跟踪事件并发送请求到
http://www.adeven.com/callback?key=value&foo=bar
应该指出的是,我们支持多种占位符,如 {idfa}
,可以用作参数值。在结果回调中,该占位符将替换为当前设备的广告商 ID。请注意,我们不会存储您的任何自定义参数,只会将它们添加到回调中。如果您未为事件注册回调,则这些参数甚至不会被读取。
如果用户可以通过点击广告或进行应用内购买来生成收入,则可以跟踪这些收入。例如,如果点击值为一美分,则可以调用以下代码来跟踪该收入
[AdjustIo trackRevenue:1.0];
参数应为分,并将四舍五入到一位小数。如果想区分不同类型的收入,可以为每种类型获取不同的事件令牌。再次强调,你需要在你的仪表板中创建这些事件令牌。在这种情况下,你会进行如下调用
[AdjustIo trackRevenue:1.0 forEvent:@"abc123"];
同样,你也可以注册回调并提供一个命名参数的字典,就像常规事件一样工作。
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:@"value" forKey:@"key"];
[parameters setObject:@"bar" forKey:@"foo"];
[AdjustIo trackRevenue:1.0 forEvent:@"abc123" withParameters:parameters];
如果你想跟踪内购,请在paymentQueue:updatedTransaction
中,只有在状态变为SKPaymentTransactionStatePurchased
后,才调用trackRevenue
。
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
[self finishTransaction:transaction];
[AdjustIo trackRevenue:...];
break;
// more cases
}
}
}
如果你的应用大量使用事件跟踪,你可能需要延迟一些HTTP请求,以便每分钟批量发送一次。你可以在你的Application Delegate的didFinishLaunching
方法中,在调用完成后添加以下行来启用事件缓冲
[AdjustIo setEventBufferingEnabled:YES];
adjust-sdk是在MIT许可证下授权的。
版权所有 (c) 2012-2013 adeven GmbH,http://www.adeven.com
在此,免费允许任何获得此软件及其相关文档(“软件”)副本的人不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在此软件的所有副本或主要内容中。
本软件按“现状”提供,不提供任何明示或暗示的担保,包括但不限于对适销性、针对特定用途的适用性和非侵权性的保证。在任何事件中,作者或版权所有者都不应对任何索赔、损害或其他责任负责,无论是在合同行为、侵权或任何其他行为的起诉中,不管与软件或其使用或其他方式有关。