現在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);
Name | Type | Description |
---|---|---|
productId | string | 物品ID |
price | decimal | 物品價格 |
currency | string | 幣別. 例如 “TWD” 從這個網頁可以查幣別http://en.wikipedia.org/wiki/ISO_4217 |
receipt | string | iOS或android用來和平台驗證的編號 如果是Null值代表不使用 |
signature | string | Android數位簽章. 如果使用原生的Android應用包含開發商的密鑰 INAPP_DATA_SIGNATURE 參數,數據簽名使用 RSASSA-PKCS1-v1_5 加密規則. 如果是Null值代表不使用. |
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);
Type | Description | |
---|---|---|
customEventName | string | 自訂事件名稱,名稱不能有包含"unity."的描述 - 這是一個保留字 |
Dictionary | dictionary | 事件的附加參數,名稱不能有包含"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自訂事件就能解決這樣的需求。
和之前一樣,只要在Unity runtime的模式底下,你就可以看到分析數據了。
進階用法 - 人口統計
玩家的來源有可能來自不同的地方(例如:Facebook),只要在對的地方埋好程式就能夠分析這些數據。
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);
Name | Type | Description |
---|---|---|
gender | enum | 性別可以是"F", "M", 或 "U". |
birthYear | int | 哪一年出,必須是4個數字 |
範例:
SexEnum gender = SexEnum.F;
UnityAnalytics.SetUserGender(gender);
int birthYear = 2014;
UnityAnalytics.SetUserBirthYear(birthYear);
和之前一樣,只要在Unity runtime的模式底下,你就可以看到分析數據了。
除了這些用法之外,我們也很期待開發者可以透過這些SDK衍伸出自己的用法,並在遊戲內蒐集到對遊戲營運有幫助的數據,未來的版本也會更多強化功能,請務必注意我們的發佈消息。
沒有留言:
張貼留言