如何做一次完美的 ABTest抒钱?

本文首發(fā)于 vivo互聯(lián)網(wǎng)技術(shù) 微信公眾號
鏈接:https://mp.weixin.qq.com/s/mO5MdwG7apD6RzDhFwZhog
作者:DuZhimin

越來越多的公司都在嘗試 ABTest,要么是自己搭建系統(tǒng)卓囚,要么依賴于第三方的系統(tǒng)幸海。那么在我們進(jìn)行ABTest的時候诫肠,必備的基礎(chǔ)知識有哪些?該如何一步一步的進(jìn)行AB實(shí)驗(yàn)?zāi)芈叮勘疚膶⒏鶕?jù) AB 實(shí)驗(yàn)的流程帶領(lǐng)大家一窺究竟重荠。

一、引言

在互聯(lián)網(wǎng)公司的業(yè)務(wù)發(fā)展過程中虚茶,用戶增長是永恒的主題戈鲁,因?yàn)闆]有增長也就沒有發(fā)展,所以在業(yè)務(wù)發(fā)展的早期產(chǎn)品迭代速度往往是越快越好嘹叫,總之一句話:“怎么快怎么來”婆殿。

而當(dāng)業(yè)務(wù)發(fā)展到一定階段后,野蠻生長的紅利逐漸消退罩扇,用戶增長空間在可見策略下變得不那么明顯的情況下婆芦,如何合理地規(guī)劃產(chǎn)品迭代策略就顯得尤為重要了,而具體如何判斷產(chǎn)品策略是否有效喂饥,往往就需要數(shù)據(jù)說話消约,其結(jié)果決定了該產(chǎn)品或策略的生命力以及與之配套的各類資源的調(diào)配,畢竟我們都不會將資源浪費(fèi)在無效的產(chǎn)品和策略上员帮。

那么通過什么樣的工具或手段才能確保數(shù)據(jù)驅(qū)動策略的有效落地和實(shí)施呢或粮?很多公司都是通過ABTest及建設(shè)與之相適配的實(shí)驗(yàn)基礎(chǔ)設(shè)施平臺來實(shí)現(xiàn)這樣的目標(biāo)。

2019年我們搭建了vivo的ABTest實(shí)驗(yàn)平臺(霍金實(shí)驗(yàn)平臺)集侯,到目前為止臺累計接入業(yè)務(wù)方14個業(yè)務(wù)方進(jìn)行了40個實(shí)驗(yàn)被啼,在與業(yè)務(wù)方溝通過程中發(fā)現(xiàn)我們對ABTest的理解還不夠,所以在這里我們一起學(xué)習(xí)一下相關(guān)的知識點(diǎn)棠枉,加深對ABTest的理解浓体。

ABTest通常是比較產(chǎn)品的某一個變量在不同的版本里面設(shè)置不同的值帶來的作用以及影響(比如一個頁面用紅色的按鈕、另一個用藍(lán)色的按鈕)辈讶,其中版本A是當(dāng)前正在使用的版本命浴,而版本B是改進(jìn)版。在進(jìn)行實(shí)驗(yàn)時一般是比較實(shí)驗(yàn)組和對照組在某些指標(biāo)上是否存在差異,當(dāng)然更多時候是看實(shí)驗(yàn)組相比對照組某個指標(biāo)表現(xiàn)是否更好生闲。這樣的對比在統(tǒng)計學(xué)上叫做兩樣本假設(shè)檢驗(yàn)媳溺,即實(shí)驗(yàn)組和對照組為兩樣本,假設(shè)檢驗(yàn)的原假設(shè)H0:實(shí)驗(yàn)組和對照組無顯著差異碍讯;備擇假設(shè)H1:實(shí)驗(yàn)組和對照組存在顯著差異悬蔽。

更多時候我們關(guān)注的比例類的數(shù)值,如點(diǎn)擊率捉兴、轉(zhuǎn)化率蝎困、留存率等。這類比例類數(shù)值的特點(diǎn)是倍啥,對于某一個用戶(樣本中的每一個樣本點(diǎn))其結(jié)果只有兩種禾乘,“成功”或“未成功”;對于整體來說虽缕,其數(shù)值為結(jié)果是“成功”的用戶數(shù)所占比例始藕。如轉(zhuǎn)化率,對于某個用戶只有成功轉(zhuǎn)化或未成功轉(zhuǎn)化氮趋。比例類數(shù)值的假設(shè)檢驗(yàn)在統(tǒng)計學(xué)中叫做兩樣本比例假設(shè)檢驗(yàn)伍派。

下面我們以賬號設(shè)備登錄率實(shí)驗(yàn)來進(jìn)行講解。

二凭峡、實(shí)驗(yàn)前準(zhǔn)備

1拙已、做實(shí)驗(yàn)之前,我們先來回答下面幾個問題:

1.1摧冀、你進(jìn)行實(shí)驗(yàn)是想證明什么倍踪?

答:我想通過改變設(shè)備登錄按鈕的顏色來提高賬號的設(shè)備登錄率

1.2、你的對照組和實(shí)驗(yàn)組將是什么樣子索昂?

答:對照組就是目前的樣子建车,請看下圖,登錄的按鈕是藍(lán)色的背景椒惨,實(shí)驗(yàn)組我想把登錄的按鈕背景改成橙色缤至,從而看看設(shè)備登錄率是否有提升。

image

【完美第一步:確定實(shí)驗(yàn)組和對照組】

1.3康谆、如何避免混雜因素领斥?

(混雜因素就是研究對象的個體差異,它們不是你試圖進(jìn)行比較的因素沃暗,但卻最終導(dǎo)致分析結(jié)果的敏感度變差月洛,比如不同城市的人,不同年齡段的人孽锥,性別……嚼黔,進(jìn)行實(shí)驗(yàn)的時候要盡量避免混雜因素對結(jié)果的影響)

答:你這里問的就是我們在做實(shí)驗(yàn)的時候细层,如何確定對照組和實(shí)驗(yàn)組的樣本吧,就是要使實(shí)驗(yàn)組和對照組的樣本個體差異盡量相同唬涧。如何分配每個實(shí)驗(yàn)方案的用戶霍金實(shí)驗(yàn)平臺已經(jīng)幫我們做了疫赎,我了解到實(shí)驗(yàn)平臺可以支持很多種劃分用戶的策略(唯一標(biāo)識符哈希,指定特定用戶碎节,根據(jù)用戶標(biāo)簽……)捧搞,我們準(zhǔn)備采用唯一標(biāo)識符哈希的策略,它是從請求的用戶中隨機(jī)選擇來避免混雜因素的極好辦法:因?yàn)榭赡艹蔀榛祀s因素的那些因素最終在對照組和實(shí)驗(yàn)組中具有同票同權(quán)钓株。

下圖是實(shí)驗(yàn)平臺支持的分流策略:

image

【完美第二步:排除混雜因素】

2实牡、樣本量

做A/B實(shí)驗(yàn)需要多少樣本陌僵?這是我們在做實(shí)驗(yàn)的時候都必須要回答的問題轴合。(其實(shí)對于互聯(lián)網(wǎng)的應(yīng)用來說,流量都非常大碗短,樣本量很少是實(shí)驗(yàn)中需要考慮的因素受葛,不過這里我們還是要講一講,因?yàn)檫€涉及到一些其他的概念偎谁,我們也需要了解了解)

2.1总滩、為何要計算樣本量?

理論上巡雨,樣本量越多越好:

  • 從直觀上看闰渔,當(dāng)樣本數(shù)量很少的時候,實(shí)驗(yàn)容易被新的樣本點(diǎn)帶偏铐望,造成了實(shí)驗(yàn)結(jié)果不穩(wěn)定冈涧,難以得出確信的結(jié)論。相反的正蛙,樣本數(shù)量變多督弓,實(shí)驗(yàn)則有了更多的“證據(jù)”,實(shí)驗(yàn)的“可靠性”也就越強(qiáng)乒验。

在現(xiàn)實(shí)操作中愚隧,樣本量應(yīng)該越少越好,這是因?yàn)椋?/p>

  1. 流量有限:大公司因?yàn)橛脩魯?shù)量足夠多锻全,不用過于精打細(xì)算狂塘,同時跑幾十個甚至上百個實(shí)驗(yàn)也沒問題。但小公司一共就那么點(diǎn)流量鳄厌,還要開發(fā)這么多新產(chǎn)品荞胡。在保證不同實(shí)驗(yàn)的樣本不重疊的情況下,產(chǎn)品開發(fā)的速度會大大降低部翘。

  2. 試錯成本大:假設(shè)我們拿50%用的戶來跑實(shí)驗(yàn)硝训,但不幸的是,一周后結(jié)果表明實(shí)驗(yàn)組的總收入下降了20%。算下來窖梁,你的實(shí)驗(yàn)在一周內(nèi)給整個公司帶來了10%的損失赘风。這個試錯成本未免高了一些。

2.2纵刘、置信度和檢測效能

要搞清這兩個概念邀窃,我們了解一下A/B實(shí)驗(yàn)的基本知識。

首先假哎,A/B測試的兩個假設(shè):

原假設(shè)(Null hypothesis, 也叫H0):我們希望通過實(shí)驗(yàn)結(jié)果推翻的假設(shè)瞬捕。在我們的例子里面,原假設(shè)可以表述為“橙色按鈕和藍(lán)色按鈕的設(shè)備登錄率一樣”舵抹。
備擇假設(shè)(Alternative hypothesis, 也叫H1):我們希望通過實(shí)驗(yàn)結(jié)果驗(yàn)證的假設(shè)肪虎。在我們的例子里面,可以表述為“橙色按鈕和藍(lán)色按鈕的設(shè)備登錄率不一樣”惧蛹。

A/B測試的本質(zhì)扇救,就是通過實(shí)驗(yàn)數(shù)據(jù)做出判斷:H0到底正不正確?那么就會出現(xiàn)下面四種情況:

image
image

1香嗓、設(shè)備登錄率無區(qū)別(H0正確)迅腔,實(shí)驗(yàn)分析結(jié)果卻說有區(qū)別:

由于判斷錯了,我們把這類錯誤叫做第一類錯誤(Type I error)靠娱,我們把第一類錯誤出現(xiàn)的概率用α表示沧烈。置信度 = 1-α。第一類錯誤意味著新的產(chǎn)品對業(yè)務(wù)其實(shí)沒有提升像云,我們卻錯誤的認(rèn)為有提升锌雀。這樣的分析結(jié)果,不僅浪費(fèi)了公司的資源苫费,而且可能對產(chǎn)品進(jìn)行了負(fù)向引導(dǎo)汤锨。

所以,在做A/B測試的時候百框,我們希望第一類錯誤越低越好闲礼。實(shí)際操作中,我們?nèi)藶榈膶Ζ炼艘粋€上限铐维,一般是5%柬泽。也就是說,在做實(shí)驗(yàn)的時候嫁蛇,我們都會保證第一類錯誤出現(xiàn)的概率永遠(yuǎn)不超過5%锨并。

2、設(shè)備登錄率有區(qū)別(H1正確)睬棚,實(shí)驗(yàn)分析結(jié)果卻說沒區(qū)別:

我們的判斷又錯了第煮,這類錯誤叫做第二類錯誤(Type II error)解幼,用β表示。我們一般定義第二類錯誤β不超過20%包警。

3撵摆、情況2和情況3是兩種判斷正確的場景,我們把做出這類正確判斷的概率叫做檢測效能害晦。

我們的做實(shí)驗(yàn)的根本目的是為了檢測出橙色按鈕和藍(lán)色按鈕的設(shè)備登錄率的差別特铝。如果檢測效能低,證明即使新產(chǎn)品真的有效果壹瘟,實(shí)驗(yàn)也不能檢測出來鲫剿。換句話說,我們的實(shí)驗(yàn)無卵用稻轨。

根據(jù)條件概率的定義灵莲,檢測效能 = 1 -β = 80%。

對兩類錯誤上限的選瘸握摺(α是5%笆呆,β是20%)中我們可以了解到A/B實(shí)驗(yàn)的重要理念:寧肯砍掉4個好的產(chǎn)品,也不應(yīng)該讓1個不好的產(chǎn)品上線粱挡。

2.3、樣本量的計算公式

大部分情況下俄精,我們不需要詳細(xì)了解樣本量的計算公式询筏,這里給出來公式,大家一起學(xué)習(xí)一下竖慧。

image
image

上面式子中p1我們稱為基礎(chǔ)值嫌套,是實(shí)驗(yàn)關(guān)注的關(guān)鍵指標(biāo)現(xiàn)在的數(shù)值(對照組);p2我們稱為目標(biāo)值圾旨,是希望通過實(shí)驗(yàn)將其改善至的水平踱讨;α和β分別稱為第一類錯誤概率和第二類錯誤概率,一般分別取0.05和0.2砍的;Z為正態(tài)分布的分位數(shù)函數(shù) 痹筛。

因?yàn)?ABTest一般至少2組,所以實(shí)驗(yàn)所需樣本量為2n廓鞠。

2.4帚稠、這么復(fù)雜的公式我不會算,咋辦床佳?

如今霍金實(shí)驗(yàn)平臺已經(jīng)提供了計算樣本量的小工具滋早,只需要填入幾個數(shù)字就可以了:

image
image

說明:

當(dāng)前業(yè)務(wù)日常的比例(基線比率):比如當(dāng)前我們進(jìn)行的賬號設(shè)備登錄率實(shí)驗(yàn),那么這個基線比率就是當(dāng)前的設(shè)備登錄率砌们,比如15%杆麸。

期望提升的最小比率(最小可探測效應(yīng)):在我們的實(shí)驗(yàn)中搁进,我們選定期望提升的最小比率為5%。這意味著昔头,如果粉色按鈕真的提高了5%的設(shè)備登錄率拷获,我們希望實(shí)驗(yàn)?zāi)軌蛴凶銐虬盐諜z測出這個差別。

實(shí)驗(yàn)組數(shù):正常進(jìn)行AB實(shí)驗(yàn)的時候减细,就是兩個匆瓜,一個對照組,一個實(shí)驗(yàn)組未蝌。

【完美第三步:計算最小樣本量】

3驮吱、確定指標(biāo)

在進(jìn)行實(shí)驗(yàn)時一般是比較實(shí)驗(yàn)組和對照組在某些指標(biāo)上是否存在差異,當(dāng)然更多時候是看實(shí)驗(yàn)組相比對照組某個指標(biāo)表現(xiàn)是否更好萧吠。所以我們在進(jìn)行實(shí)驗(yàn)之前就應(yīng)該先確定好實(shí)驗(yàn)中需要需要對比的指標(biāo)左冬,更多時候我們關(guān)注的比例類的指標(biāo),如點(diǎn)擊率纸型、轉(zhuǎn)化率拇砰、留存率等。后續(xù)我們做實(shí)驗(yàn)的顯著性分析的時候狰腌,也是分析的比例類指標(biāo)除破。

【完美第四步:確定實(shí)驗(yàn)指標(biāo)】

4、埋點(diǎn)

當(dāng)我們確定了需要分析的具體指標(biāo)之后琼腔,就需要我們進(jìn)行埋點(diǎn)設(shè)計瑰枫,把相關(guān)的用戶行為收集起來,供后續(xù)的流程進(jìn)行數(shù)據(jù)分析丹莲,從而得出實(shí)驗(yàn)結(jié)論光坝。

對于 ABTest我們需要知道當(dāng)前用戶是處于對照組還是實(shí)驗(yàn)組,所以埋點(diǎn)中這些參數(shù)必須要有甥材。

目前霍金實(shí)驗(yàn)平臺通過服務(wù)端埋點(diǎn)技術(shù)盯另,支持業(yè)務(wù)方實(shí)驗(yàn)的時候埋點(diǎn)數(shù)據(jù)不上報用戶是處于實(shí)驗(yàn)組還是對照組的信息,但是建議還是業(yè)務(wù)方把用戶處于的方案信息埋進(jìn)去洲赵,這樣數(shù)據(jù)更準(zhǔn)確鸳惯,分析的結(jié)果更可靠。

【完美第五步:收集實(shí)驗(yàn)數(shù)據(jù)】

三板鬓、實(shí)驗(yàn)中觀察

1悲敷、觀察樣本量是否符合預(yù)期,比如實(shí)驗(yàn)組和對照組分流的流量是否均勻俭令,正常情況下后德,分流的數(shù)據(jù)不會相差太大,如果相差太大抄腔,就要分析哪里出現(xiàn)了問題瓢湃。

2理张、觀察用戶的行為埋點(diǎn)是否埋的正確,很多次實(shí)驗(yàn)之后绵患,我們發(fā)現(xiàn)埋點(diǎn)埋錯了雾叭。

四、實(shí)驗(yàn)后分析

1落蝙、當(dāng)我們做過 ABTest之后织狐,需要對數(shù)據(jù)進(jìn)行分析來確定本次實(shí)驗(yàn)的效果,這就需要進(jìn)行實(shí)驗(yàn)的顯著性分析筏勒,看看實(shí)驗(yàn)的顯著性差異移迫,如果結(jié)果不顯著,則不具備參考性管行。

2厨埋、顯著性差異是一個統(tǒng)計學(xué)名詞。它是統(tǒng)計學(xué)上對數(shù)據(jù)差異性的評價捐顷。在作結(jié)論時荡陷,通常情況下我們用 P>0.05 表示差異性不顯著;0.01<P<0.05 表示差異性顯著迅涮;P<0.01表示差異性極顯著废赞。

3、當(dāng)數(shù)據(jù)之間具有了顯著性差異逗柴,就說明參與比對的數(shù)據(jù)來自于具有差異的兩個不同總體蛹头,這種差異可能因參與比對的數(shù)據(jù)是來自不同實(shí)驗(yàn)對象群體,比如把中年人和老年人相比戏溺,也可能來自于實(shí)驗(yàn)處理對實(shí)驗(yàn)對象造成了****根本性狀改變(正是我們AB實(shí)驗(yàn)期望的),因而實(shí)驗(yàn)的數(shù)據(jù)會有顯著性差異屠尊。

4旷祸、下面給出比例類指標(biāo)顯著性計算公式,供大家參考(獨(dú)立樣本t檢驗(yàn)):要計算p值讼昆,我們需要先計算t值托享,公式如下:

image
image

計算出t值后,根據(jù)t值和自由度n =N1 + N2 - 2 將 t 值轉(zhuǎn)換成p值浸赫,
這里給出Excel的計算公式:p =Tdist(t,n,1)

5闰围、這么復(fù)雜的顯著性計算需要我們業(yè)務(wù)方來計算嗎?

答:不需要既峡,霍金實(shí)驗(yàn)平臺已經(jīng)支持實(shí)驗(yàn)指標(biāo)的顯著性計算

image

【完美第六步:指標(biāo)顯著性計算】

6羡榴、從3可知,顯著性差異不一定就代表實(shí)驗(yàn)是有效的运敢,可能是因?yàn)榛祀s因素導(dǎo)致的校仑,這就需要做實(shí)驗(yàn)樣本的進(jìn)一步分析忠售,確定是不是混雜因素的影響。

【完美第七步:確定顯著性根本原因】

7迄沫、最終通過分析稻扬,給出本次實(shí)驗(yàn)是否有效,如果有效那么本次實(shí)驗(yàn)帶給業(yè)務(wù)方的提升是多少的結(jié)論羊瘩。

【完美第八步:給出實(shí)驗(yàn)結(jié)論】

8泰佳、聽說霍金實(shí)驗(yàn)平臺將會支持方案分流數(shù)據(jù)實(shí)時查看和指標(biāo)數(shù)據(jù)實(shí)時查看 是嗎?

答:是的尘吗,是的逝她,應(yīng)該不會太久。

五摇予、總結(jié)

如何做一次完美的 ABTest汽绢?

1、確定對照組和實(shí)驗(yàn)組侧戴,最好是做單變量的實(shí)驗(yàn)宁昭,一次只改變一個變量。

2酗宋、分流時盡量排除混雜因素积仗,一般情況下采用隨機(jī)分流即可。

3蜕猫、檢查流量是否達(dá)到最小樣本量要求寂曹,達(dá)不到要求則沒法進(jìn)行后續(xù)的分析,實(shí)驗(yàn)結(jié)果不可信回右。

4隆圆、確定本次實(shí)驗(yàn)的對比指標(biāo),就是如果方案之間存在差別需要通過什么來衡量翔烁?

5渺氧、準(zhǔn)確收集用戶行為數(shù)據(jù),這就要求埋點(diǎn)必須正確蹬屹。

6侣背、分析指標(biāo)的顯著性,如果指標(biāo)不顯著則表示實(shí)驗(yàn)無效慨默。

7贩耐、確定引起顯著性的根本原因,排除混雜因素導(dǎo)致實(shí)驗(yàn)結(jié)果的顯著性厦取。

8潮太、最終給出實(shí)驗(yàn)結(jié)論:有效 or 無效

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒜胖,一起剝皮案震驚了整個濱河市消别,隨后出現(xiàn)的幾起案子抛蚤,更是在濱河造成了極大的恐慌,老刑警劉巖寻狂,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岁经,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛇券,警方通過查閱死者的電腦和手機(jī)缀壤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纠亚,“玉大人塘慕,你說我怎么就攤上這事〉侔” “怎么了图呢?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骗随。 經(jīng)常有香客問我蛤织,道長,這世上最難降的妖魔是什么鸿染? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任指蚜,我火速辦了婚禮,結(jié)果婚禮上涨椒,老公的妹妹穿的比我還像新娘摊鸡。我一直安慰自己,他們只是感情好蚕冬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布免猾。 她就那樣靜靜地躺著,像睡著了一般囤热。 火紅的嫁衣襯著肌膚如雪掸刊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天赢乓,我揣著相機(jī)與錄音,去河邊找鬼石窑。 笑死牌芋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的松逊。 我是一名探鬼主播躺屁,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼经宏!你這毒婦竟也來了犀暑?” 一聲冷哼從身側(cè)響起驯击,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耐亏,沒想到半個月后徊都,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡广辰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年暇矫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片择吊。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡李根,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出几睛,到底是詐尸還是另有隱情房轿,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布所森,位于F島的核電站囱持,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏必峰。R本人自食惡果不足惜洪唐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吼蚁。 院中可真熱鬧凭需,春花似錦、人聲如沸肝匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旗国。三九已至枯怖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間能曾,已是汗流浹背度硝。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寿冕,地道東北人蕊程。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像驼唱,于是被迫代替她去往敵國和親藻茂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容