AdmitadSDK 1.2.0

AdmitadSDK 1.2.0

测试已测试
Lang语言 SwiftSwift
许可证 NOASSERTION
发布上次发布2019年5月
SPM支持 SPM

Admitad 维护。



  • Admitad

Admitad SDK for iOS

iOS 集成 SDK,属于 https://www.admitad.com/

Admitad 帮助中心: https://help.admitad.com/en/advertiser/topic/195-mobile-sdk/

⚠️注意⚠️ 如果您需要 Swift 4,请使用版本号小于等于 1.1.4 的 pod。

目录

设置您的项目

确保您的项目部署目标为 iOS 9.0 或更高版本。

您的项目应配置为能够与URL方案和通用链接进行交互。注意:还应该在真实设备上进行测试,因为深度链接在模拟器上不工作,因此AdmitadSDK的许多功能将不可用。

重要 AdmitadSDK使用版本4.x的Alamofire作为依赖项。因此,如果您的项目中使用了Alamofire,它的主版本号应该是4。您可以根据需要指定任何次版本号。以下链接包含关于Alamofire安装过程的完整手册:Alamofire GitHub页面

要将AdmitadSDK添加到您的项目中,您有两个选择

  1. 手动安装
  2. 通过 CocoaPods 安装

手动安装

要将AdmitadSDK本身添加到您的项目中,请按照以下步骤操作

  1. 克隆此存储库或下载zip文件。
  2. AdmitadSDK.xcodeproj拖放到您应用程序Xcode项目的“项目导航器”中。 拖放
  3. 在您的项目中,展开“AdmitadSDK.xcodeproj > 产品”层次结构。然后将Admitad.framework产品拖到构建产品中的“嵌入式二进制文件”部分。 嵌入框架

通过CocoaPods安装

如果您已安装CocoaPods(安装过程见这里),请执行以下操作

  1. 在终端中,将cd到您的项目所在目录。
  2. 运行pod init创建一个Podfile
  3. 修改Podfile使其看起来像这样
    platform :ios, '9.0'
    use_frameworks!
    
    target '<Your Target>' do
        pod 'AdmitadSDK'
    end
  4. 运行pod install创建一个.xcworkspace
  5. 关闭项目(如果已打开),然后打开.xcworkspace
  6. 如果您在通过CocoaPods安装AdmitadSDK时遇到问题,请在终端中尝试运行pod update

Objective-C互操作性

只需将@import AdmitadSDK;导入语句添加到使用AdmitadSDK的源文件中。

设置AppDelegate

  1. 获取Singleton AdmitadTracker实例。
    所有SDK方法都需要主AdmitadTracker对象的实例。以下是获取方法。它以静态方式存储,可以从任何类中访问。

    Swift

    let admitadTracker = AdmitadTracker.sharedInstance

    Objective-C

    AdmitadTracker *admitadTracker;
  2. application(_:didFinishLaunchingWithOptions:)方法中,将AdmitadTracker单例的postbackKey属性分配给您的Admitad Postback Key。

  3. 在相同的方法中调用AdmitadTrackertrackAppLaunch()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;
    }
    
  4. 要跟踪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;
    }
  5. 要跟踪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;
    }
  6. 获取当前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];

订单

要跟踪已确认购买已付款订单,必须实例化并传递参数到trackConfirmedPurchaseEventtrackPaidOrderEvent

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

特此授予任何从本软件和关联文档文件(以下简称“软件”)获得副本的任何人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、转让和/或出售软件副本,并准许向提供软件的人员这样做,但受以下条件的约束

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何主张、损害或其他责任承担任何责任,无论是在合同、侵权或其他情况下产生,与该软件或软件的使用或其他方式的联系,或者与该软件的产生、提供或使用有关。