运营中心SDK集成文档

运营中心SDK集成文档

运营中心SDK(IOP-SDK)提供数据统计和推送功能,本篇文档分为三个部分介绍如何集成IOP-SDK:

  1. 新增服务
  2. 数据统计接入
  3. 推送接入

1. 新增服务

操作步骤:

登录个推开发者中心,点击首页的”立即开通“

Step 1:选择服务

选择需新增的服务,点击【下一步】按钮

Step 2:完善信息

上传应用图片,填写应用名称、应用类型、android包名、ios bundleID等信息,点击【下一步】按钮

Step 3:集成使用

查看应用信息,记录appId、appKey、appSecret、masterSecret等信息,根据【集成指南】的步骤,集成SDK

2. CocoaPods 集成(推荐)

  • 使用时需要新建一个名为 Podfile 的文件,如下格式,将依赖的库名字依次列在文件中即可:

    target 'GtSdkDemo-objc' do
    platform :ios, "8.0"
    pod 'GTIOPSDK'
    pod 'GTSDK'
    end
    target 'NotificationService' do
    platform :ios, "10.0"
    pod 'GTExtensionSDK'
    end
    

注意事项:

1.pod 'GTIOPSDK' 和 pod 'GTSDK' 为添加在主 target 上, pod 'GTExtensionSDK' 为添加在 NotificationService Target 上。

2.pod 'GTExtensionSDK' 库需提前添加 Notification Service Extension

3.GTIOPSDK为数据统计的必要SDK,GTSDK和GTExtensionSDK为消息推送的必要SDK,消息推送相关的集成方法请参考 消息推送集成指南

  • 将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:
$ cd "<path/to/project>"
$ pod install

3. 手动集成

  • 启动XCode,打开您之前创建的iOS项目工程:

img_xcode_open

3.1 导入IOP SDK

  • SdkLib目录拷贝到项目工程目录下,导入SdkLib文件夹:

3.2 库引用检查

  • 在导入时,Xcode正常情况下会自动添加引用,但是偶尔也会不添加,注意检查下图中的引用路径,如果报错找不到库或者头文件,一般都是下面的引用没有添加。

3.3 添加系统依赖库

  • 在项目设置中添加以下系统库支持:
libc++.tbd
libz.tbd
libsqlite3.tbd
libresolv.tbd
Security.framework
MobileCoreServices.framework
SystemConfiguration.framework
CoreTelephony.framework
AVFoundation.framework
CoreLocation.framework
UserNotifications.framework (iOS 10 及以上需添加,使用 Optional 方式接入)
AdSupport.framework   (如果使用无IDFA版本SDK,则需删除该 AdSupport 库)

3.4 设置 Other Linker Flags

找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags,将其设置为 -ObjC

4. 数据统计接入

4.1 SDK配置私有云

SDK默认是接入个推线上服务器,如果不使用私有云请跳过本步小节。
如果需要接入私有云服务器,请按照下列步骤对iOS的数据统计SDK进行配置。

4.1.1. 集成配置文件

如果接入私有云,请集成 gtiopsdkconfig.plist 进你的工程。
如果是接入个推线上服务器,请把plist文件从你的工程中移除。

integrate_plist

4.1.2. 修改配置项

如果是接入个推线上服务器,请把plist文件从你的工程中移除

如果私有云使用https域名,则请修改plist文件、删除publicKey和publicKeyID两个字段

如果私有云使用http域名,请务必正确配置publicKey和publicKeyID,具体请联系你的技术支持

modify_plist

4.1.3. 检查debug日志打印

[GTCountSDK setDebugEnable:YES];//开启debug日志检查是否正确使用了私有云配置
[GTCountSDK startSDKWithAppId:kGtAppId withChannelId:@""];

check_debuglog

4.2 初始化启动接口

接口描述:

使用统计功能以前,需要先启动 SDK,该接口用于在 App 运行时启动数据统计 SDK。

接口定义:

/**
 初始化启动接口

 @param appId 开发者中心生成的 appId
 @param channelId 渠道名称,默认为 'appstore'
 */
+ (void)startSDKWithAppId:(NSString *)appId withChannelId:(NSString *)channelId;

接口说明:

AppDelegate didFinishLaunchingWithOptions 方法中:通过平台分配的 APPID 启动统计 SDK。

参数 参数说明
appId 应用标识 APPID
channelId 渠道名称,如果为 nil,默认为 'appstore'

接口示例:

#import <GTCountSDK/GTCountSDK.h>
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 启动数据统计 SDK
   [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
   return YES;
 }

4.3 开启debug模式

接口描述:

SDK默认不打印信息,发布版本时请关闭debug模式,以便影响性能。

接口定义:

/**
 是否启动开发者模式,在该模式下会打印相关的数据上传信息

 @param isDebug 是否开启
 */
+ (void)setDebugEnable:(BOOL)isDebug;

接口示例:

#import <GTCountSDK/GTCountSDK.h>
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 启动数据统计 SDK
   [GTCountSDK setDebugEnable:YES];
   [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
   return YES;
 }

4.4. 应用活跃时长统计

应用时长统计用于统计启动次数和应用的真实活跃时长,集成 SDK 后不需要开发者调用额外的接口。

其中 iOS 平台一次完整的启动包括如下两种情况:

1.从启动应用到关闭应用

2.从启动应用到应用退至后台,且在后台时间超过 30s 。可以修改该默认值:

    [GTCountSDK sharedInstance].sessionTime = 30*1000;

4.5. 自定义事件

自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。通常 event_id用于表示某种行为或功能的统计(如统计“发送”按钮被触发多少次),而参数则用于标识统计的具体对象(如功能为“下载”的按钮),由 event_id 唯一标识一个事件。

自定义事件主要分为三种:

(1)次数统计:统计指定行为被触发的次数。

(2)时长统计:统计指定行为消耗的时间,单位为秒。需要 eventBegineventEnd 接口成对使用才可生效。

(3)用户属性统计:统计对应用户的相关信息。

每类事件都支持使用 NSDictionary 参数类型。其中 key 必须为 NSString 类型(注意:不能以$开头),value 仅支持NSNumber, BOOL, NSString, NSDate 4 种类型。 。

4.5.1 次数统计事件

接口描述:

在事件执行开始时调用次数统计方法,SDK 会根据事件 Id ,统计该事件被点击的次数。

接口定义:

/**
 计数事件统计

 @param eventId 事件 Id,需要在个数后台配置才能生效
 @param args 自定义属性,key 必须为 NSString 类型(注意:不能以$开头),,value 仅支持NSNumber, BOOL, NSString, NSDate 4 种类型
 */
+ (void)trackCountEvent:(NSString *)eventId withArgs:(NSDictionary *)args;

接口参数说明:

参数 参数说明
eventId 自定义事件 Id
args ⾃定义属性,key 必须为 NSString 类型,value 仅支持使⽤ NSNumber ,NSString ,NSDate 3 种类型

接口示例:

@implementation TrackCountEventController
 - (IBAction)clickCount:(id)sender {
 [GTCountSDK trackCountEvent:@"test" withArgs:@{@"time":[NSDate date],@"number":@(34.0),@"string":@"str",@"BOOL":@YES}];}
 @end

4.5.2 时长统计事件

接口描述:

在事件开始和结束时调用对应方法,可以获取并上传事件的时长。

接口定义:

/**
 记录自定义事件的开始
 注意:需要跟 trackCustomKeyValueEventEnd:withArgs: 配对使用
 若多次调用则以最后一次开始的时间为准

 @param eventId 自定义事件 Id,需要在个数后台配置才能生效
 @param args 本参数不再使用,事件只以 eventId 为判断依据
 */
+ (void)trackCustomKeyValueEventBegin:(NSString *)eventId withArgs:(NSDictionary *)args;

/**
 记录自定义事件的结束
 注意:需要跟 trackCustomKeyValueEventBegin:withArgs: 配对使用
 若多次调用则以第一次结束的时间为准

 @param eventId 自定义事件 Id,需要在个数后台配置才能生效
 @param args 自定义属性,key 必须为 NSString 类型(注意:不能以$开头),value 仅支持NSNumber, BOOL, NSString, NSDate 4 种类型。
 */
+ (void)trackCustomKeyValueEventEnd:(NSString *)eventId withArgs:(NSDictionary *)args;

接口参数说明:

参数 参数说明
eventId 自定义事件 Id
args 自定义属性,用于扩展统计需要

接口示例:

 @interface TrackCustomKeyValueEventController ()
 @end

 @implementation TrackCustomKeyValueEventController
 -(void) viewDidAppear:(BOOL)animated {
     self.eventProperty = @{@"key":@"value1"};
     [GTCountSDK trackCustomKeyValueEventBegin:@"eid1" withArgs:nil];
     [super viewDidAppear:animated];
 }
 - (void)viewWillDisappear:(BOOL)animated {
     [GTCountSDK trackCustomKeyValueEventEnd:@"eid1" withArgs:@{@"time":[NSDate date],@"number":@(34.0),@"string":@"str",@"BOOL":@YES}];
     [super viewWillDisappear:animated];
 }
@end

4.6. 用户属性设置

接⼝描述:

设置用户属性,记录的是用户的基本固定不变的属性,例如性别、出生年份、注册时间、注册地域、注册渠道等。

接⼝定义:

/**
用户属性设置
@param profiles ⽤户属性参数,key 必须为 NSString 类型,value 仅⽀持使⽤ NSNumber ,NSString ,NSDate 3 种类型。
*/
 + (void)setProfile:(NSDictionary *)profiles;

接⼝示例:

NSMutableDictionary *profiles = [NSMutableDictionary new]; 
[profiles setObject:@"username001" forKey:@"$name"]; 
[profiles setObject:@"男" forKey:@"$sex"];
[GTCountSDK setProfile:profiles.copy];
return YES;

4.7. 预置属性说明

4.7.1. 事件预置属性

事件预置属性用 $ 标记(预置属性由sdk采集,开发者不可以修改):

字段名称 类型 说明
$country 字符串 国家
$city 字符串 城市
$province 字符串 省份
$app_version 字符串 应用的版本
$channelId 字符串 渠道
$lib_version 字符串 SDK版本
$manufacturer 字符串 设备制造商
$model 字符串 设备型号
$os 字符串 操作系统
$os_version 字符串 操作系统版本
$screen_height 数值 屏幕高度
$screen_width 数值 屏幕宽度
$wifi 布尔值 是否使用wifi
$carrier 字符串 运营商名称
$network_type 字符串 网络类型
$duration 数值 计时事件时长
$firstvisittime 日期 首次访问时间

4.7.2. 用户预置属性

用户预置属性需要开发者自己上传。

字段名称 类型 说明
$country 字符串 国家
$city 字符串 城市
$province 字符串 省份
$name 字符串 姓名
$sex 字符串 性别
$phone 字符串 手机号
$email 字符串 邮箱
$birthday 日期 出生日期
$signup_time 日期 注册时间

5. 消息推送集成

消息推送集成使用文档见消息推送集成指南

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持