AnchorSDK 1.0.4.3

AnchorSDK 1.0.4.3

chlsix 维护。



AnchorSDK 1.0.4.3

  • 作者
  • chenlei

AnchorSDK iOS集成文档

说明

SDK 是一个聚合打点 SDK,支持 Firebase,Facebook,AppsFlyer,Umeng 的打点事件。SDK 采用反射实现多平台 SDK 打点,本身并未集成这四家的 SDK,需要使用哪个平台采集事件的时候集成平台的 SDK 即可。

版本信息

已发布版本

版本号
1.0.0
1.0.1
1.0.2.1
1.0.3
1.0.4
1.0.4.1
1.0.4.2
1.0.4.3
1.0.5

版本更新记录

版本 发布时间 更新内容
1.0.0 2019-08-02 第一次提交,完成打点聚合,添加开关配置和远程配置
1.0.1 2019-08-05 添加 DEBUG 模式开关,控制 DEBUG 模式下事件是否上报
1.0.2.1 2019-08-08 Bug 修复;添加 bitcode 支持 1.0.32019-08-13 解决 AF 不能上报的问题
1.0.4 2019-10-22 添加广告事件打点方法 1.0.4.12019-10-29 添加新的广告平台判断
1.0.4.1 2019-11-05 添加新的广告平台 five;添加广告场景名称字段
1.0.4.3 2019-11-19 添加新的广告平台快手
1.0.5 2020-10-30 支持 AppFlyer V6

Cocoapods集成

集成AnchorSDK

#AnchorSDK
pod 'AnchorSDK'

集成各平台SDK

根据需求选择集成哪些平台的SDK

集成Firebase

# Firebase
pod 'Firebase/Analytics'

集成Facebook

# Facebook
pod 'FBSDKCoreKit'

集成AppsFlyer

#AppsFlyer
pod 'AppsFlyerFramework'

集成Umeng

#Umeng
pod 'UMCCommon'
pod 'UMCAnalytics'

初始化

在AppDelegate中导入头文件#import <AnchorSDK/AnchorSDK.h>

#import "AppDelegate.h"
#import <AnchorSDK/AnchorSDK.h>

在AppDelegate的-application:didFinishLaunchingWithOptions:方法中添加AnchorSDK的初始化方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    AnchorConfig *config = [[AnchorConfig alloc] init];
    config.appIdForAppsFlyer = <#appIdForAppsFlyer#>;//设置AppId 使用AppsFlyer时必填
    config.appKeyForAppsFlyer = <#appKeyForAppsFlyer#>;//设置AppKey 使用AppsFlyer时必填
    config.appKeyForUmeng = <#appKeyForUmeng#>;//设置AppKey 使用Umeng时必填
    [AnchorSDK initWithConfig:config application:application andLaunchOptions:launchOptions];
    return YES;
}

配置开关(可选)

1.代码配置

//是否允许上报 默认为YES
@property (nonatomic, assign) BOOL enableStatistics;
//打开Firebase统计 默认为YES, 需要上报时导入Firebase SDK
@property (nonatomic, assign) BOOL enableFirebase;
//打开Facebook统计 默认为YES, 需要上报时导入Facebook SDK
@property (nonatomic, assign) BOOL enableFacebook;
//打开AppsFlyer统计 默认为YES, 需要上报时导入AppsFlyer SDK
@property (nonatomic, assign) BOOL enableAppsFlyer;
//打开Umeng统计 默认为YES, 需要上报时导入Umeng SDK
@property (nonatomic, assign) BOOL enableUmeng;
//开启打印日志 默认为NO
@property (nonatomic, assign) BOOL logEnable;
//开启DEBUG状态下不上报 默认为NO
@property (nonatomic, assign) BOOL debugEnable;

初始化时修改AnchorConfig的相关属性来控制

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    AnchorConfig *config = [[AnchorConfig alloc] init];
    config.appIdForAppsFlyer = <#appIdForAppsFlyer#>;//设置AppId 使用AppsFlyer时必填
    config.appKeyForAppsFlyer = <#appKeyForAppsFlyer#>;//设置AppKey 使用AppsFlyer时必填
    config.appKeyForUmeng = <#appKeyForUmeng#>;//设置AppKey 使用Umeng时必填
    config.enableStatistics = YES;//开启打点上报
    config.enableFirebase = YES;//开启Firebase平台事件上报
    config.enableFacebook = YES;//开启Facebook平台事件上报
    config.enableAppsFlyer = YES;//开启AppsFlyer平台事件上报
    config.enableUmeng = YES;//开启Umeng平台事件上报
    config.logEnable = YES;//开启打印日志
    config.debugEnable = YES;//开启DEBUG模式不上报事件

    [AnchorSDK initWithConfig:config application:application andLaunchOptions:launchOptions];
    return YES;
}

2.远程配置(需支持Firebase Remote Config)

集成Firebase Remote Config

pod 'Firebase/RemoteConfig'

打点平台开关

Firebase Remote Config后台配置:

字段名 说明
r_firebase true/false 设置为true时,打开该平台的打点事件上报开关;设置为false时,关闭该平台的打点事件上报开关
r_facebook true/false 设置为true时,打开该平台的打点事件上报开关;设置为false时,关闭该平台的打点事件上报开关
r_appsflyer true/false 设置为true时,打开该平台的打点事件上报开关;设置为false时,关闭该平台的打点事件上报开关
r_umeng true/false 设置为true时,打开该平台的打点事件上报开关;设置为false时,关闭该平台的打点事件上报开关
r_anchor true/false 设置为true时,允许上报打点(具体平台由其他参数控制);设置为false时,禁止上报打点(关闭所有打点平台)

打点事件开关

firebase远程配置后台配置:

字段名 说明
r_事件名 true/false 设置为true时,(重新)上报该打点事件;设置为false时,停止上报该打点事件

此处的事件名为:w_token_acquire

打点事件

通用事件

1.用户体系事件 (有注册、登录行为的需要调用,for app developer)

/**
 注册成功时调用
 @params type  注册类型,一般为第三方平台,邮箱,手机等
 */
+ (void)reportSignUpSuccess:(NSString *)type;

/**
 注册失败时调用
 @params type  注册类型,一般为第三方平台,邮箱,手机等
 @params description  失败原因
 */
+ (void)reportSignUpFailed:(NSString *)type
               description:(NSString *)description;

/**
 登录成功时调用
 @params type  登录类型,一般为第三方平台,邮箱,手机等
 */
+ (void)reportLogInSuccess:(NSString *)type;

/**
 登录失败时调用
 @params type  登录类型,一般为第三方平台,邮箱,手机等
 @params description  失败原因
 */
+ (void)reportLogInFailed:(NSString *)type
              description:(NSString *)description;

/**
 登出成功时调用
 @params type  登录类型,一般为第三方平台,邮箱,手机等
 */
+ (void)reportLogOutSuccess:(NSString *)type;

/**
 登出失败时调用
 @params type  登录类型,一般为第三方平台,邮箱,手机等
 @params description  失败原因
 */
+ (void)reportLogOutFailed:(NSString *)type
               description:(NSString *)description;

2.变现事件(有内购事件的需调用,for app developer)

/**
 请求内购时调用
 @param productId 内购项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportPurchaseRequest:(NSString *)productId
                        value:(float)value
                       target:(nullable NSString *)target;

/**
 内购成功时调用
 @param productId 内购项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportPurchaseSuccess:(NSString *)productId
                        value:(float)value
                       target:(nullable NSString *)target;

/**
 内购取消时调用
 @param productId 内购项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportPurchaseCancel:(NSString *)productId
                       value:(float)value
                      target:(nullable NSString *)target;

/**
 内购失败时调用
 @param productId 内购项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 @param description 订单id 没有传nil
 */
+ (void)reportPurchaseFailed:(NSString *)productId
                       value:(float)value
                      target:(nullable NSString *)target
                 description:(NSString *)description;


/**
 请求订阅时调用
 @param productId 订阅项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportSubRequest:(NSString *)productId
                   value:(float)value
                  target:(nullable NSString *)target;

/**
 订阅成功时调用
 @param productId 订阅项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportSubSuccess:(NSString *)productId
                   value:(float)value
                  target:(nullable NSString *)target;

/**
 订阅取消时调用
 @param productId 订阅项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 */
+ (void)reportSubCancel:(NSString *)productId
                  value:(float)value
                 target:(nullable NSString *)target;

/**
 订阅失败时调用
 @param productId 订阅项id
 @param value 价格,转化成USD,只上报数字
 @param target 订单id 没有传nil
 @param description 订单id 没有传nil
 */
+ (void)reportSubFailed:(NSString *)productId
                  value:(float)value
                 target:(nullable NSString *)target
            description:(NSString *)description;

自定义事件

/**
 自定义打点事件
 @params eventName 事件名称
 */
+ (void)reportCustomEvent:(NSString *)eventName;
/**
 自定义打点事件 带事件参数
 @params eventName   事件名称
 @params eventParams 事件参数
 */
+ (void)reportCustomEvent:(NSString *)eventName
                andParams:(NSDictionary *)eventParams;