2015年10月25日 星期日

免費遊戲常見的數據指標定義

阿逸從2013年10月投入遊戲業後,做了一陣子的遊戲開發工程師(以perl為主要程式語言開發),後來被上頭注意到有資料分析的敏銳度,進而被安排擔任產品經理,開始了遊戲數據分析的工作生涯。

免費遊戲的特色是透過遊戲內購,提供玩家高性能道具及服務,來打平遊戲的開發成本與後續營運支出。但設計的環節好不好、有沒有效,很忌諱以少數人的「感覺」來評斷,因此這時候就非常仰賴數據幫助,來釐清多數玩家實際的樣貌。根據這些數據來做相關決策,就稱為Data-Driven Decision (數據驅動決策)。

免費遊戲常見的關鍵指標


遊戲人數的指標定義


DAU (Daily Active Users) 日活躍人數
一天內至少玩一次的獨立用戶

WAU (Weakly Active Users) 周活躍人數
一周內至少玩一次的獨立用戶

MAU (Monthly Active Users ) 月活躍人數
一個月內至少玩一次的獨立用戶

當日註冊人數
當天開通的獨立用戶

非當日註冊人數
當日內有玩遊戲,但不是今天才開通的老玩家。

回流玩家 (Callback Users)
曾經一個月以上沒有玩遊戲,今日回鍋的用戶。


玩家留存的指標定義


次日留存率 (D+1)
開通的新玩家,隔天有回來玩的比例。
舉例:今天100位開通玩家,其中30位隔天有回來玩,則次日留存率為30%。

周留存率 (D+7)
開通的新玩家,剛好第7天有回來玩的比例。
舉例:本周六有100位玩家開通,其中15位下周六有回來玩,則周留存率為15%。

月留存率 (D+30)
開通的新玩家,剛好第30天有回來玩的比例。
舉例:本日有100位玩家開通,其中10位30天後有回來玩,則月留存率為10%。

→ 業界有個合格遊戲的標準:次留存40%、周留存20%、月留存10%

流失率 
當日DAU內,經過七天後,有多少人發生「連續七天都不遊玩」的比例。
廣告導入的時候,通常流失率很高 (導入玩家的質量通常不好),因此流失率通常用來評斷一款穩定營運的遊戲,在玩家保留上是否健康

→ 業界有個合格遊戲的標準:(非廣告期間)
10%以內(頂尖)、25%以內(優秀)、35%以內(普通)、超過35% (危險)

黏性指標
黏性表示玩家有多愛你的產品,算法是:DAU/MAU。
目前黏性最高的產品是Facebook,創造了黏性50,至今沒有其他服務可以打過。當然,在遊戲上不會到這麼高。

→ 業界有個合格遊戲的標準:黏性達20


遊戲支出與收入的指標定義


ARPU (Average Revenue Per User) 每用戶平均收入 (或稱含金)
一般算法是:當日的總營收/當日活躍人數。
表示平均一個玩家可以貢獻多少營收。當然也有周ARPU、月ARPU等變形。

ARPPU (Average Revenue Per Paying User) 平均每付費用戶收入 (或稱口袋深度)
一般算法是:當日的總營收/當日有付費的人數。
表示一個願意付費玩家,可以負擔的額度。

CPA (Cost Per Acquisition)
一般算法是:總廣告花費 / 透過廣告順利遊玩的玩家。
表示取得一個有效玩家要花的廣告成本。

LTV (Lifetime Value)  玩家終身價值
LTV的算法非常多種,但目的都是用來衡量產品的獲利能力。
一般算法是:玩家平均玩多久會流失 * 含金 (ARPU)
表示平均一位玩家在流失之前,可以貢獻多少營收。

成功方程式:LTV > CPA ,表示產品已經調整至可以獲利,可以更大幅度的打廣告推廣,拉更多的使用者進入產品。



2012年5月12日 星期六

Perl的模組應用 - WWW::Mechanize

WWW::Mechanize 是Perl裡很代表性的一個模組,
我們稱它為網頁代理人,它可以幫你做瀏覽網頁的動作,
包含:點擊連結、帳號密碼登入、擷取所需資訊等等。
因為是針對網頁做處理,所以建議各位要有一點HTML的觀念才容易理解
在這裡先我們用簡單的例子來說明:
首先,我想先到google的首頁去,並且輸入CPAN下去尋找。



因此我們必須讓程式知道,要在搜尋欄位打上關鍵字,並且按下搜尋按鈕
每個欄位都會有自己的name值,我們可以透過右鍵→檢視原始碼來得知,


很暈對吧!事實上,很多瀏覽器提供的plugin(附加元件)
都可以讓原始碼排的很整齊,讓大家更容易瀏覽,
在這裡要推薦一個好東西,火狐(FireFox)上的一個plugin:Firebug
Firebug可以把CSS、HTML等各自分開,讓使用者更容易閱讀原始碼。


因此我們可以看到,google上的搜尋欄位名稱是q (name="q"),
先做到這裡為止,我們來看程式碼:
 
use WWW::Mechanize; # 表示我要使用這模組
my $agent = WWW::Mechanize->new();# 建立一個新物件 $agent
$agent -> get("http://www.google.com.tw/"); # 讓$agent連到網頁
$agent -> field("q","CPAN"); # 在名為q的欄位填上CPAN
$agent -> click_button(number => 1); # 點選第一個按鈕 也就是搜尋
 
這樣就完成很簡單的,進到網站、填寫資料、送出。
接著,我們希望程式繼續往下探索網頁,



點選了超連結後,會進入CPAN網站中,搜尋的分頁。


因為我們已經讓程式點選搜尋按鈕了,
所以剩餘的程式碼為:
$agent -> follow_link(n => 29); # 點選第29個超連結
my $content = $agent ->{content}; # 把整個內容都取下 存在變數
open HTML, ">Agent.html"; # 開啟一個新檔案
print HTML $content; # 把$content存放的值都存進新檔案
 
這裡的例子,是把所有資訊都存到$content
表示說,如果有必要,可以再利用正規表示,
$content裡,感興趣的東西留下。
 
事實上到這步,已經算是有實質功能了,
不少灌票程式都是利用這模組稍作修改
只是把填寫的欄位變多一點(ex: 帳號、密碼),後續就一樣是,
點第幾個連結、到第幾個頁面、投票給哪位候選人等等。
 
最後,這模組其實能使用的功能很多,絕對不只上面範例中所使用的,
有興趣想深入研究的,CPAN網站上的WWW::Mechanize
有很詳細的介紹。