99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀Android Market排名算法及規(guī)則
Android Market排名算法及規(guī)則
2016-02-14
收藏

Android Market排名算法及規(guī)則

對(duì)于Android Market想必大家都不陌生吧,Google Play的前身就是Android Market。是一個(gè)由Google為Android設(shè)備開發(fā)的在線應(yīng)用程序商店。眾所周知,做搜索出身的Google,旗下的Market的排名肯定是依據(jù)一個(gè)形同( A×a% + B×b% + C×c%)的公式計(jì)算出來的數(shù)值,進(jìn)行排名的??筛鶕?jù)其排名規(guī)則,對(duì)自己的產(chǎn)品設(shè)計(jì)和研發(fā)以及推廣進(jìn)行指導(dǎo)。

1. 排名公式里有哪些指標(biāo)?

指標(biāo)A、B、C到底是什么?權(quán)重a、b、c究竟是多少?這些問題的答案,應(yīng)該是每個(gè)App開發(fā)者和運(yùn)營(yíng)者都渴望了解的。知道了這個(gè)答案之后,有些“聰 明”的人就會(huì)像當(dāng)年SP的從業(yè)者一樣,去刷那些權(quán)重大的指標(biāo)、從而拉升產(chǎn)品的排名了。網(wǎng)上關(guān)于此問題的討論很多都是不了了之、無(wú)疾而終。相對(duì)較深入的一篇 文章《Android Market App Rankings》,也只是在猜想是基于“安裝量”的增長(zhǎng)和留存。可惜,該作者離正確答案就差一步了……

也 許你已經(jīng)等得不耐煩了,哈哈?,F(xiàn)在就說說我的結(jié)論吧。指標(biāo)A=“總安裝/總下載”,即下載轉(zhuǎn)安裝的轉(zhuǎn)換率;B=“評(píng)分/5”,即產(chǎn)品得分比上Market 的滿分;C=“留存安裝/總安裝”,即安裝的留存率。不要急著問我a、b、c等于多少,準(zhǔn)確數(shù)值只有Google知道、而且可以調(diào),我只能告訴你它們加起 來等于100,還有就是b>max(a,c)(為什么?下面耐心看)。

依據(jù)這個(gè)推斷公式,就是說如果每個(gè)下載的用戶都安裝了、而且都給了5分、并且一直都沒有卸載——OK.不論a、b、c是多少,你的產(chǎn)品得了滿分,它就是No.1!

2. 為什么是它們?

在告訴你為什么是A、B、C之前,我先告訴你為什么不是D、E、F……

先看個(gè)數(shù)據(jù),Android Market-通信-免費(fèi)-TOP25:

去掉了產(chǎn)品名稱,我們可以看到更純的數(shù)據(jù)。

首先,我們可以肯定的排除排名是按“下載次數(shù)”排序的,下載次數(shù)1萬(wàn)+的產(chǎn)品(第9位)居然排到了下載次數(shù)500萬(wàn)+(第11位)的前面。試想第11位 的產(chǎn)品在喊:“這是為什么?它哪點(diǎn)比我好???”——答案:請(qǐng)看“評(píng)分”。?。克?分!沒錯(cuò),第9位的產(chǎn)品評(píng)分得了滿分。哦,排除了D的同時(shí),我們收獲 了B。

其次,我們可以排除“評(píng)分人數(shù)”。原因就是,在“下載次數(shù)”和“評(píng)分”都同等量級(jí)的情況下,比對(duì)了若干樣本,都無(wú)章可循——實(shí)在跟“評(píng)分人數(shù)”不相干。E被干掉了。

再次,要排除的是“加速度”。很多人在猜測(cè)會(huì)有一個(gè)“加速度”指標(biāo),或者新增下載的、或是新增安裝的。大家的這種猜測(cè)是源自于“鼓勵(lì)新產(chǎn)品”,但是這是 一種過于激進(jìn)的想法。Market這么大盤子是要鼓勵(lì)推陳出新的,但“保護(hù)”新產(chǎn)品的同時(shí)也得“愛護(hù)”那些確實(shí)有實(shí)力的老產(chǎn)品。過大的用戶基數(shù),肯定會(huì)拖 慢老牛產(chǎn)品的“加速度”,如果這么做的話每天的TOP10都是面目全非的(App Store的排名規(guī)則里就有“加速度”,所以TOP榜天天易容)。所以,“加速度”也不是真正的公平。

排除了D、E、F,收獲了B。那A和C是從哪來的?

休 息一下,問個(gè)題外話?我們一般是怎么評(píng)判一個(gè)物品的“好”“壞”的?是不是有以下部分組成?有一樣?xùn)|西擺在你面前,勾起了你試用的欲望。試用之后,你可能 愛不釋手,繼續(xù)用吧。路遙知馬力,又用了一段時(shí)間,你又有了新的評(píng)判。如果這個(gè)東西實(shí)在是太好了,那你就會(huì)與它陰影不離……回歸到我們判斷一個(gè)物品的標(biāo)準(zhǔn) 的本質(zhì),無(wú)非就是是否“接受它”、是否“肯定它”、是否“留著它”。

言 歸正傳,用戶是否“接受”一個(gè)App——下載只是“抬頭”,安裝才是“點(diǎn)頭”。如果單以“安裝”為指標(biāo),又會(huì)讓老產(chǎn)品滾雪球,有失公平。所以,A(下載轉(zhuǎn) 安裝的轉(zhuǎn)化率)浮出水面了?!鞍惭b”做分母,“下載”做分子。一方面,排名在前的產(chǎn)品下載量越高、安裝量就有可能越高的同時(shí),如果產(chǎn)品不夠好“下載量”越 高就可能成了拖后腿的那個(gè)分母,上面舉例的第11位產(chǎn)品就是個(gè)例子(龐大的下載量下,安裝量無(wú)法保持同步增長(zhǎng),所以讓其難堪重負(fù),排名下落——?jiǎng)⊥赶?,? 11位是曾經(jīng)“通信”下排名第1的產(chǎn)品KakaoTalk)。另一方面,只要A(還有B、C)足夠好,也讓一些新產(chǎn)品可以冒出頭來。

B(評(píng)分)剛才已經(jīng)分析到了,這里需要補(bǔ)充一點(diǎn)的是:評(píng)分不是一次性的。我們會(huì)發(fā)現(xiàn)在Market里“評(píng)分”是可以多次修改的,這樣的目的就是鞭策產(chǎn)品 要持續(xù)的“好”,用戶一直掌握著產(chǎn)品的“生殺大權(quán)”。另外,就是為什么前文說到a大于b、c,原因就是縱觀TOP25,評(píng)分沒有低于4分的——這樣也就避 免了,A、C高分B低能的新產(chǎn)品冒出來。

該說說C(安裝留存率)的出處。說白了就是控制流失率,如果“總安裝”很高、但是“留存安裝”很少,那也不能稱之為“好”產(chǎn)品。所以,安裝留存率就是另一個(gè)全面衡量產(chǎn)品優(yōu)劣的指標(biāo)。

3. 它們到底是多少?

前文已經(jīng)說到b比a和c都大,那a和c孰大孰小呢?這個(gè)取決于Android Market的策略,如果“a比c大”意味著“更看重新增”(任何一個(gè)店鋪先開張的時(shí)候,都會(huì)最看重這個(gè))、如果“c比a大”意味著“更看重留存”(對(duì)于 一個(gè)已經(jīng)把客流吃透的老店,會(huì)更看重這個(gè))——所以,這個(gè)真是可以調(diào)的,取決于Android Market發(fā)展到哪個(gè)階段和運(yùn)營(yíng)管理者的自我認(rèn)識(shí)。

4. 感言

Android Market如果真是我想象的這樣排名,可謂新老兼顧,攻防兼?zhèn)洹?

說它新老兼顧,是因?yàn)樗屝迈r的好的新產(chǎn)品既能快速冒出來、也能讓它經(jīng)得起時(shí)間的推敲,或曇花一現(xiàn)或源遠(yuǎn)流長(zhǎng)。說它攻守兼?zhèn)?,是因?yàn)檫@樣會(huì)把盤子越做越 大,而且也防止了“刷”(能刷上去,但是刷上去之后如果產(chǎn)品不夠好,會(huì)讓產(chǎn)品跌得更慘),把盤子越做越牢。這樣公平的規(guī)則,也為Android Market的應(yīng)用量新增速度已超過App Store提供了另一個(gè)有力的支持。高!實(shí)在是高!

Android Market排名規(guī)則這個(gè)隱形的裁判告訴我們:持續(xù)地把產(chǎn)品做好,才是正道!

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }