幫助文檔


版本號
修改日期
更新內容
V1.2.0 2014-12-25 創建文檔
V1.2.0 2015-02-10
修改完善所有接口的接入點說明
V1.3.0
2015-03-05 一、統計接口調整:
去掉(除登錄,創建角色)其他接口重復的字段:用戶唯一標識,服務器ID,角色唯一標識

二、修改AndroidManifest.xml:
  1.將meta節點name為statistic_serverurl去掉,添加為HJR_DATA_URL_DEBUG模式
   2.將meta節點name為gamekey改為HJR_GAMEKEY
   3.將meta節點name為channel改為:HJR_CHANNEL

三、所有統計數據接口添加重發機制
V1.3.1
2015-04-10 更新優化,修復bug




一.SDK構成

    當下載完統計平臺sdk包解壓之后,看到的資源如下圖

    圖片1.png

    上圖的資源說明:

1.  HJR_Java_Data_1.3.1:統計sdk測試demo

2.  libs:工程依賴的 libs 包,同HJR_Java_Data_1.3.1里面的libs里面的文件,解壓后將此文件夾里面的內容拷貝

          到游戲工程的相同libs目錄下

3.  1.3.0更新到1.3.1注意事項.txt:更新sdk時需要修改的地方

4.  AndroidManifest.xml 配置.txt :AndroidManifest.xml的配置說明文件

5.  HJR_Java_Data_1.3.1接入文檔規規范.pdf:統計sdk接入說明文檔

二、SDK植入步驟

       

    第一步:植入sdk前,請確保到平臺下面已經申請好游戲密鑰(gamekey)和下載最新的統計sdk版本了


    第二步:解壓HJR_Java_Data_1.3.1.zip ,進入 libs ,將libs里面的所有資源(即下圖所示的資源)拷貝到游戲工程的 libs 目錄下


    圖片2.png

    

    第三步:配置構建路徑。Eclipse用戶右鍵工程根目錄,選擇Properties -> Java Build Path -> Libraries,然后點擊Add External JARs... 選擇指向jar的路徑,點擊OK,在Properties -> Java Build Path -> Order and Export里面勾選中圖中添加的jar包,點擊ok即導入成功

   3.png

                    

    圖片1.png



    注意: Eclipse ADT 17 以上版本用戶,請在工程目錄下建一個文件夾libs,把jar包直接拷貝到這個文件夾下,刷新下 Eclipse中工程就好了。 不要通過上述步驟手動配置構建路徑的方式引入Jar包。

            詳情請參考: Dealing with dependencies in Android projects。


    第四步:將 "AndroidManifest.xml配置.xml” 文件中的內容配置到游戲的AndroidManifest.xml

     配置說明:

    1.在<application>節點外添加permission配置:

            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

            <uses-permission android:name="android.permission.INTERNET"/>

            <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>

            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

 

    2.在<application>節點下,添加 meta-data 配置:

            <!-- 游戲密鑰gamekey,需要游戲申請-->

            <meta-data

                android:name="HJR_GAMEKEY"

            android:value="申請的gamekey" />

     

            <!-- 渠道號   注意格式必須為\+空格+渠道號(flashAIR的游戲除外-->

            <meta-data

                android:name="HJR_CHANNEL"

            android:value="\ 自定義的渠道號" />

             

            <!--測試環境請將DEBUG必須為true;正式上線請改為false,否則影響上線統計數據-->

            <meta-data android:name="HJR_DATA_URL_DEBUG" android:value="true"/>


    3.配置示例如下圖:

      注意:一定要在<application>節點下配置meta-data節點,否則會導致統計不上數據


圖片1.png

    第五步:調用基本代碼,在調用的Activity里面添加引用代碼:


            import com.sdkkit.gameplatform.statistic.SDKKitStatisticSDK;

            import com.sdkkit.gameplatform.statistic.util.C;

            import com.sdkkit.gameplatform.statistic.util.InitListener;

            import com.sdkkit.gameplatform.statistic.util.ProtocolKeys;


        (調用的接口具體詳見下面:三、SDK接口調用說明)

 


三、SDK接口調用說明

1.  SDK初始化接口(必接)

    接入點說明:在一個游戲啟動的時候,即通常在啟動的第一個ActivityonCreate方法里面調用

    Map<String, Object> params = new HashMap<String, Object>() ; 

    //游戲類型 : 1, 網游 ; , 單機

    params.put(ProtocolKeys.KEY_GAMETYPE, "1");

    

    SDKKitStatisticSDK.getInstance().init(this,params, new InitListener() {

                @Override

                public void onSuccess() {

                System.out.println(初始化成功......");

                }

                

                @Override

                public void onFailed() {

                System.out.println(初始化失敗......");

                }

                });



2.登錄接口(必接)

    接入點說明:在登錄完成并且成功選擇區服之后調用

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,用戶標識 : 傳入用戶ID即可 ,*請注意:平臺標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_USERMARK,"loginUserId");

    //可選,整型(int(3)),用戶類型:0為 臨時用戶,1為注冊用戶,2為第三方登錄用戶,游戲沒有此字段的可不填

    params.put(ProtocolKeys.KEY_USERTYPE,2);

    //網游必填, 服務器編號,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_SERVERNO"10");


    SDKKitStatisticSDK.getInstance().doUserLogin(params);

    參數說明:

    ProtocoKeys.KEY_USERMARK:用戶標識(必填),傳入用戶ID即可,*請注意:
        ProtocoKeys.KEY_USERTYPE:用戶類型(可選),不能為中文或中文類型的特殊字符
        ProtocoKeys.KEY_SERVERNO :服務器ID(網游必填) ,不能為中文或中文類型的特殊字符

        備注:1. 用戶標識實際的形式為:用戶ID@平臺 標識;其中平臺 標識,不能為中文或中文類型的特殊字符;

                            @平臺標識:可不填寫,后臺已自動拼接,以區分不同渠道平臺的用戶,對接方也可自定填寫 不影響統計
                  2. 所有的非本平臺渠道的游戲,填寫用戶類型:ProtocolKeys.KEY_USERTYPE,值為2,均為第三方平臺的用戶

             

3.創建角色接口(必接)

    接入點說明:在游戲里用戶登錄選擇區服進入游戲并創建角色成功之后調用

    Map<String, Object> params = new HashMap<String, Object>();

    //網游必填,角色唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ROLEMARK"roleMark");

    

    SDKKitStatisticSDK.getInstance().doCreateRole(params);

    參數說明:

    ProtocoKeys.KEY_ ROLEMARK: 角色標識(網游必填) ,不能為中文或中文類型的特殊字符

 

4.提交訂單接口(必接)

    接入點說明:1.在支付成功之后調用

    (參數ProtocolKeys.KEY_AMOUNT的值以最終支付成功收到通知的實際金額為準,否則影響統計)

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,支付方式,可為中文

    params.put(ProtocolKeys.KEY_PAYNAME"支付寶");

    //必填,充值金額(人民幣,單位:元),不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_AMOUNT"12");

    //必填,訂單號,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ORDERNUMBER"11100");

    //網游必填,整型(int),玩家等級

    params.put(ProtocolKeys.KEY_UPGRADE,4);

    //可選,商品描述,可為中文

    params.put(ProtocolKeys.KEY_PRODUCT_DESC"這里是我的商品描述");

    

    SDKKitStatisticSDK.getInstance().doPostOrder(params) ;

    參數說明:

    ProtocolKeys.KEY_PAYNAME:支付方式(必填),可為中文

    ProtocolKeys.KEY_AMOUNT充值金額(必填),金額為人民幣(單位:元),不能為中文或中文類型的特殊字符

    ProtocolKeys.KEY_ORDERNUMBER訂單號(必填),不能為中文或中文類型的特殊字符

    ProtocolKeys.KEY_UPGRADE玩家等級(網游必填,整型(int),

    ProtocolKeys.KEY_PRODUCT_DESC商品描述(可選),可為中文

 

 

 

5.玩家升級接口(必接)

        接入點說明:在登錄游戲成功,并且成功選擇區服后,當拿到用戶的游戲等級信息時,請調用“玩家升級“接口

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,整型(int),玩家等級

    params.put(ProtocolKeys.KEY_UPGRADE, 2);

    SDKKitStatisticSDK.getInstance().doUserUpgrade(params);

    參數說明:

    PotocolKeys.KEY_UPGRADE玩家等級(必填),整型(int)

 

 

6.獲得道具接口(必接)

    接入點說明:在游戲里面獲取道具之后調用

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,道具唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMID"3");

    //必填,道具類型,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMTYPE"2");

    //必填,整型(int),道具數量

    params.put(ProtocolKeys.KEY_ITEMCOUNT1);

    //可選,原因,可為中文

    params.put(ProtocolKeys.KEY_REASON"原因");

    SDKKitStatisticSDK.getInstance().doItemGet(params);

    參數說明:

    PotocolKeys.KEY_ITEMID道具唯一標識(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMTYPE道具類型(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMCOUNT道具數量(必填), 整型(int)

    PotocolKeys.KEY_REASON原因(可選),可為中文

 

 

7.使用道具接口(必接)

    接入點說明:在游戲里面使用道具之后調用

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,道具唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMID"3");

    //必填,道具類型,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMTYPE,"2");

    //必填,整型(int)道具數量

    params.put(ProtocolKeys.KEY_ITEMCOUNT, 1);

    //可選,原因,可為中文

    params.put(ProtocolKeys.KEY_REASON"原因");

    SDKKitStatisticSDK.getInstance().doItemConsume(params);

 

    參數說明:

    PotocolKeys.KEY_ITEMID道具唯一標識(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMTYPE道具類型(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMCOUNT道具數量(必填), 整型(int)

    PotocolKeys.KEY_REASON原因(可選),可為中文

     

 

8.購買道具接口(必接)

    接入點說明:在游戲里面購買道具之后調用

    

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,道具唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMID"3");

    //必填,道具類型,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_ITEMTYPE"3");

    //必填,整型(int),道具數量

    params.put(ProtocolKeys.KEY_ITEMCOUNT, 1);

    //必填,整型(int),虛擬幣數量

    params.put(ProtocolKeys.KEY_CURRENCYCOUNT,1);

    //必填,虛擬幣類型,可為中文

    params.put(ProtocolKeys.KEY_CURRENCYTYPE"1");

    //可選,計費點,可為中文

    params.put(ProtocolKeys.KEY_POINT"");

     

    SDKKitStatisticSDK.getInstance().doItemBuy(params);

    參數說明:

    PotocolKeys.KEY_ITEMID道具唯一標識(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMTYPE道具類型(必填),不能為中文或中文類型的特殊字符

    PotocolKeys.KEY_ITEMCOUNT道具數量(必填), 整型(int)

    ProtocolKeys.KEY_CURRENCYCOUNT:虛擬幣數量(必填), 整型(int),填寫總數

    PotocolKeys.KEY_CURRENCYTYPE虛擬幣類型(必填),可為中文

    PotocolKeys.KEY_POINT計費點(可選),可為中文

 

9.開始關卡接口(必接)

    接入點說明:在游戲的每個關卡開始的時候調用

    

    Map<String, Object> params = new HashMap<String, Object>();

     

    //必填,玩家等級,整型(int)

    params.put(ProtocolKeys.KEY_GRADE1);

    //必填,關卡序號,整型(int)

    params.put(ProtocolKeys.KEY_SEQNO, 1);

    //必填,關卡唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_LEVELID,  "levelMark");

    //必填,整型(int),關卡難度:0.簡單,1.一般,2.困難,3.很困難,4.非常困難(以此類推,越難的排后,數字遞增)

    params.put(ProtocolKeys.KEY_DIFFICULTY1);

     

     

    SDKKitStatisticSDK.getInstance().doStartLevel(params);

    參數說明:

    PotocolKeys.KEY_GRADE: 玩家等級(必填),整型(int)

    PotocolKeys.KEY_SEQNO: 關卡序號(必填),整型(int)

    PotocolKeys.KEY_LEVELID: 關卡唯一標識(必填),不能為中文或中文類型的特殊字符

      PotocolKeys.KEY_DIFFICULTY:關卡難度(必填), 整型(int):0.簡單,1.一般,2.困難,3.很困難,4.非常困難(以此

                                                             類推,越難的排后,數字遞增)

 

 

 

10.結束關卡接口(必接)

    接入點說明:在游戲的每個關卡結束的時候調用

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,關卡序號,整型(int)

    params.put(ProtocolKeys.KEY_SEQNO, 1);

    //必填,關卡唯一標識,不能為中文或中文類型的特殊字符

    params.put(ProtocolKeys.KEY_LEVELID,  "levelMark");

    //必填,整型(int),關卡狀態: 0.成功, 2失敗,3退出 ;此處固定只能填0,或2,或3,填其他數字會導致沒有統計數據或統計出錯

    params.put(ProtocolKeys.KEY_STATUS, 2);

    //可選,原因(如失敗點),可為中文

    params.put(ProtocolKeys.KEY_REASON"失敗點");

    SDKKitStatisticSDK.getInstance().doEndLevel(params);

     

    參數說明:

    PotocolKeys.KEY_GRADE: 玩家等級(必填),整型(int)

    PotocolKeys.KEY_SEQNO: 關卡序號(必填),整型(int) 

      PotocolKeys.KEY_STATUS整型(int),關卡狀態(必填): 0.成功, 2失敗,3退出 ;此處固定只能填0,或2,或3,填

                                                        其他數字會導致沒有統計數據或統計出錯

    PotocolKeys.KEY_REASON原因(如失敗點)(可選),可為中文

 

11. 按鈕點擊接口(非必接)

    接入點說明:在用戶完成按鈕點擊之后,如:登錄、進入游戲,充值等。

    Map<String, Object> params = new HashMap<String, Object>();

    //必填,按鈕名稱,可為中文

    params.put(ProtocolKeys.KEY_NAME"按鈕名稱");

    

    SDKKitStatisticSDK.getInstance().doGameClick(params);

    參數說明:PotocolKeys.KEY_NAME按鈕名稱(必填), 可為中文

  

 

四、游戲在線時長統計及釋放資源技術解決方案(必接)

如果你的工程中有Activity基類(如BaseActivity),那么重寫此基類的onStop()方法和onResume()方法,如下

       /**游戲回到前臺*/

          @Override

          protected void onResume() {

          super.onResume();

               if (!C.isActive) {

                                SDKKitStatisticSDK.getInstance().saveFrontTime();

                                C.isActive = true ;

                        } 

                          }

 

        /**游戲進入后臺*/

           @Override

           protected void onStop() {

     super.onStop();

               if (!SDKKitStatisticSDK.getInstance().isAppOnForeground()) {

                            SDKKitStatisticSDK.getInstance().saveBackTime() ;

                            C.isActive = false ;

                    } 

                                                          }

 

 

如果你的工程中沒有做 Activity 基類,那么你需要編寫基類 BaseActivity,并且你的其他 Activity都要繼承這個類,BaseActivity 如下:

            public class BaseActivity extends Activity {

            @Override

            protected void onStop() {

                super.onStop();

 

            if (!SDKKitStatisticSDK.getInstance().isAppOnForeground()) {

                            SDKKitStatisticSDK.getInstance().saveBackTime() ;

                            C.isActive = false ;

                    } 

                      }

                  @Override

            protected void onResume() {

                  super.onResume();

                            if (!C.isActive) {

                            SDKKitStatisticSDK.getInstance().saveFrontTime();

                            C.isActive = true ;

                            } 

                            }

                            }

        (接入點說明:此功能是為了統計游戲在線時間,如果你的游戲中實現了統計在線時間的方法,那么不用做以上操

作,只需要在你的游戲進入后臺和回到前臺的方法中調用統計接口即可:

    游戲進入后臺調用:

    SDKKitStatisticSDK.getInstance().saveBackTime() ;

    游戲回到前臺調用:

    SDKKitStatisticSDK.getInstance().saveFrontTime();

 

 

 

 

五、捕獲并處理全局異常技術解決方案(非必接)

    如果你的工程中有繼承了 Application 的類,那么在此類的 onCreate()方法中添加如下內容:

          // 異常處理,不需要處理時注釋掉這兩句即可!

    CrashHandler crashHandler = CrashHandler.getInstance();

    // 注冊 crashHandler

    crashHandler.init(getApplicationContext());

如果你的工程中沒有繼承 Application 的類,那么在你工程主包名目錄下建立一個繼承 Application的類,名稱

App,并在 AndroidManifest.xml 中注冊此 Application 類,即在<application>中添加 name屬性,示例代

碼如下:

        <application

        android:name="App"

        android:icon="@drawable/ic_launcher"

        android:label="/app_name"

        android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">

        </application>

     

    App 類的調用示例代碼如下:

    public class App extends Application {

    @Override

    public void onCreate() {

    super.onCreate();

    // 異常處理,不需要處理時注釋掉這兩句即可!

    CrashHandler crashHandler = CrashHandler.getInstance();

    // 注冊 crashHandler

    crashHandler.init(getApplicationContext());

    }

                }

     

     

六、SDK對接注意事項

        1.HJR_GAMEKEY  :  需要向統計sdk平臺申請正式的gamekey;

  HJR_CHANNEL注意格式必須為\+空格+渠道號(flashAIR的游戲除外),不同渠道平臺填寫的渠道號以區分

                                 平臺,這個不需要向統計sdk平臺申請,自定義填入

         HJR_DATA_URL_DEBUG:是否為測試模式,游戲正式上線之前為ture,正式上線請改為false


        2.請所有的接口調用處嚴格按照“接入點說明”接入,只有確保準確的統計數據,才能正式上線


        3.所有接口的用戶唯一標識 (ProtocolKeys.KEY_USERMARK),其后臺格式為:

          用戶ID@平臺唯一標識;

          用戶ID:為用戶登錄之后獲取的userId

          平臺標識:為接入的不同渠道平臺的唯一標識,此標識統一由后臺自動拼接,不用自定義傳入


        4.所有的必填項必須按照要求填寫,尤其不能填寫中文或中文字符的,填寫了會導致統計出錯


        5.結束關卡接口中的狀態必須按照固定整型0,2,3填寫,否則統計出錯

     

     

     

七、接入驗證(兩種方式,推薦方式一)

  方式一

    1.瀏覽器中輸入地址:http://open.kuaifazs.com/,輸入自己注冊的賬號密碼登錄,如下圖所示:

        3.png


    2.進入登錄之后的頁面,點擊選中自己的游戲,出現下拉菜單,點擊”數據統計“ ,如下圖所示:

        圖片1.png


3.進入游戲統計分析頁面之后,點擊”實時日志“選項,如下圖所示:

        圖片1.png


    4.進入自己的游戲統計數據測試頁面,如下圖所示:

    圖片1.png


方式二

    1.瀏覽器輸入下面的地址:

    測試分析頁面(meta-data里面的HJR_DATA_URL_DEBUGture)

        http://test.d.haojieru.com/test/analysis.php?gamekey=申請的gamekey

     

     

     

    正式分析頁面(meta-data里面的HJR_DATA_URL_DEBUGfalse)

    http://d.haojieru.com/test/analysis.php?gamekey=申請的gamekey

     

 

 

    例:分析頁面之登錄分析顯示如下圖:

圖片1.png

    分析頁面需要關注的接口和對應的url參考如下:

    1) 登錄——/user/login/

    2) 創建角色——/user/createrole/

    3) 提交訂單——/order/submit/

    4) 游戲按鈕點擊——/sys/gamebtnclick/

    5) 玩家升級——/user/upgrade/

    6) 購買道具——/item/buy/

    7) 獲得道具——/item/get/

    8) 使用道具——/item/consume/

    9) 開始關卡——/level/pass/

    10) 結束關卡——/level/pass/ 

    11) 在線時長——/sys/gamedeactivate(acitivity生命周期自動調用的)

    前11個為接入驗證的接口,下面的12-14號接口為后臺自動調用的接口

    12) 游戲激活——/sys/gamestart/(初始化后臺自動調用)

    13) 公網ip——/sys/net/(初始化后臺自動調用)

    14) 異常記錄——/sys/abnormal(程序發生異常時后臺自動調用,可看到程序異常日志代碼)

    注意:所有的接口14除外:只有顯示“操作成功”才算調用成功

    

国内2020揄拍人妻在线视频_亚洲日韩色欲色欲com_欧美日韩一区不卡在线观看