個推應用統計產品(個數)Android集成實踐

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

前段時間,我們公司的產品又雙叒叕給我們提了新需求,要求我們把APP相關的數據統計分析一下,這些指標包括但不限于應用每日的新增、活躍、留存率等等,最好每天都能提供數據報表。這種事情真是想想就麻煩,大家最后還是決定交給專業的團隊來解決。我們一直在用個推推送,相比于其他第三方推送,個推的到達率比較高,剛好他們旗下有一款叫“個數·應用統計”的產品,非常符合我們的需求。經過一段時間的體驗,我們發現個數效果還是很不錯的,集成操作簡單方便,數據快準狠。好東西當然要拿出來分享出來了,下面就手把手教大家快速集成個數Android SDK。

?

  • 一、?登錄賬號并創建應用

?

  • 1.?訪問個推開發者中心,點擊立即注冊(如果已有賬號了可以直接進入步驟3):

?

  • ?

?

  • 2.?根據個人情況填寫并注冊賬號:

?

  • ?

?

  • 3.?注冊好了之后就可以登錄啦,選擇主界面左邊菜單欄的個數·應用統計:

?

  • ?

?

  • 4.進入個數·應用統計面板后,選擇右上角的“新增應用”添加新的應用:

?

?

  • 5.填寫應用相關信息,勾選Android,點擊提交:

?

  • ?

?

  • 6.提交后,頁面自動返回應用列表,我們就能看到剛剛添加的應用了。點擊應用配置:

?

?

  • 7.在應用配置界面可以看到APPID,我們可以將其復制保存下來,它在后續的集成環節會被用到:

?

?

  • 二、配置個數SDK

?

  • 個數Android SDK提供兩種集成方式,分別是maven集成和aar包手動集成(本人推薦使用maven集成,更加簡單方便)。
  • ?
  • 三、maven集成方式

?

  • 1.添加maven庫地址

?

  • 在以項目名命名的頂層?build.gradle?文件中,添加個推?maven?庫地址,如下所示:

?

  • maven{
  • ????url 'http://mvn.gt.igexin.com/nexus/content/repositories/releases'
  • }

?

  • 2.配置依賴

?

  • 在?app/build.gradle?文件中引用個數SDK依賴庫,如下圖所示:

?

  • ?

?

  • dependencies{
  • compile 'com.getui:gssdk:2.2.3.0'
  • }
  • ?
  • 四、aar包集成方式

?

  • 去官網下載SDK文檔

?

  • 將資源文件中的?GSSDKxxx.aar?以及?GTCxxx.aar?一起復制到?app?模塊下的?libs?文件中,打開?app/build.gradle?,在?dependencies?中添加相應包的引用?:

?

?

  • dependencies {
  • implementation files('libs/GTC-2.0.0.aar')
  • implementation files('libs/GSSDK-2.2.2.0.aar')
  • }

?

  • GTC為個推平臺的公共代碼庫,如果你已經接入過個推其他包含GTC的產品,則無需再次引入。
  • 五、SDK配置

?

  • 這一步需要配置混淆。首先需要在混淆文件中加入如下配置:
  • ?
  • -dontwarn com.getui.**
  • -keep class com.getui.**{*;}

?

  • 然后配置個數應用參數:

?

  • 在?app/build.gradle?文件中的?android.defaultConfig?下添加?manifestPlaceholders?,配置個數相關的應用參數,如下圖所示:

?

?

?

  • manifestPlaceholders = [
  • GS_APPID : "APP_ID",
  • GT_INSTALL_CHANNEL : "APP_CHANNEL"
  • ]

?

  • APP_ID為步驟1中從官方網站獲取到的值,APP_CHANNEL為將要發布的渠道。
  • APP_CHANNEL也可以通過Gsconfig類中setInstallChannel的方法來設置。需要注意的是,若使用這個方法,需要在SDK初始化之前配置,否則不能生效。

?

  • 做完了這一步,SDK集成工作就完成啦。

?

  • 六、SDK初始化

?

  • 個數SDK的初始化操作非常簡單,只需在Application的onCreate方式中添加如下代碼即可:

?

  • GsManager.getInstance().init(Context context);

?

  • 初始化后SDK產品功能就能正常使用了。新增、日活、留存率、人均訪問時長、各個頁面的瀏覽次數……APP數據統計涉及到的各類指標,都能夠通過個數SDK自動統計完成。

?

  • 七、一些自定義的功能

?

  • 應用時長統計:

?

  • 應用時長統計功能主要用于統計APP的啟動次數和真實活躍時長,集成個數SDK?后不需要開發者調用額外的接口。其中Android平臺一次完整的啟動指的是如下兩種情況之一:
  • (1)從啟動應用到關閉應用。
  • (2)從啟動應用到應用退至后臺,且在后臺運行時間超過默認值30s。這個默認值支持修改:

?

  • void GsConfig.setSessionTimoutMillis(long?time);????

?

  • 注意:GsConfig配置類的操作需要在SDK初始化之前完成。

?

  • 1.自定義事件功能:

?

  • 自定義事件可以統計某些用戶自定義埋點的發生時間以及次數,例如廣告點擊、短信數量等。通常?event_id?用于表示某種行為或功能的統計(如統計“發送”按鈕被觸發多少次),而參數properties則用于標識被統計的具體對象(如功能為“下載”的按鈕)。通過event_id?和?properties?,我們可以為一個事件打上唯一標識。
  • 自定義事件主要分為兩種:
  • (1)次數統計:統計指定行為被觸發的次數。
  • (2)時長統計:統計指定行為消耗的時間,單位為秒。需要?eventBegin?和?eventEnd?接口成對使用才可生效。
  • 其中每類事件都支持使用?properties?參數類型。
  • 注意:event_id?需要先在個數網站上面配置,才能參與正常的數據統計。event_id?不能包含空格或轉義字符,如下:

?

  • (1)點擊側邊菜單欄事件列表。

?

?

  • (2)點擊新增事件按鈕。

?

?

  • 3、根據事件類型分別輸入相應的事件ID以及事件名稱。

?

?

  • 目前個數的自定義事件有兩種:

?

  • 1.次數統計事件

?

  • 在事件執行開始時調用次數統計方法,SDK會根據事件ID,統計該事件被點擊的次數。

?

  • void GsManager.getInstance().onEvent(String eventId, Properties properties)

?

  • 參數:
  • eventId?:自定義事件ID,用于標識唯一的事件
  • properties?:?key-value?,自定義屬性,用于擴展統計需求
  • key和value都是string類型

?

  • 使用代碼:

?

  • ?

?

  • 1.事件時長統計

?

  • 在事件開始和結束時調用對應的方法,可以獲取并上傳事件的時間。

?

  • void GsManager.getInstance().onBeginEvent(String eventId, Properties properties)

?

  • void GsManager.getInstance().onEndEvent(String eventId, Properties properties)

?

  • 參數:
  • eventId?:自定義事件ID,用于標識唯一的事件
  • properties?:?key-value?,自定義屬性,用于擴展統計需求,key和value都是string?類型
  • 使用代碼:

?

  • ?

?

  • 1.數據上傳策略

?

  • 開發者可根據自身應用需求,設置不同的數據上報策略,從而有效地控制用戶流量開銷。

?

  • (1)個數目前支持的上報策略包括以下5種:

?

  • void GsConfig.setUploadStrategyType(GsConfig.GESHU_STRATEGY_REAL_TIME);

?

  • ?
  • 目前默認的規則是:在連接WIFI的情況下實時上傳,未連接WIFI則每隔?1?小時上報一次數據。開發者也可以手動關閉WIFI環境下實時上傳數據的開關。

?

  • void GsConfig.setEnableSmartReporting(boolean isEnable);

?

  • (2)數據上傳相關的設置接口

?

  • 1)(僅在發送策略為GESHU_STRATEGY_PERIOD時有效)設置間隔時間(默認為60,單位是分鐘,即?1?小時)

?

  • void GsConfig.setUploadPeriodMinutes(int minutes);

?

  • 2)(僅在發送策略為GESHU_STRATEGY_BATCH時有效)設置最大批量發送消息的個數(默認值為32)

?

  • void GsConfig.setMaxBatchReportCount(int maxCount);

?

  • 注意:GsConfig配置類需要在SDK初始化之前完成。

?

  • 以上內容就是本人集成個推應用統計產品(個數)的經驗總結,希望對你有幫助!如果大家在集成過程中遇到問題了,可以在個推官網底部找到他們的技術支持,或者在評論區給我留言,大家一起解決,一起進步。?

轉載于:https://my.oschina.net/u/1782938/blog/1924318

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450998.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450998.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450998.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM中安全點safePoint有哪些?

安全點是jvm選來進行GC的線程中斷點。線程在執行到安全點后詢問GC標志位,若標志位標識將要進行GC,則程序主動中斷掛起線程等待GC。安全點的選定基本上是根據"是否具有讓程序長時間執行的特征"為標準進行選定的。目前會產生安全點的主要有&…

深入理解 PHP7 中全新的 zval 容器和引用計數機制

深入理解 PHP7 中全新的 zval 容器和引用計數機制 最近在查閱 PHP7 垃圾回收的資料的時候,網上的一些代碼示例在本地環境下運行時出現了不同的結果,使我一度非常迷惑。 仔細一想不難發現問題所在:這些文章大多是 PHP5.x 時代的,而…

分布式系統的架構思路

見:http://www.cnblogs.com/chulung/p/5653135.html 一、前言 在計算機領域,當單機性能達到瓶頸時,有兩種方式可以解決性能問題,一是堆硬件,進一步提升配置,二是分布式,水平擴展。當然&#xff…

狂賭智能手機 中國互聯網巨頭深陷零利潤困局

編者按:智能手機正在中國普及,互聯網企業趨之若鶩。然而,在蘋果、三星共享智能手機市場99%利潤的大背景下,中國互聯網企業要從所剩無幾的利潤空間里分一杯羹,注定備受煎熬,前路迷茫。 互聯網巨頭紛紛進入智…

占用較多堆外內存的區域

(1)Director Memory 主要在nio中會使用,在內存不足時會拋出OOM或者OOM:Direct buffer memory。 (2)線程堆棧 為每個線程分配的棧空間,用于保存局部變量,執行程序代碼。內存不足時可能拋出StackO…

Oracle SELECT INTO 和 INSERT INTO SELECT 兩種表復制語句詳解

在Oracle中select into from不可以使用,用create table select代替該功能!!!在Sql Server中可以正常使用。1.INSERT INTO SELECT語句語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from…

帆軟地址欄傳參,實例

自動查詢: http://help.finereport.com/finereport9.0/doc-view-409.html參數的種類與區別: http://help.finereport.com/doc-view-156基本參數傳遞(視頻): http://bbs.fanruan.com/lesson-14.html超級鏈接-傳遞多個值…

RMI 說明

見:https://baike.baidu.com/item/RMI/1786244?fraladdin RMI遠程方法調用 相關概述 RMI是Java的一組擁護開發分布式應用程序的API。RMI使用Java語言接口定義了遠程對象,它集合了Java序列化和Java遠程方法協議(Java Remote Method Protocol)。簡單地說&…

李善友:為什么外企人不敢創業

摘要:20年前,人們最驕傲的是進外企,創業意味著找不到工作。而現在相反,你要說自己在外企工作,會被人笑話,令人激動的事兒是去創業。 李善友:中歐創業中心主任創業學兼任教授、酷6網創始人 孫陶然…

JVM對象占用內存計算

大家都知道,jvm中對象實例存儲在堆中,對象的引用存儲在棧中,而對象的元數據(類型數據)存儲在方法區。在我們進行內存優化的過程中經常需要了解每個對象占用的內存大小。接下來我將介紹對象占用內存大小的計算方式。 Java的對象模型 java是面…

繪圖基礎語法與常用參數

1 # -*- coding: utf-8 -*-2 3 ###############################################################################4 ####################### 正文代碼 #######################5 #################################################################…

MyEclipse 皮膚、主題、背景色

第一步:打開myeclipse--->help--->install from site--->Add將路徑粘貼在這里。等待安裝顏色主題。https://raw.github.com/guari/eclipse-ui-theme/master/com.github.eclipseuitheme.themes.updatesite 第二步:http://eclipsecolorthemes.org…

RPC 遠程過程調用協議

RPC(Remote Procedure Call Protocol)——遠程過程調用協議,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。 RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜…

周鴻祎:創業前的積累很重要

摘要:雖然公司上市,也投資了很多公司,日前,在中國人民大學的演講中,周鴻祎卻稱自己“從來不是一個成功人士,曾經是一個最大的失敗者”。 360特供機還沒露面,已經被周鴻祎通過微博炒得火熱&#…

BZOJ 4710 [Jsoi2011]分特產 解題報告

4710 [Jsoi2011]分特產 題意 給定\(n\)個集合,每個集合有相同的\(a_i\)個元素,不同的集合的元素不同。將所有的元素分給\(m\)個不同位置,要求每個位置至少有一個元素,求分配方案數。 先考慮兩個簡單的問題 給定\(m\)個相同元素和\…

java接口調試思想

對于接口調試的理解:最近多次參與接口調試工作,一般情況都是獲取對方接口文檔,文檔中有加密驗證方式,根據加密驗證方式開發,調用對應的接口。可以不可以簡化這個流程那,至少減少一方的工作量。1、減少調用方…

SOA (面向服務的架構)

見:https://baike.baidu.com/item/SOA/2140650?fraladdin UDDI 解說參見:UDDI是什么 SOAP解說參見: SOAP:簡單對象訪問協議 面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱…

mysql中count(*)和count(1)和count(column)區別

在日常的mysql使用中,我們經常會看到SELECT COUNT(*)、SELECT COUNT(1)等查詢語句,他們到底有什么區別呢?今天我就來總結下。 我們先從函數的含義說起: count() 統計滿足查詢條件的結果集的總行數(包含null),其中count…

第一天筆記

編程語言分類: 1. 機器語言:用二進制指令編程,本質是直接操作硬件。 優點:執行效率高 缺點:開發效率低,學習難度高 2.匯編語言:用英文標簽代替二進制指令,本質也是直接操作硬件。…

索尼MOTO等壓榨國內代工廠:員工宿舍像監獄

摘要:據調查報告披露,偉易達血汗工廠的壓榨情況比起富士康、蘋果等有過之而無不及,包括強迫工人超負荷工作、暴露于有害化學物質、住宿環境差、虐待員工、超低的工資等。如前面保羅克魯格曼發表了《表揚廉價勞動》一文,N.D.克里斯…