Admitad SDK for iOS
iOS 集成 SDK,属于 https://www.admitad.com/
Admitad 帮助中心: https://help.admitad.com/en/advertiser/topic/195-mobile-sdk/
1.1.4
的 pod。
目录
设置您的项目
确保您的项目部署目标为 iOS 9.0 或更高版本。
您的项目应配置为能够与URL方案和通用链接进行交互。注意:还应该在真实设备上进行测试,因为深度链接在模拟器上不工作,因此AdmitadSDK的许多功能将不可用。
重要 AdmitadSDK使用版本4.x的Alamofire作为依赖项。因此,如果您的项目中使用了Alamofire,它的主版本号应该是4。您可以根据需要指定任何次版本号。以下链接包含关于Alamofire安装过程的完整手册:Alamofire GitHub页面
要将AdmitadSDK添加到您的项目中,您有两个选择
- 手动安装
- 通过 CocoaPods 安装
手动安装
要将AdmitadSDK本身添加到您的项目中,请按照以下步骤操作
- 克隆此存储库或下载zip文件。
- 将AdmitadSDK.xcodeproj拖放到您应用程序Xcode项目的“项目导航器”中。
- 在您的项目中,展开“AdmitadSDK.xcodeproj > 产品”层次结构。然后将Admitad.framework产品拖到构建产品中的“嵌入式二进制文件”部分。
通过CocoaPods安装
如果您已安装CocoaPods(安装过程见这里),请执行以下操作
- 在终端中,将
cd
到您的项目所在目录。 - 运行
pod init
创建一个Podfile。 - 修改Podfile使其看起来像这样
platform :ios, '9.0' use_frameworks! target '<Your Target>' do pod 'AdmitadSDK' end
- 运行
pod install
创建一个.xcworkspace。 - 关闭项目(如果已打开),然后打开.xcworkspace。
- 如果您在通过CocoaPods安装AdmitadSDK时遇到问题,请在终端中尝试运行
pod update
。
Objective-C互操作性
只需将@import AdmitadSDK;
导入语句添加到使用AdmitadSDK的源文件中。
设置AppDelegate
-
获取Singleton AdmitadTracker实例。
所有SDK方法都需要主AdmitadTracker对象的实例。以下是获取方法。它以静态方式存储,可以从任何类中访问。Swift
let admitadTracker = AdmitadTracker.sharedInstance
Objective-C
AdmitadTracker *admitadTracker;
-
在
application(_:didFinishLaunchingWithOptions:)
方法中,将AdmitadTracker单例的postbackKey
属性分配给您的Admitad Postback Key。 -
在相同的方法中调用AdmitadTracker的
trackAppLaunch()
、trackReturnedEvent()
和trackLoyaltyEvent()
。Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { admitadTracker.postbackKey = "postbackKey" admitadTracker.trackAppLaunch() admitadTracker.trackReturnedEvent() admitadTracker.trackLoyaltyEvent() return true }
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { admitadTracker = [AdmitadTracker sharedInstance]; admitadTracker.postbackKey = @"postbackKey"; [admitadTracker trackAppLaunchWithChannel:nil]; [admitadTracker trackReturnedEventWithUserId:nil channel:nil completion:nil]; [admitadTracker trackLoyaltyEventWithUserId:nil channel:nil completion:nil]; return YES; }
-
要跟踪Universal Links的使用,在
application(_:continue:restorationHandler:)
调用相应的continueUserActivity
方法,并将userActivity
作为参数传递给它。Swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { admitadTracker.continueUserActivity(userActivity) return true }
Objective-C
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler { [admitadTracker continueUserActivity:userActivity]; return YES; }
-
要跟踪URL Schemes的使用,在
application(_:open:options:)
调用openUrl
方法,并将url
作为参数传递给它。Swift
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { admitadTracker.openUrl(url) return true }
Objective-C
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { [tracker openUrl:url]; return YES; }
-
获取当前uid
let uid = admitadTracker.getUid();
NSString* uid = [tracker getUid];
事件跟踪
如果您已正确设置您的AppDelegate,已安装事件将自动触发,
trackRegisterEvent()
、trackReturnedEvent()
和trackLoyaltyEvent()
方法可以接受用户ID作为参数。您还可以设置AdmitadTracker单例的userId
属性。如果您不希望以任何这些方式提供用户ID,用户ID将自动生成。
用户ID
Swift
// somewhere in your code
admitadTracker.userId = userId
Objective-C
// somewhere in your code
admitadTracker.userId = userId
注册
注册事件在以下情况触发时
Swift
admitadTracker.trackRegisterEvent()
或
admitadTracker.trackRegisterEvent(userId: userId)
Objective-C
[admitadTracker trackRegisterEventWithUserId:nil channel:nil completion:nil];
或
[admitadTracker trackRegisterEventWithUserId: userId channel:nil completion:nil];
返回
返回事件在以下情况触发时
Swift
admitadTracker.trackReturnedEvent()
或
admitadTracker.trackReturnedEvent(userId: userId)
Objective-C
[admitadTracker trackReturnedEventWithUserId:nil channel:nil completion:nil];
或
[admitadTracker trackReturnedEventWithUserId: userId channel:nil completion:nil];
忠诚度
当发生以下情况时触发忠诚度事件:
Swift
admitadTracker.trackLoyaltyEvent()
或
admitadTracker.trackLoyaltyEvent(userId: userId)
Objective-C
[admitadTracker trackLoyaltyEventWithUserId:nil channel:nil completion:nil];
或
[admitadTracker trackLoyaltyEventWithUserId: userId channel:nil completion:nil];
订单
要跟踪已确认购买和已付款订单,必须实例化并传递参数到trackConfirmedPurchaseEvent
或trackPaidOrderEvent
。
Swift
let items = [AdmitadOrderItem(name: "Phone"), AdmitadOrderItem(name: "Phone Charger", quantity: 3)]
let order = AdmitadOrder(id: id, totalPrice: price, currencyCode: currencyCode, items: items, userInfo: userInfo)
Objective-C
AdmitadOrderItem *item1 = [[AdmitadOrderItem alloc] initWithName:@"Phone"
quantity:1];
AdmitadOrderItem *item2 = [[AdmitadOrderItem alloc] initWithName:@"Phone Charger"
quantity:3];
NSArray<AdmitadOrderItem *> *items = @[item1, item2];
AdmitadOrder *order = [[AdmitadOrder alloc] initWithId:id totalPrice:price currencyCode:currencyCode items:items userInfo:userInfo];
附加参数
- 可以使用任何组合的附加参数来自定义您的订单。
tarifCode
您可以使用额外参数tarifCode来初始化AdmitadOrder。然后,Admitad可以根据您的协议将此运费应用于订单。要获取运费代码,请联系您的Admitad账户经理。
Swift
let orderWithTarif = AdmitadOrder(id: id, totalPrice: price, currencyCode: currencyCode, items: items, userInfo: userInfo, tarifCode: "itemCategory1")
Objective-C
AdmitadOrder *orderWithTarif = [[AdmitadOrder alloc] initWithId:id totalPrice:price currencyCode:currencyCode items:items userInfo:userInfo tarifCode:tarifCode];
promocode
您可以使用额外参数promocode来初始化AdmitadOrder。然后,Admitad将在您的活动统计报告中显示此订单的促销代码。
Swift
let orderWithPromocode = AdmitadOrder(id: id, totalPrice: price, currencyCode: currencyCode, items: items, userInfo: userInfo, promocode: "SUPER_PROMO")
Objective-C
AdmitadOrder *orderWithPromocode = [[AdmitadOrder alloc] initWithId:id totalPrice:price currencyCode:currencyCode items:items userInfo:userInfo promocode:promocode];
已确认购买
Swift
admitadTracker.trackConfirmedPurchaseEvent(order: order)
Objective-C
[admitadTracker trackConfirmedPurchaseEventWithOrder:order channel:nil completion:nil];
付费订单
Swift
admitadTracker.trackPaidOrderEvent(order: order)
Objective-C
[admitadTracker trackPaidOrderEventWithOrder:order channel:nil completion:nil];
事件去重
- 您可以将额外的参数 channel 传递到跟踪事件的函数中。它的值将在 Admitad 端用于去重。将 channel 值设置为
AdmitadTracker.ADMITAD_MOBILE_CHANNEL
如果您打算将事件归因于 Admitad- 其他联盟网路的名称,如果您打算将事件归因于其他网路
AdmitadTracker.UNKNOWN_CHANNEL
如果您不知道事件应该归因于谁
例如,为已确认购买的 In-App 事件设置归因通道:Swift
admitadTracker.trackConfirmedPurchaseEvent(order: order, channel: AdmitadTracker.ADMITAD_MOBILE_CHANNEL)
Objective-C
[admitadTracker trackConfirmedPurchaseEventWithOrder:order channel:@"some_network" completion:nil];
委托与回调
当在 Swift 环境中与 AdmitadSDK 一起工作时,您将获得两种在事件跟踪成功或失败时通知的机制。每个引发事件的函数都带有一个完成回调。您可以在回调中检查是否发生了错误。AdmitadTracker 实例还会通知其符合 AdmitadDelegate 协议的 delegate 对象。这两种通知方式相互独立,可以同时和互换使用。在 Objective-C 环境中,只有前一种机制可用。
Swift
class YourClass: AdmitadDelegate {
func someFunc() {
AdmitadTracker.sharedInstance.delegate = self
}
func startedTrackingAdmitadEvent(_ event: AdmitadEvent) {
// code on start tracking
}
func finishedTrackingAdmitadEvent(_ event: AdmitadEvent?, error: AdmitadError?) {
// code on finished tracking
// you can check if error is nil here
}
}
或
trackRegisterEvent() { error in
// code on finished tracking
// you can check if error is nil here
}
Objective-C
[admitadTracker trackRegisterEventWithUserId:nil channel:nil completion:^(AdmitadError *error) {
// code on finished tracking
// you can check if error is nil here
}];
许可协议
admitad SDK 在 MIT 许可协议下授权。
版权所有 © 2017 Admitad GmbH
特此授予任何从本软件和关联文档文件(以下简称“软件”)获得副本的任何人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、转让和/或出售软件副本,并准许向提供软件的人员这样做,但受以下条件的约束
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何主张、损害或其他责任承担任何责任,无论是在合同、侵权或其他情况下产生,与该软件或软件的使用或其他方式的联系,或者与该软件的产生、提供或使用有关。