iOS SDK 集成文档

iOS SDK 集成文档

个数是个推旗下基于大数据的应用统计产品,从用户属性、使用行为、行业对比等多指标多维度进行全面的移动应用统计分析,帮助APP运营者深层次挖掘用户需求,准确了解自身行业地位,从而更好地指导产品运营。

1. 获取应用 Appid

1、登录 个推开发者中心 ,进入个数应用统计

gs1

2、创建个数应用,并获取 AppId

gs1

2.打开项目工程

启动 Xcode, 打开您之前创建的 Xcode 项目工程

3. 配置个数 SDK

3.1 CocoaPods 集成方式

3.1.1 安装 CocoaPods

安装方式简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装:

$ sudo gem install cocoapods
$ pod setup

3.1.2 准备Podfile

使用时需要新建一个名为 Podfile 的文件(若已存在该文件不需要重新创建),如下格式,将依赖的库名字依次列在文件中即可:

target 'YourTargetName' do
    platform :ios, "7.0"
    pod 'GCSDK'
end

注意事项:

(1)、在 App 内投放广告,获取 IDFA 可通过苹果审核。

(2)、App 内无广告,但由于先前投放的特定广告,可参考如下勾选,通过苹果审核。

勾选如图:

3.1.3 完成 GCSDK 导入

将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:

$ cd "<path/to/project>"
$ pod install

3.2 Xcode 集成方式

我们提供的一个 SDK 开发工具包,包含了 iOS SDK 的全部所需资源。

3.2.1 解压缩后的文件目录结构

  • GTCountDemo: SDK 演示 Demo,能更好的展示个数 SDK 功能点。
  • 资源文件:

    1、包含集成 SDK 所需的静态 .a 库。

    2、注意事项:

    (1)、在 App 内投放广告,获取 IDFA 可通过苹果审核。

    (2)、App 内无广告,但由于先前投放的特定广告,可参考如下勾选,通过苹果审核。

    勾选如图:

    注意: 为了获取精准的统计结果,需添加 AdSupport.framework 库支持

3.2.2 资源包内容说明

文件 说明
`接入文档/个数集成文档.pdf 个数集成文档
Demo工程/SdkLib/GTCountSDK.h 个数 SDK 头文件
Demo工程/SdkLib/libGTCountSDK.a 个数 SDK 主包静态库
Demo工程/SdkLib/libGTCommonSDK-1.2.2.0.a 个推 SDK 工具库,如集成多个个推SDK则保留最新的一个版本
Demo工程/GTCountDemo/ 个数 demo 工程

注意:
libGTCountSDK.a、libGTCommonSDK.a 使用 lipo 工具将
支持 i386、x86_64、arm64、armv7 的代码打包到了一起,所以这个库将同时支持 simulator 和 device,支持 iOS 版本为 7.0 及以上。

注意:libGTCommonSDK.a为个推的SDK 工具库,如果集成多个个推SDK则保留最新的一个版本即可。

3.2.3 个数 SDK 静态库设置

右击添加文件,导入资源文件目录下的文件。

3.2.4 添加依赖库 (必须,如下图)

添加系统库支持:

  • libsqlit3.tbd
  • libz.tbd
  • AdSupport.framework

3.4.5 设置 Other Linker Flags

找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags,将其设置为 -ObjC(如图所示):

3.4.6 设置idfa使用声明

找到主工程的info.plist添加:

    <key>NSUserTrackingUsageDescription</key>
    <string>此标识符将用于向您推荐个性化广告。</string>

4. SDK API 说明

4.1 初始化启动接口

接口描述:

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

接口定义:

`objective-c
/**
初始化启动接口

@param appId 开发者中心生成的 appId
@param channelId 渠道名称,默认为 'appstore'
*/

  • (void)startSDKWithAppId:(NSString )appId withChannelId:(NSString )channelId;
    `

接口说明:

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

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

接口示例:


#import 'GTCountSDK.h'
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

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

4.2 SDK 实例

接口描述:

个数 SDK 实例,用于获取和设置 SDK 相关配置属性。

接口定义:

/**
 SDK 实例,用于获取和设置 SDK 相关配置属性。
 */
+ (instancetype)sharedInstance;

接口示例:

#import 'GTCountSDK.h'
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 启动个数 SDK
   [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
   // 使用 SDK 实例的 reportStrategy 属性设置上报策略。
   [[GTCountSDK sharedInstance] setReportStrategy:GESHU_STRATEGY_WIFI_ONLY]
   // 使用 SDK 实例的 sessionTime 属性获取 sessionTime 的值。
   NSLog(@"sessionTime %ld",[[GTCountSDK sharedInstance]sessionTime]);
   return YES;
 }

4.3 App 会话时长 Session 设置

接口描述:

设置会话时长(默认 30000 ms,单位毫秒),在应用退到后台后停留时间超过会话时长,视为一次新的应用会话。

接口定义:

/**
 设置会话时长(默认 30000 ms,单位毫秒),在应用退到后台后停留时间超过会话时长,视为一次新的应用会话。
 */
@property (nonatomic, assign)NSUInteger sessionTime;

接口示例:

#import 'GTCountSDK.h'
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 启动个数 SDK
   [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
   // 设置 session
   [[GTCountSDK sharedInstance] setSessionTime:3000];
   return YES;
 }

4.4 设置idfa

接口描述:

ios14以上必须动态申请idfa权限之后才能获取,所以sdk不主动获取idfa,改由开发者外面获取并设置进来。

接口定义:

/**
 *  设置IDFA
 *
 *  SDK-2.2.0.0+
 *
 *  @param idfa idfa
 */
+ (void)setIDFA:(NSString *)idfa;

接口示例:

#import 'GTCountSDK.h'
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/ASIdentifierManager.h>
#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    if (@available(iOS 14, *)) {
            // iOS14及以上版本需要先请求权限
            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                // 获取到权限后,依然使用老方法获取idfa
                if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                    NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                    NSLog(@"%@",idfa);
                    [GTCountSDK setIDFA:idfa];
                } else {
                     NSLog(@"请在设置-隐私-跟踪中允许App请求跟踪");
                }
            }];
        } else {
            // iOS14以下版本依然使用老方法
            // 判断在设置-隐私里用户是否打开了广告跟踪
            if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
                NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                NSLog(@"%@",idfa);
                [GTCountSDK setIDFA:idfa];
            } else {
                NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
            }
        }

//    [GTCountSDK setDebugEnable:YES];
    [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
   return YES;
 }

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持