溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐

發(fā)布時(shí)間:2020-07-18 03:51:59 來源:網(wǎng)絡(luò) 閱讀:788 作者:個(gè)推 欄目:大數(shù)據(jù)

最近業(yè)務(wù)方給我們部門提了新的需求,希望能一站式統(tǒng)計(jì)APP的幾項(xiàng)重要數(shù)據(jù)。這次我們嘗試使用的是個(gè)推(之前專門做消息推送的)旗下新推出的產(chǎn)品“個(gè)數(shù)·應(yīng)用統(tǒng)計(jì)”,根據(jù)官方的說法,個(gè)推的數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品通過專業(yè)的移動(dòng)應(yīng)用數(shù)據(jù)分析,可以為用戶的應(yīng)用提供實(shí)時(shí)數(shù)據(jù)統(tǒng)計(jì)分析服務(wù),包括了解版本質(zhì)量、渠道狀況、用戶畫像等。數(shù)據(jù)最后以可視化形式展現(xiàn),很直觀。我們嘗試了一段時(shí)間,發(fā)現(xiàn)效果還是很不錯(cuò)的,這篇文章將為大家介紹如何從零開始快速高效地集成個(gè)數(shù)iOS SDK。

一、登錄賬號(hào)并創(chuàng)建應(yīng)用獲取 APP ID

1、訪問個(gè)推開發(fā)者中心,點(diǎn)擊立即注冊(cè):
(也可以從個(gè)推官網(wǎng)進(jìn)入www.getui.com,點(diǎn)擊右上角“開發(fā)者中心”。)當(dāng)然,如果你已經(jīng)注冊(cè)過個(gè)推推送的賬號(hào),直接登錄使用即可。

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、根據(jù)個(gè)人情況填寫并注冊(cè)賬號(hào):

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
3、返回個(gè)推開發(fā)者中心使用上個(gè)步驟注冊(cè)好的賬號(hào)登錄,進(jìn)入開發(fā)者平臺(tái)面板后,選擇左邊菜單欄的個(gè)數(shù)·應(yīng)用統(tǒng)計(jì):

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
4、進(jìn)入個(gè)數(shù)·應(yīng)用統(tǒng)計(jì)面板后,選擇右上角的新增應(yīng)用添加新的應(yīng)用:

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
5、填寫應(yīng)用相關(guān)信息,勾選iOS,點(diǎn)擊提交新增應(yīng)用:

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
6、新增應(yīng)用成功會(huì)自動(dòng)返回應(yīng)用列表,找到新增的應(yīng)用,點(diǎn)擊應(yīng)用配置:

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
7、在配置信息下可以看到APP ID,將其復(fù)制保存,后續(xù)集成將會(huì)使用到APP ID:

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐

二、配置個(gè)數(shù)SDK

個(gè)數(shù)iOS SDK提供兩種集成方式,分別是CocoaPods集成和Xcode手動(dòng)集成,兩種集成方式本文都會(huì)介紹。在集成SDK時(shí)選擇其中一種即可(推薦使用CocoaPods集成)。

三、CocoaPods集成方式

1、安裝CocoaPods

安裝方式很簡(jiǎn)單 , Mac下都自帶ruby,使用ruby的gem命令即可下載安裝:

$ sudo gem install cocoapods
$ pod setup

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、準(zhǔn)備Podfile

使用時(shí)需要新建一個(gè)名為Podfile的文件(若已存在該文件則不需要重新創(chuàng)建),如下格式,將依賴的庫(kù)名字依次列在文件中即可:

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

3、完成GCSDK導(dǎo)入

將編輯好的Podfile文件放到你的項(xiàng)目根目錄中,執(zhí)行如下命令即可:

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

4、使用CocosPods集成SDK后,需要關(guān)閉原工程,重新在項(xiàng)目根目錄下打開 yourProjectName.xcworkspace的文件進(jìn)行后續(xù)開發(fā):

四、Xcode 集成方式

1、個(gè)數(shù)應(yīng)用統(tǒng)計(jì)提供了一個(gè) SDK 開發(fā)工具包,包含了iOS SDK的全部所需資源,前往個(gè)推文檔中心下載,地址:http://docs.getui.com/download.html,選擇個(gè)數(shù)·應(yīng)用統(tǒng)計(jì)下的iOS端下載SDK資源包 :

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、解壓資源包內(nèi)容可以看到如下文件結(jié)構(gòu):

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
3、資源包內(nèi)容詳解

接入文檔/個(gè)數(shù)集成文檔.pdf : 個(gè)數(shù)集成文檔;

資源文件/GTCountSDK.h: 個(gè)數(shù)SDK頭文件

資源文件/libGTCountSDK.a: 個(gè)數(shù)SDK主包靜態(tài)庫(kù)

資源文件/libGTCommonSDK.a: 個(gè)數(shù)SDK工具庫(kù)

Demo工程/GTCountDemo/: 個(gè)數(shù)demo工程

4、注意:libGTCountSDK.a、libGTCommonSDK.a 使用lipo工具將
支持i386、x86_64、arm64、armv7的代碼打包到了一起,所以這個(gè)庫(kù)將同時(shí)支持simulator和device,支持的iOS版本為 7.0 及以上。

5、個(gè)數(shù)SDK靜態(tài)庫(kù)設(shè)置

右擊添加文件,導(dǎo)入資源文件目錄下的文件。

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
6、添加依賴庫(kù)(必須,如下圖)

添加系統(tǒng)庫(kù)支持:

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

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
7、設(shè)置 Other Linker Flags

找到主工程的target -> Build Setting -> Linking -> Other Linker Flags,將其設(shè)置為-ObjC(如圖所示):

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐

五、初始化并啟動(dòng)SDK

1、初始化啟動(dòng)接口的相關(guān)信息:

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、在項(xiàng)目工程的AppDelegate.m中添加頭文件,使用前面獲取的APP ID初始化并啟動(dòng)SDK:

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

@implementation AppDelegate

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
    // 啟動(dòng)個(gè)數(shù) SDK
    [GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];
    // 使用 SDK 實(shí)例的 reportStrategy 屬性設(shè)置上報(bào)策略。
    [[GTCountSDK sharedInstance] setReportStrategy:GESHU_STRATEGY_WIFI_ONLY]
    // 使用 SDK 實(shí)例的 sessionTime 屬性獲取 sessionTime 的值。
    NSLog(@"sessionTime %ld",[[GTCountSDK sharedInstance]sessionTime]);
    return YES;
    }

六、高級(jí)功能:自定義事件

自定義事件可以統(tǒng)計(jì)某些用戶自定義埋點(diǎn)的發(fā)生時(shí)間以及次數(shù),例如廣告點(diǎn)擊、短信數(shù)量等。通常event_id用于表示某種行為或功能的統(tǒng)計(jì)(如統(tǒng)計(jì)“發(fā)送”按鈕被觸發(fā)多少次),而參數(shù)則用于標(biāo)識(shí)統(tǒng)計(jì)的具體對(duì)象(如功能為“下載”的按鈕),由event_id和properties唯一標(biāo)識(shí)一個(gè)事件。

自定義事件主要分為兩種:

(1)次數(shù)統(tǒng)計(jì):統(tǒng)計(jì)指定行為被觸發(fā)的次數(shù)。

(2)時(shí)長(zhǎng)統(tǒng)計(jì):統(tǒng)計(jì)指定行為消耗的時(shí)間,單位為秒。需要eventBegin和eventEnd接口成對(duì)使用才可生效。

其中每類事件都支持使用properties參數(shù)類型。

注意:event_id需要先在個(gè)推開發(fā)者中心(https://dev.getui.com/)進(jìn)行配置,才能參與正常的數(shù)據(jù)統(tǒng)計(jì)。event_id不能包含空格或轉(zhuǎn)義字符,如下:

1、點(diǎn)擊側(cè)邊菜單欄事件列表。

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、點(diǎn)擊新增事件按鈕。

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
3、根據(jù)事件類型分別輸入相應(yīng)的事件ID以及事件名稱。

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
4、在移動(dòng)端項(xiàng)目中添加對(duì)應(yīng)事件類型和對(duì)應(yīng)event_id的事件:

@implementation TrackCountEventController

  • (IBAction)clickCount:(id)sender {
    [GTCountSDK trackCountEvent:@"countid1" withArgs:@{@"ckey1":@"cvalue1"}];
    }

-(void) viewDidAppear:(BOOL)animated {
// 為了正確統(tǒng)計(jì),要確保開始和結(jié)束接口的參數(shù) self.eventProperty 內(nèi)存地址是一致的。
self.eventProperty = @{@"key":@"value1"};
[GTCountSDK trackCustomKeyValueEventBegin:@"eid1" withArgs:self.eventProperty];
[super viewDidAppear:animated];
}

  • (void)viewWillDisappear:(BOOL)animated {
    [GTCountSDK trackCustomKeyValueEventEnd:@"eid1" withArgs:self.eventProperty];
    [super viewWillDisappear:animated];
    }
    @end

七、高級(jí)功能:數(shù)據(jù)上報(bào)策略

個(gè)數(shù)應(yīng)用統(tǒng)計(jì)可自定義數(shù)據(jù)上報(bào)策略,開發(fā)者可根據(jù)自身應(yīng)用需求設(shè)置,能夠有效控制用戶流量開銷。

1、SDK的數(shù)據(jù)上報(bào)策略包括以下 5 種(默認(rèn)為 GESHU_STRATEGY_PERIOD,周期為 60 分鐘):

個(gè)推數(shù)據(jù)統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))iOS集成實(shí)踐
2、注意:數(shù)據(jù)上報(bào)策略建議在應(yīng)用啟動(dòng)時(shí)設(shè)置。數(shù)據(jù)上報(bào)策略使用以下接口進(jìn)行設(shè)置和查看:

/*
設(shè)置上報(bào)策略
/
@property(nonatomic,assign)GeShuStatReportStrategyType reportStrategy;

3、WIFI 環(huán)境下上報(bào)策略

考慮到 WIFI 網(wǎng)絡(luò)環(huán)境下上報(bào)數(shù)據(jù)的代價(jià)較小,因此默認(rèn)情況在 WIFI 環(huán)境下,使用實(shí)時(shí)上報(bào)策略。若要關(guān)閉該策略,可以調(diào)用以下接口關(guān)閉:

/*
智能上報(bào)
開啟以后設(shè)備接入WIFI會(huì)實(shí)時(shí)上報(bào)
否則按照全局策略上報(bào)
默認(rèn)打開
/
@property (nonatomic, assign)BOOL smartReporting;

4、數(shù)據(jù)上報(bào)策略相關(guān)接口

/*
統(tǒng)計(jì)上報(bào)策略為 BATCH 時(shí),觸發(fā)上報(bào)時(shí)最小緩存消息數(shù),默認(rèn)32條
/
@property (nonatomic, assign)NSUInteger minBatchReportNumber;

/*
上報(bào)策略為 PERIOD 時(shí)發(fā)送間隔,單位分鐘,默認(rèn)一天(60分鐘)
/
@property (nonatomic, assign)NSUInteger periodMinutes;

八、集成 SDK 的應(yīng)用提交App Store注意事項(xiàng)

1、為了獲取精準(zhǔn)的統(tǒng)計(jì)結(jié)果,需添加AdSupport.framework庫(kù)支持,因此在提交App Store時(shí)需做以下操作:

(1)在App內(nèi)投放廣告,獲取IDFA可通過蘋果審核。

(2)App內(nèi)無廣告,但先前投放了特定廣告,可參考如下勾選,通過蘋果審核。

勾選如圖:

![](https://s1.51cto.com/images/blog/201807/27/6325bcc339f07bb78366f659af0bee84.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

以上就是我集成個(gè)推應(yīng)用統(tǒng)計(jì)產(chǎn)品(個(gè)數(shù))的全過程,希望對(duì)你有幫助!如果大家有什么其他問題,我們可以留言區(qū)交流。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI