2015年1月18日 星期日

Unity Analytics說明教學

Unity Analytics是Unity 2015年初推出專門用來幫你分析你的客戶資料的服務,Analytics前身是Playnomics這家公司的服務,現在已經被整合到Unity裡面,並且變得更強大。

現在Unity Analytics已經開始對外測試,網址可從這進入

https://analytics.unity3d.com/

我們來看看如何用簡單幾個步驟來使用這個服務

首先,你需要註冊一個Unity帳號,登入之後你會進入主控台,這裡可以看到所有的整合資料
,專案首先要做的事情就是點擊畫面左下方Support裡的Integration,這裡可以下載最新版本的SDK套件。




步驟一、下載Analytics SDK
點擊Download SDK按鈕後,就可以下載最新的SDK,它是一個unitypackage的包,代表只要拖入你的專案就完成了所有的安裝流程。你只要在你的專案加入幾行程式就可以啟動這些功能。


步驟二、匯入SDK
你可以直接把SDK拖入Project視窗或是從 Assets > Import Package > Custom Package 然後選擇SDK來安裝。





步驟三、建立程式碼

從 Assets > Create > C# Script 來建立一個C#腳本,並命名為 UnityAnalyticsIntegration(為了讓專案正常,請使用這個名字)



用編輯器打開這個腳本,並複製貼上下面的程式碼
using UnityEngine;
using System.Collections;
using UnityEngine.Cloud.Analytics;

public class UnityAnalyticsIntegration : MonoBehaviour {

    // Use this for initialization
    void Start () {

        const string appId = "你的appId";
        UnityAnalytics.StartSDK (appId);

    }

}

步驟四、把腳本貼在物件上
這支程式會初始化Analytics SDK並開始蒐集數據,你可以將這隻程式貼到任一場景裡的物件上來初始化分析流程。(記得ID要改成你自己的)

為了獲取越齊全的數據,我們建議把這隻程式貼在你遊戲一進來的第一個場景裡。

要把程式貼到物件上只要從Project介面把AnalyticsIntegration這支程式拖到Scene介面上的物件(例如Main Camera)上即可。更多Unity的基本操作可以參考Unity官方網站。

步驟五、測試與驗證
Unity的編輯器可以作為驗證分析流程的測試環境,這代表你不需要為了驗證成果而發佈上架你的產品到平台上。

簡單點選Play按鈕即可


如果步驟正確,分析的結果就會出現



進階用法 - 分析使用者消費習慣
Unity Analytics提供了一個方便的方法來分析玩家的消費習慣,這事件需要在玩家購買金幣或虛寶的時候被觸發。
交易函式需要一個價格參數、貨幣幣別和Apple iTunes或是Google play辨識字串。

 // Reference the Unity Analytics SDK package
  using UnityEngine.Cloud.Analytics;

  // Use this call for each and every place that a player triggers a monetization event
  UnityAnalytics.Transaction(string productId, decimal price,
  string currency, string receipt,
  string signature);


NameTypeDescription
productIdstring物品ID
pricedecimal物品價格
currencystring幣別. 例如 “TWD”
從這個網頁可以查幣別http://en.wikipedia.org/wiki/ISO_4217
receiptstringiOS或android用來和平台驗證的編號
 如果是Null值代表不使用
signaturestringAndroid數位簽章. 如果使用原生的Android應用包含開發商的密鑰 INAPP_DATA_SIGNATURE參數,數據簽名使用 RSASSA-PKCS1-v1_5 加密規則. 如果是Null值代表不使用.
這個範例代表買了一個編號為12345abcde的物品,0.99美金,沒有簽章
UnityAnalytics.Transaction("12345abcde", 0.99m, "USD", null, null);
          






和之前一樣,只要在Unity runtime的模式底下,你就可以看到分析數據了。

進階用法 - 自訂事件

Unity Analytics可以透過遊戲內設定好自訂事件來分析客製化的數據,例如你自己的渠道分析、紀錄玩家的遊戲行為,或是紀錄分析里程碑等等。
// Reference the Unity Analytics SDK namespace
  using UnityEngine.Cloud.Analytics;

  UnityAnalytics.CustomEvent(string customEventName,
  IDictionary<string, object> eventData);

TypeDescription
customEventNamestring自訂事件名稱,名稱不能有包含"unity."的描述 - 這是一個保留字
Dictionarydictionary事件的附加參數,名稱不能有包含"unity."的描述 - 這是一個保留字

幾個自訂事件的注意事項:

1.每個自訂事件預設最多10個參數 - 超過會有AnalyticsResult.TooManyItems的錯誤。

2.Dictionary欄位最多500字 - 超過會有AnalyticsResult.SizeLimitReached的錯誤。

3.每個帳號最多100個自訂事件 - 超過會有AnalyticsResult.TooManyRequests的錯誤。

要注意的是,Unity Analytics只會處理前50個自訂事件

如果你有51個關卡,並希望每個關卡都有自訂事件,Unity Analytics只會處理前50個關卡資料,如果你要解除這個限制,你可以用一些作法來實現。

例如:你可以用一個"LEVELNUM"當作事件參數,傳遞給自訂事件的"LEVEL",例如"LEVEL1","LEVEL2"...,你可以建立一個LEVEL自訂事件就能解決這樣的需求。

// Reference the Collections Generic namespace
  using System.Collections.Generic;

  int totalPotions = 5;
  int totalCoins = 100;
  UnityAnalytics.CustomEvent("gameOver", new Dictionary<string, object>
  {
    { "potions", totalPotions },
    { "coins", totalCoins }
  });
這個範例可以分析玩家死掉的時候包包裡的物品狀況

和之前一樣,只要在Unity runtime的模式底下,你就可以看到分析數據了。


進階用法 - 人口統計
玩家的來源有可能來自不同的地方(例如:Facebook),只要在對的地方埋好程式就能夠分析這些數據。
// Reference the Unity Analytics SDK package
  using UnityEngine.Cloud.Analytics;

  // Use this call to designate the user gender
  UnityAnalytics.SetUserGender(SexEnum gender);

  // Use this call to designate the user birth year
  UnityAnalytics.SetUserBirthYear(int birthYear);
NameTypeDescription
genderenum性別可以是"F", "M", 或 "U".
birthYearint哪一年出,必須是4個數字

範例:
  SexEnum gender = SexEnum.F;
  UnityAnalytics.SetUserGender(gender);

  int birthYear = 2014;
  UnityAnalytics.SetUserBirthYear(birthYear);


















和之前一樣,只要在Unity runtime的模式底下,你就可以看到分析數據了。

除了這些用法之外,我們也很期待開發者可以透過這些SDK衍伸出自己的用法,並在遊戲內蒐集到對遊戲營運有幫助的數據,未來的版本也會更多強化功能,請務必注意我們的發佈消息。






沒有留言:

張貼留言

關於我自己

我的相片
Unity台灣官方部落格 請上Facebook搜尋Unity Taiwan取得Unity中文的最新資訊