如何結合公開與App數據分析FB廣告投放效果

在這篇文章中,我將會分享自己遇到嶄新問題時的統計估計方法,不同於顧問使用BoE(Back of envelope)的快速量化運算,我們可以怎麼透過統計方法來估計新政策、新策略對關鍵指標(如民意、營收)的預期影響呢?我將會分享我解決問題的思路、拆解陌生問題、並且納入其他數據來評估對決策的量化效果過程。

問題背景:如何估計新策略的效益

在管理顧問公司中,多數我們經常會去思考「如何找到問題原因」來對症下藥,但隨著科技日興月異、環境變化迅速、不定的黑天鵝不時出現,解決『陌生問題』的能力在今天也十分重要,陌生問題經常不會有所謂的「問題原因」,這也是為什麼不管在軟體開發或者是商業界,Agile等強調敏捷的工作方法越來越受到青睞,快速推出MVP並進行驗證能夠讓我們去快速試錯、迭代,並解決「陌生問題」。

陌生問題百百種,比如「如何增加新會員數」、「如何吸引既有會員使用新服務」…. 不光是問題本身,就我的理解其實也包括了客戶(或者業主)的陌生,比如他們沒做過的事情要怎麼說服他們去做、甚至業界沒做過的事情要怎麼拿出數字證明,這也是問題的背景,倘若我們沒有做過一件事情,要怎麼量化這個策略來幫我們做決策呢?

尤其這個陌生問題經常出現於「新品開發」上,在商業界多數人並沒有認知到自己在用錯誤的方法做事,比如覺得開發新品就能夠提升銷售,看到銷售數字攀升就歸因為新品效果,但忽略了零售常見的蠶食影響。

舉例來說今天可口可樂開發出另一款汽水,這些汽水的購買者可能本來會購買可樂,但因為嚐鮮等原因購買新品,如果新品的毛利結構也沒有可樂好,那麼其實對商業是有不健康影響的。

在零售場域經常需要透過實驗學習來分析門店不同策略的影響

幸運的是,無論在解決熟悉問題或是陌生問題,都有許多數據分析與量化的技巧可以幫上忙,這樣的分析方法在過去我主要使用於零售、消費品等商業問題上,但今天的問題就有點不同了。

今年在臺灣大學的CTPS課程專案實作,隨著時間進度進入學期中,專案小組即將開始規劃策略落地執行面,在選定執行方案之前,我們遇到這個常常令多數商界人士苦惱的問題:「如何衡量某個策略的預期效益?」

我們的產品衡量主要是App,因此這還是第一次我必須考慮App的資料可取得性、結合不同公開資料、推論來估計數字,如果是商業客戶(傳統零售/電商、消費品、銀行)都有自己累積與追蹤的資料、Campaign檔期與時間,但這個問題(App產品相關)與情境(學生專案)就比較不一樣了,而這篇文章中我將會分享一套為了這種情境而設計的衡量解決方法。

如何分析潛在廣告效益

具體來說我們小組最近遇到的問題是:「該怎麼預測廣告效益?

也就是說如果我們訂好了2個月要成長App註冊用戶數20%的目標,那麼回推就是每個月約10%增長,倘若用戶基數是10,000,1000個會員就是我們在這個月需要增加的用戶數。這樣來看提升方法千百種,但要怎麼預先衡量不同方法的提升效果呢?梳理問題之後,我認為這邊還是有三個專案規劃的問題:預算、陌生、因果推論,以下將分別展開:

預算有限

給定預算下,如何估計多種解決方案的投入產出比?尤其在學生專案這種短期、資源更為緊缺、多方關係利益人、面對陌生問題的專案特性下,選定解決方案的點子搭建故事線的機會成本巨大。

陌生解決方案

客戶之前沒有做過類似的事情,這連帶影響到我們缺乏數據去衡量做這件事情到底能獲得多少效益,常見情況在商業界也很常見,好比說該不該開發新品、開不開展新店、策略只推北部還是可以擴展到全台灣….好一點的情況下公司有過去數據可以分析,壞一點的情況則是我們必須思考其他方式來估計。

因果推論的複雜性

許多人會將特定期間簡單抓個n天,期間內成長數就當作廣告效益,但這麼做排除掉自然成長的假設,同時我們無法估計在多渠道的情況下單一渠道的影響(比如剛好碰上元宵節、其他活動也同時在執行、其他外部事件),這也會關聯到第一點:如果我們想量化,不公平的數字比較是沒有意義的事情,更無法幫助我們做決策。

因此想要解決這三個子問題,我們必須思考以下三點:

  • 預算有限 -> 如何衡量出不同專案的效益?以廣告投放來說怎麼做?
  • 陌生解決方案 -> 什麼資料可公開取得並能夠模擬我們的表現?
  • 因果推論 -> 如何將外部事件考慮進來?如何衡量單一操作的表現?

解決問題思考

即使這是學生專案,我也會想把不同選項量化,分析該怎麼做比較好(決策分析),因此這裡我使用三個解決方法來把上面的根本問題解決。

首先在預算有限之下,我們必須透過因果推論來量化不同手段(treatment)的影響,而我們知道節日、自然增長都會體現在產品本身的某個數據(下載、排名)上,也因此我們可以透過時間序列的預測值與實際值在投放廣告的時點來分離出提升程度,這樣因果與量化的條件都被考慮到了,那麼陌生問題怎麼辦呢?我們可以找到相似競品,去看看它有沒有做過這件事情,以這個案例來說我們發現競品過去有投放FB廣告,這點可以從FB廣告媒體庫的公開資料搜尋到。找到之後,我們可以將它作為參考值來估計我們投放廣告之後的預期效果。構思完之後,設計流程如下:

  1. 先把競爭對手的 FB廣告對排名的效果分離出來(因為只有排名是公開數據,下載量不是),得到廣告投放對於排名提升的估計量
  2. 因為我們有客戶本身的下載量,因此對客戶本身排名與下載量的關係建模,同時證明下載量可以預測排名變化(格蘭傑因果檢定)
  3. 透過迴歸可以捕捉到相關性的特性,用排名的模型估計下載量的關係後,把競爭對手的FB廣告資料放入模型,得到FB廣告對下載量的估計效果

競爭對手可以透過商業人士的領域知識來選擇,比方我們可能會認為麥當勞的競爭對手包括摩斯、肯德基、頂呱呱等速食餐廳。

剩下的問題應該就是資料了,在App領域有個很有名的產品是App Annie ,提供許多App的下載資料,但這個下載資料理論上只有App開發者看得到自己的下載資料,因此公開較為可信的資料就是「排名」,排名資料是在App Store與Google play都是公開可得的,所以我把他們爬取下來,會包含總體排名、免費排名以及該類別(如美食、辦公等)所屬排名。因為數據是隱私的,所以這邊的示範性數據量級、變動等都被一個公式轉換過(除了排名)。

Crawling data

接著到公開FB廣告檔案資料庫去看競爭對手的廣告投放行為,這裡我以必勝客舉例:

source : FB廣告檔案庫

這裡有一個小技巧,排名是一種數字越低就越好的指標(第1名比100名好),但為了反應「增長的直覺性」,我用一個線性公式放入排名來得到新的增長衡量性指標,這麼做可以讓我們知道指標越高,則App表現越好,在解釋上更直覺一點。

因此我們需要建立事件時間點,也就是treatment 發生的時間,類似下圖,那也不要看到廣告就太高興全部把他們當作事件放入模型中,因為最近的廣告成效還沒出來(比如26號對25號的提升效果建模),也就是說不太可能在1~2天就反應完整的廣告效果,因此我把一些事件註解掉,這個可以等到我們累積了更多資料之後再放入模型中。

放入行銷事件,也可以是策略

那我們要怎麽考慮自然增長呢?就可以用時間序列來預測「不考慮FB廣告的情況下」的增長情況,換句話說我們希望還原更多會引發增長的情況,比如我們的產品其實跟戶外有關,節日、連假就是一個很重要的增長點,甚至天氣也是,就可以考慮編入這樣的事件,在這裡我使用一年份的資料來分析:

Organic growth

我們的業主產品是戶外活動相關的,你也會發現這種戶外產品在假日(Sat、Sun)的確是最活躍的

週間的影響量化

季節則是在春、夏季會特別多新用戶,這也是為什麼需要量化與分離自然效果,因為如果我們在夏季做這個專案,那麼很大概率沒什麼作為也能夠得到很好的增長,就會高估Campaign的ROI 。

月度的季節性影響量化

同時我們也可以衡量不同節日與FB本身的增益效果:比如下圖就顯示勞工節大家會出外從事這種運動,新年反而不太會,而國慶日跟中秋節就沒什麼顯著的提升效果。

Time event 量化

得到排名的增益效果之後,我們需要再建立一個模型捕捉下載量與排名的關係,這樣才是真的以已知見未知(Predictive),首先我把排名與下載量的數據畫出來方便我們觀察與分析:

Series correlation

看起來兩者的確呈現相關性(觀察波動趨勢隨間的變化是一致的),我們也可以把他們做差分來讓序列跟平穩一些,這樣視覺化他們的相關性也更明顯。

我使用了ADF校驗發現排名是平穩的序列,但下載量的序列不是,透過檢驗知道我們要做三階差分,差分之後兩者的趨勢如圖,可以看到下載量似乎是排名的領先指標,這是合乎直覺的,App Store的排名很大因素是根據下載量訂的。(這點後面也會解釋)

差分後的序列

也因為上面的觀察,我們再使用格蘭傑因果檢定去分析兩者是否存在因果關係,如果A領先B但B不領先A那麼就是成立,而且可以發現這種因果性可以推論是Daily-base調整的(1~2天內才滿足顯著性)

p-value for Granger Causality

也因此知道這點之後,如果我想要建立一個模型來衡量下載量與排名的關係,我就必須注意「不能用同一天」的排名來分析它跟下載量的關係,當然如果我有更細緻的資料(比如小時維度)我認為還是可以用同一天的,但也不會用同一小時的排名與下載量,因為這等於把時間的概念倒過來了, 因此在這邊我把下載量前一天的資料當作y,在我們有排名資料的情況下用排名去反估計前一天的下載量是多少。

x軸是排名,y是下載量,避免透露量級遮掉

然後就可以建立一個單變量的迴歸了,這樣來看我們的解釋效果其實很好的(R-square = 93%,代表此迴歸模型能夠解釋全體排名變異量的93%),其實是高度確信可以回推下載量的,在這裡我們已經建構出了這樣的模型:先以廣告效果估計排名變動量,再用排名變動量預測下載提升數。

OLS modeling

另外網路上也有人整理過App store的排名計算方法如下,不過這其實說到底也只是另一個模型(法國的一家 iOS 應用程式開發商 FaberNovel估算出來的),如果要參考改善我們只要加入均線、前n天的特徵即可(在Python中只要用rolling.mean、shift放入window_size的參數就可以建立類似特徵了)

我也沒有實際去做,因為單模效果已經很優,反過來說,這也可以讓大家知道該怎麼樣得出這種「排名黑盒子」的公式,其實考慮開發商會使用什麼樣的資料,並建立模型捕捉就可以挖掘出來囉!

source : How to market your app

App Store排名公式:

1.名次是依照前一週的銷售量(下載量)。

2.計算公司是7天的加權平均。

3.每天的權重都不一樣,當日的銷售量(下載量)是被加權至8倍、前2天則是5倍、前3天則是2倍,依此類推。

4.所以以今天起算前3天的銷售量(下載量),將影響排行位置相當關鍵。

5.行動廣告、數位廣告的Partner 補充資訊:每日App Store 會重置下載數。

最後,因為我們有排名數字與廣告估計效果,所以我模擬了一萬次廣告投放來估計預期效益,對註冊用戶的提升數字就可以透過不同統計量估計出來:

模擬分佈圖

下一步:透過給定預算來分析CPC,搭配App資料來分析行銷ROI

如果我們已經有了廣告預算就能分析CPC,也可以等到累積更多資料來分析近期、或者不同期間的廣告效果,進而得出預期的CPC與回推多少錢的預算能達到成長目標。當然FB廣告最能影響的就是粉絲團按讚數,比如下圖為競品的粉絲團讚數變化與Campaign關係,所以結合這兩個資料我們也可以估計轉換率(按讚 -> 下載 -> 註冊)的變化。

競品粉絲團按讚成長與Campaign

你可能會想,這麼大費周章估計數字有意義嗎?我認為站在可規模化的角度是非常值得的,思考問題與設計流程大概1小時,寫完這篇需要用的Python code大概也只花了我另外1小時,但這套方法以後我只要載入不同App的資料與行銷數據就能重複使用。

那麼以上,就是這次對於量化嶄新策略與點子的介紹,我們透過相似替代效果的公開資料來估計新策略,建立迴歸模型來捕捉App的排名與下載量關係,並可以搭配其他資料分析做這件事情用ROI的效果分析。

歡迎想學習Python資料科學、商業分析、金融知識的人一起交流!本部落格的內容全部都是基於「分享」的實作、理論兼顧文章,希望能夠幫助到所有對資料科學領域有興趣的人們,長期關注可按左手邊的Follow!若喜歡我在 Medium 的內容,可以拍個手(Claps)這邊想做個實驗,好讓我知道你/妳喜不喜歡這篇文章:
拍 10 下:簽個到,表示支持(謝謝鼓勵!)
拍 20 下:想要我多寫「商管相關」
拍 30 下:想要我多寫「資科相關」
拍 50 下:我有你這讀者寫這篇也心滿意足了!

敬請期待下一篇!或是您也可以逛逛我的其他資料科學文章,到我的主頁置頂文章獲得良好的目錄體驗。

Python資料科學系列:

如果想跟著我實作資料科學,開始寫程式必知必會基礎系列:

--

--

戴士翔 | Dennis Dai
Finformation當資料科學遇上財務金融

外商分析顧問,Ex- Apple Data Scientist,曾在FMCG巨頭/日商管顧/MBB管顧/高成長電商從事商業分析與數位轉型,專注分享管顧、商業、數據分析的思考。分析/演講/合作歡迎來信:dennis.dai.1011@gmail.com