接入文档
请在 DataNexus -<数据接入>-<数据源>中新建数据源,参考[新建数据源]。
1. 下载和导入广点通转化 SDK
登录 DataNexus 获取 SDK,下载iOS SDK的压缩包,压缩包中的LibGDTActionSDK-2.0.8.a
等文件为您的App需要嵌入的SDK,压缩包中的GDTActionSDKSample
是我们提供的SDK接入示例工程。注意,本文档提到的LibGDTActionSDK.a
指的是您实际下载的SDK版本。
2. 导入SDK
解压下载下来的 SDK,可以看到LibGDTActionSDK.zip
,Sample示例程序,接入文档。这里以Sample示例程序导入 SDK 为例:
- 将
LibGDTActionSDK.zip
解压,获得静态库a文件及GDTAction.h
,GDTAction_convenience.h
两个头文件,添加到示例程序项目lib文件夹内。 - 设置示例项目Sample程序的Build Setting中
Other Linker Flags
为-ObjC
- 在具体代码引入的地方将对应接口import进来。目前SDK最低支持系统版本号为iOS 8.0
#import 'GDTAction.h'
#import 'GDTAction_convenience.h'
3. SDK初始化
找到您的App的入口(AppDelegate.m)并导入头文件,并在didFinishLaunchingWithOptions方法中调用[GDTAction init] 方法,这样就完成了初始化SDK的工作。SDK初始化完成之后,可以在在applicationDidBecomeActive方法中调用logAction:StartApp上报应用启动行为。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*
* 在接入广点通行为数据SDK时,请在App启动的时候调用初始化方法
* 初始化方法调用时请传入数据源UserActionSetId和在后台看到的secretKey密钥串
*/
[GDTAction init:@"yourActionSetId" secretKey:@"yourSecretKey"];
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/*
* 在应用启动的时候请上报GDTSDKActionNameStartApp行为
* SDK内部会判断此次启动行为是否为激活行为并上报,开发者无需另外作判断逻辑
*/
[GDTAction logAction:GDTSDKActionNameStartApp actionParam:@{@"value":@(123)}];
}
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
/*
* 在应用被呼起的时候请上报GDTSDKActionNameStartApp行为,并带上呼起的openURL链接
*
*/
[GDTAction logAction:GDTSDKActionNameStartApp actionParam:@{GDTSDKActionParamKeyOpenUrl:url.absoluteString}];
return true;
}
4. 上报行为数据
在 App 内发生转化行为时,可以调用通用上报接口或专用上报接口上报行为数据。
// 用户发生购物行为时,可以用[GDTAction logAction]上报用户的这次行为,并将价格(整型值,单位分)等行为参数一起带上
[GDTAction logAction:GDTSDKActionNameCompleteOrder actionParam:@{@"product_id":@(12345),@"value":@(12800)}];
关于行为类型名字(actionName)和行为参数(actionParam)的类型,在通用上报API这一章节有详细说明。
在1.1.0版本中,增加了一系列专用上报接口,每个接口预定义了若干个行为参数,这些接口中的行为类型与上面的行为名有些是共用的,建议优先考虑使用专用接口,若专用接口无法满足上报需求,则考虑使用通用接口上报。
5. 通用上报API
- GDTAction
方法名 | 功能 |
---|---|
+(void)init:(NSString )actionSetId secretKey:(NSString )secKey | 初始化方法,必须在App的入口调用一次 @param actionSetId : 您在DMP数据接入获得的行为数据源ID @param secretKey : 您在DMP数据接入获得的行为数据源SecretKey |
+(void)logAction:(NSString )actionName actionParam:(NSDictionary )actionParam | 行为上报接口,支持上报行为参数 @param actionName : 行为类型名,系统支持的actionName见下 @param actionParam : 行为参数,行为参数是"Key-Value"类型,Key只可以为String类型,只能包含字母、数字和下划线,必须以字母开头,长度不能超过255;Value可以是String/Number/Boolean/JSONArray其中一种,当Value为JSONArray时,它的元素只能为String/Number/Boolean中的一种,且所有元素必须是同一个类型 |
- ActionName
当前版本我们支持如下的标准行为类型,除了这些行为以外,如果您需要上报自定义行为,可以给logAction:(NSString *)actionName
方法的actionName
参数传入自定义的字符串。
常量名 | 值 | 含义 |
---|---|---|
GDTSDKActionNameStartApp | START_APP | 应用启动 |
GDTSDKActionNamePageView | PAGE_VIEW | 页面浏览 |
GDTSDKActionNameRegister | REGISTER | 注册 |
GDTSDKActionNameViewContent | VIEW_CONTENT | 内容浏览 |
GDTSDKActionNameConsult | CONSULT | 咨询 |
GDTSDKActionNameAddToCart | ADD_TO_CART | 加入购物车 |
GDTSDKActionNamePurchase | PURCHASE | 购买 |
GDTSDKActionNameSearch | SEARCH | 搜索 |
GDTSDKActionNameAddToWishList | ADD_TO_WISHLIST | 加入收藏 |
GDTSDKActionNameInitiateCheckOut | INITIATE_CHECKOUT | 开始结算 |
GDTSDKActionNameCompleteOrder | COMPLETE_ORDER | 下单 |
GDTSDKActionNameDownloadApp | DOWNLOAD_APP | 下载应用 |
GDTSDKActionNameRate | RATE | 评分 |
GDTSDKActionNameReservation | RESERVATION | 预订 |
GDTSDKActionNameShare | SHARE | 分享 |
GDTSDKActionNameApply | APPLY | 申请(用于金融广告主的申请贷款、开卡等) |
GDTSDKActionNameClaimOffer | CLAIM_OFFER | 领取卡券 |
GDTSDKActionNameNavigate | NAVIGATE | 导航 |
GDTSDKActionNameProductRecommend | PRODUCT_RECOMMEND | 商品推荐 |
- ActionParam
- 广告主在调用上报StartApp行为时,SDK会自主判断此次行为是否为激活行为。若广告主需要自主控制上报激活启动行为时,可以在
ActionParam
中设置GDTSDKActionParamKeyAudienceType
的Key,Value为GDTActionParamAudienceType_UsedAudience
。当带有该标示的启动行为上报时我们会默认此次行为为老客户的应用启动行为。 - 广告主在上报时需要做自定义去重时可以在
ActionParam
中设置GDTSDKActionParamKeyOuterActionId
的Key,value为任意自定义如订单号的字符串作为自定义去重id,系统会根据该id进行去重。 - 当用户需要指定上报用户次日留存指标时,可以在上报StartApp时,加上length_of_stay的参数,值为1,系统会指定该次上报为留存数据。
- 广告主在调用上报StartApp行为时,SDK会自主判断此次行为是否为激活行为。若广告主需要自主控制上报激活启动行为时,可以在
6. 专用上报API
- GDTAction+convenience.h
方法名 | 功能 |
---|---|
+ (void)reportRegisterActionWithMethod:(NSString *)method isSuccess:(BOOL)isSuccess | 用户注册完成时调用此接口 @param method 表示注册方式,业务方可以传任意可标识注册方式的值,如注册方式为手机号:method = @"phone" 微信注册:method = @“WeChat” 邮箱:method = @"mail"等。这个参数作用:方便业务方在数据平台以method为key查询数据 @param isSuccess 是否注册成功 |
+ (void)reportLoginActionWithMethod:(NSString *)method isSuccess:(BOOL)isSuccess | 用户登录完成时调用此接口 @param method 表示登录的方式,如游戏账号、手机号等 @param isSuccess 是否登录成功 |
+ (void)reportBindSocialAccountActionWithType:(NSString *)type isSuccess:(BOOL)isSuccess | 绑定社交账户时调用此接口 @param type 社交账号类型 如如微信、微博等 @param isSuccess 是否绑定成功 |
+ (void)reportFinishQuestActionWithQuestID:(NSString )questID questType:(NSString )type questName:(NSString )name questNumer:(NSUInteger)number description:(NSString )desc isSuccess:(BOOL)isSuccess | 完成节点(如教学/任务/副本)时调用此接口 @param questID 教学/任务/副本等关卡标识符 @param type 节点类型 @param name 教学/任务/副本等关卡名称 @param number 第几个任务节点 @param desc 节点描述 @param isSuccess 节点是否完成 |
+ (void)reportCreateRoleActionWithRole:(NSString *)role | 用户创建游戏角色后调用此接口 @param role 游戏角色 |
+ (void)reportUpgradeLevelActionWithLevel:(NSUInteger)level | 用户升级后调用此接口 @param level 当前用户等级 |
+ (void)reportViewContentActionWithContentType:(NSString )type contentName:(NSString )name contentID:(NSString *)contentID | 查看内容/商品详情时调用此接口 @param type 内容类型如“配备”、“皮肤” @param name 商品或内容名称 @param contentID 商品或内容标识符 |
+ (void)reportAddingToCartActionWithContentType:(NSString )type contentName:(NSString )name contentID:(NSString *)contentID contentNumber:(NSUInteger)number isSuccess:(BOOL)isSuccess | 加入购物车时调用此接口 @param type 内容类型如“配备”、“皮肤” @param name 商品或内容名称 @param contentID 商品或内容标识符 @param number 商品数量 @param isSuccess 加入购买/购物车是否成功 |
+ (void)reportCheckoutActionWithContentType:(NSString )type contentName:(NSString )name contentID:(NSString )contentID contentNumber:(NSUInteger)number isVirtualCurrency:(BOOL)isVirtualCurrency virtualCurrencyType:(NSString )virtualCurrencyType realCurrencyType:(NSString *)realCurrencyType isSuccess:(BOOL)isSuccess | 提交购买/下单时调用此接口 @param type 内容类型如“配备”、“皮肤" @param name 商品或内容名称 @param contentID 商品或内容标识符 @param number 商品数量 @param isVirtualCurrency 是否使用的是虚拟货币 @param virtualCurrencyType 虚拟货币类型,如"元宝"、“金币”等 @param realCurrencyType 真实货币类型,ISO 4217代码,如:“USD” @param isSuccess 提交购买/下单是否成功 |
+ (void)reportPurchaseActionWithContentType:(NSString )type contentName:(NSString )name contentID:(NSString )contentID contentNumber:(NSUInteger)number paymentChannel:(NSString )channel realCurrency:(NSString *)realCurrency currencyAmount:(unsigned long long)amount isSuccess:(BOOL)isSuccess | 支付时调用此接口 @param type 内容类型如“配备”、“皮肤” @param name 商品或内容名称 @param contentID 商品或内容标识符 @param number 商品数量 @param channel 支付渠道名,如支付宝、微信等 @param realCurrency 真实货币类型,ISO 4217代码,如:“USD” @param amount 本次支付的真实货币的金额 @param isSuccess 支付是否成功 |
+ (void)reportAddPaymentChannelActionWithChannel:(NSString *)channel isSuccess:(BOOL)isSuccess | 添加支付渠道时调用此接口 @param channel 支付渠道名,如支付宝、微信支付等 @param isSuccess 添加支付渠道是否成功 |
+ (void)reportRateActionWithRate:(CGFloat)rate | 对APP进行应用商店评分时调用此接口 @param rate 评分 |
+ (void)reportShareActionWithChannel:(NSString *)channel isSuccess:(BOOL)isSuccess | 分享至社交媒体时调用此接口 @param channel 社交媒体 @param isSuccess 分享是否成功 |