[{"data":1,"prerenderedAt":1009},["ShallowReactive",2],{"article-alternates":3,"article-\u002Ffr\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p":12},{"i18nKey":4,"paths":5},"gaming-002-2026-07",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11},"\u002Fde\u002Fgaming\u002Fbayesian-preisoptimierung-mobile-f2p","\u002Fen\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p","\u002Fes\u002Fgaming\u002Foptimizacion-bayesiana-de-precios-f2p-mobile","\u002Ffr\u002Fgaming\u002Foptimisation-tarifaire-bayesienne-f2p-mobile","\u002Fit\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p","\u002Fru\u002Fgaming\u002Fbayesovskaya-optimizatsiya-tseny-v-mobilnom-f2p",{"_path":13,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":1003,"_id":1004,"_source":1005,"_file":1006,"_stem":1007,"_extension":1008},"\u002Ffr\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p","gaming",false,"","Optimisation tarifaire Bayésienne en F2P mobile","Optimisez les tests de price ladder IAP via estimation posterior et modélisation par segment. Stratégie de tarification basée sur les données.","2026-07-22",[21,22,23,24,25],"f2p-monetization","bayesian-optimization","iap-pricing","mobile-gaming","data-driven-pricing",9,"Roibase",{"type":29,"children":30,"toc":992},"root",[31,47,54,59,77,88,94,127,144,161,168,191,197,229,253,274,730,747,753,778,783,788,794,799,804,853,859,881,892,897,903,932,949,977,981,986],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36,39,45],{"type":37,"value":38},"text","Dans les jeux mobiles F2P, les décisions tarifaires reposent souvent sur des hypothèses ou des références « tarifaires du marché ». Un pack starter à 0,99 $, un tier moyen à 4,99 $, un bundle whale à 99,99 $ — cette price ladder est figée dans la plupart des jeux. Or chaque jeu possède une structure de cohortes, un mix géographique et une perception de valeur distincts. L'optimisation tarifaire Bayésienne vous permet de modéliser ces différences via une distribution de probabilité ",{"type":32,"tag":40,"props":41,"children":42},"em",{},[43],{"type":37,"value":44},"posterior",{"type":37,"value":46}," et de découvrir le point tarifaire optimal dans chaque segment. Au lieu d'un test A\u002FB classique, construire un système d'apprentissage continu peut améliorer votre taux de conversion IAP de 15 à 40 %.",{"type":32,"tag":48,"props":49,"children":51},"h2",{"id":50},"pourquoi-lapproche-bayésienne-surpasse-les-tests-ab-classiques",[52],{"type":37,"value":53},"Pourquoi l'approche Bayésienne surpasse les tests A\u002FB classiques",{"type":32,"tag":33,"props":55,"children":56},{},[57],{"type":37,"value":58},"Un test A\u002FB classique fonctionne sur une hypothèse fixe : il compare deux prix, par exemple 4,99 $ versus 5,99 $, et attend d'atteindre 95 % de confiance avant de déclarer un gagnant. Cette approche pose deux problèmes : premièrement, pendant la durée du test, le trafic est divisé de moitié et la variante sous-performante continue à être servie aux utilisateurs (coût d'opportunité). Deuxièmement, une fois le test terminé, vous n'avez qu'une décision binaire « A ou B » — vous n'apprenez rien sur les valeurs intermédiaires ou les différences segment-spécifiques.",{"type":32,"tag":33,"props":60,"children":61},{},[62,64,69,71,75],{"type":37,"value":63},"L'optimisation Bayésienne démarre avec une distribution ",{"type":32,"tag":40,"props":65,"children":66},{},[67],{"type":37,"value":68},"prior",{"type":37,"value":70}," (par exemple « le prix pourrait être uniformément distribué entre 3 $ et 7 $ »), ajoute chaque donnée de conversion au ",{"type":32,"tag":40,"props":72,"children":73},{},[74],{"type":37,"value":44},{"type":37,"value":76}," et met à jour continuellement la distribution de probabilité. De cette manière, des algorithmes comme Thompson Sampling acheminent dynamiquement le trafic vers la variante gagnante — le revenu total est maximisé pendant la durée du test. Par exemple, un test Bayésien sur 10 jours génère 8 à 12 % de revenu supplémentaire, car les points tarifaires sous-optimaux reçoivent un trafic minimal.",{"type":32,"tag":33,"props":78,"children":79},{},[80,82,86],{"type":37,"value":81},"De plus, le modèle Bayésien ne vous dit pas seulement « quel prix a gagné », mais « ce prix a 87 % de probabilité d'être optimal ». Cette information accélère l'itération : même à 60 % de confiance, vous pouvez mettre en production un prix et lancer un nouveau test, car la distribution ",{"type":32,"tag":40,"props":83,"children":84},{},[85],{"type":37,"value":44},{"type":37,"value":87}," porte déjà suffisamment d'information.",{"type":32,"tag":48,"props":89,"children":91},{"id":90},"architecture-de-prior-segment-centrée-pour-les-tests-de-price-ladder-iap",[92],{"type":37,"value":93},"Architecture de prior segment-centrée pour les tests de price ladder IAP",{"type":32,"tag":33,"props":95,"children":96},{},[97,99,103,105,111,113,118,120,125],{"type":37,"value":98},"Dans les jeux F2P, tous les utilisateurs ne sont pas équivalents. Bien identifier vos segments de dépenses renforce le ",{"type":32,"tag":40,"props":100,"children":101},{},[102],{"type":37,"value":68},{"type":37,"value":104}," du modèle Bayésien. Segmentation type : ",{"type":32,"tag":106,"props":107,"children":108},"strong",{},[109],{"type":37,"value":110},"minnows",{"type":37,"value":112}," (lifetime spend \u003C 10 $), ",{"type":32,"tag":106,"props":114,"children":115},{},[116],{"type":37,"value":117},"dolphins",{"type":37,"value":119}," (10 $ à 100 $), ",{"type":32,"tag":106,"props":121,"children":122},{},[123],{"type":37,"value":124},"whales",{"type":37,"value":126}," (> 100 $). Chaque segment possède une élasticité tarifaire différente — les minnows se convertissent même pour un pack à 0,99 $, tandis que les whales achètent le bundle à 99,99 $ sans regarder le prix.",{"type":32,"tag":33,"props":128,"children":129},{},[130,132,136,138,142],{"type":37,"value":131},"Pour construire une distribution ",{"type":32,"tag":40,"props":133,"children":134},{},[135],{"type":37,"value":68},{"type":37,"value":137}," par segment, vous avez besoin de données historiques. Par exemple, si votre segment minnow affiche un taux de conversion IAP moyen de 3,2 % entre 0,99 $ et 1,99 $, utilisez 1,49 $ comme prior mean et 0,50 $ comme sigma (hypothèse de distribution normale). Pour le segment whale, si le taux de conversion reste plat entre 49,99 $ et 149,99 $, un ",{"type":32,"tag":40,"props":139,"children":140},{},[141],{"type":37,"value":68},{"type":37,"value":143}," uniforme est plus approprié — ce qui reflète l'hypothèse « les whales sont insensibles au prix » dans votre modèle.",{"type":32,"tag":33,"props":145,"children":146},{},[147,149,153,155,159],{"type":37,"value":148},"L'avantage du ",{"type":32,"tag":40,"props":150,"children":151},{},[152],{"type":37,"value":68},{"type":37,"value":154}," segment-spécifique est qu'il évite l'apprentissage cross-segment. Un test A\u002FB classique mélange tous les utilisateurs dans un même pool : si les whales convertissent aussi bien sur la variante à bas prix, cela peut masquer le prix optimal pour les minnows. Le modèle Bayésien met à jour le ",{"type":32,"tag":40,"props":156,"children":157},{},[158],{"type":37,"value":44},{"type":37,"value":160}," séparément pour chaque segment, ce qui révèle des prix optimaux segment-spécifiques — par exemple 1,49 $ pour les minnows, 79,99 $ pour les whales.",{"type":32,"tag":162,"props":163,"children":165},"h3",{"id":164},"ajustement-du-prior-en-fonction-de-la-géographie",[166],{"type":37,"value":167},"Ajustement du prior en fonction de la géographie",{"type":32,"tag":33,"props":169,"children":170},{},[171,173,177,179,183,185,189],{"type":37,"value":172},"La parité de pouvoir d'achat diffère radicalement entre la Tier-1 (US, UK, JP) et les marchés émergents (BR, TR, IN). Un pack à 4,99 $ semble « bon marché » aux États-Unis, tandis que le même prix (environ ₺150 en Turquie) relève du segment moyen-supérieur. Pour normaliser la distribution ",{"type":32,"tag":40,"props":174,"children":175},{},[176],{"type":37,"value":68},{"type":37,"value":178}," par géographie, utilisez les données ARPU locales. Par exemple, si l'ARPU quotidien IAP est 0,42 $ aux États-Unis et 0,18 $ en Turquie, normalisez le ",{"type":32,"tag":40,"props":180,"children":181},{},[182],{"type":37,"value":68},{"type":37,"value":184}," mean par ce ratio (0,18 \u002F 0,42 = 43 %). Le modèle teste alors la même price ladder relative dans chaque géographie, en intégrant la différence absolue dans le ",{"type":32,"tag":40,"props":186,"children":187},{},[188],{"type":37,"value":68},{"type":37,"value":190},".",{"type":32,"tag":48,"props":192,"children":194},{"id":193},"estimation-posterior-et-implémentation-de-thompson-sampling",[195],{"type":37,"value":196},"Estimation posterior et implémentation de Thompson Sampling",{"type":32,"tag":33,"props":198,"children":199},{},[200,202,206,208,212,214,221,223,227],{"type":37,"value":201},"Le moteur runtime du modèle Bayésien est l'estimation ",{"type":32,"tag":40,"props":203,"children":204},{},[205],{"type":37,"value":44},{"type":37,"value":207},". À chaque impression IAP (affichage d'offre), vous échantillonnez depuis la distribution ",{"type":32,"tag":40,"props":209,"children":210},{},[211],{"type":37,"value":44},{"type":37,"value":213}," actuelle (par exemple, si la distribution est Beta, utilisez ",{"type":32,"tag":215,"props":216,"children":218},"code",{"className":217},[],[219],{"type":37,"value":220},"np.random.beta(alpha, beta)",{"type":37,"value":222},"). Vous montrez au utilisateur le prix correspondant à cet échantillon. Si l'utilisateur achète, vous incrémentez alpha += 1 ; s'il refuse, beta += 1 — le ",{"type":32,"tag":40,"props":224,"children":225},{},[226],{"type":37,"value":44},{"type":37,"value":228}," se met à jour.",{"type":32,"tag":33,"props":230,"children":231},{},[232,234,239,241,245,247,251],{"type":37,"value":233},"Thompson Sampling utilise ce mécanisme pour router le trafic. Pour chaque variante, il échantillonne une ",{"type":32,"tag":40,"props":235,"children":236},{},[237],{"type":37,"value":238},"reward expectation",{"type":37,"value":240}," depuis le ",{"type":32,"tag":40,"props":242,"children":243},{},[244],{"type":37,"value":44},{"type":37,"value":246}," et sélectionne la variante avec la plus haute récompense attendue. Durant les premiers jours, toutes les variantes reçoivent un trafic équitable (exploration), puis le trafic se concentre vers la variante gagnante (exploitation). L'équilibre repose non pas sur epsilon, mais sur la variance ",{"type":32,"tag":40,"props":248,"children":249},{},[250],{"type":37,"value":44},{"type":37,"value":252}," — autrement dit, une variante avec variance faible (confiance élevée) accumule davantage de trafic.",{"type":32,"tag":33,"props":254,"children":255},{},[256,258,264,266,272],{"type":37,"value":257},"Pour l'implémentation pratique, vous pouvez utiliser ",{"type":32,"tag":215,"props":259,"children":261},{"className":260},[],[262],{"type":37,"value":263},"scipy.stats.beta",{"type":37,"value":265}," ou ",{"type":32,"tag":215,"props":267,"children":269},{"className":268},[],[270],{"type":37,"value":271},"pymc3",{"type":37,"value":273}," en Python. Un bloc de code simple :",{"type":32,"tag":275,"props":276,"children":280},"pre",{"className":277,"code":278,"language":279,"meta":16,"style":16},"language-python shiki shiki-themes github-dark","import numpy as np\nfrom scipy.stats import beta\n\n# Prior : alpha=1, beta=1 (uniforme)\nalpha_a, beta_a = 1, 1  # Variante A (4,99 $)\nalpha_b, beta_b = 1, 1  # Variante B (5,99 $)\n\ndef select_variant():\n    sample_a = np.random.beta(alpha_a, beta_a)\n    sample_b = np.random.beta(alpha_b, beta_b)\n    return \"A\" if sample_a > sample_b else \"B\"\n\ndef update_posterior(variant, converted):\n    global alpha_a, beta_a, alpha_b, beta_b\n    if variant == \"A\":\n        if converted:\n            alpha_a += 1\n        else:\n            beta_a += 1\n    else:\n        if converted:\n            alpha_b += 1\n        else:\n            beta_b += 1\n","python",[281],{"type":32,"tag":215,"props":282,"children":283},{"__ignoreMap":16},[284,312,335,345,355,390,420,428,448,465,483,528,536,554,568,596,610,629,642,659,672,684,701,713],{"type":32,"tag":285,"props":286,"children":289},"span",{"class":287,"line":288},"line",1,[290,296,302,307],{"type":32,"tag":285,"props":291,"children":293},{"style":292},"--shiki-default:#F97583",[294],{"type":37,"value":295},"import",{"type":32,"tag":285,"props":297,"children":299},{"style":298},"--shiki-default:#E1E4E8",[300],{"type":37,"value":301}," numpy ",{"type":32,"tag":285,"props":303,"children":304},{"style":292},[305],{"type":37,"value":306},"as",{"type":32,"tag":285,"props":308,"children":309},{"style":298},[310],{"type":37,"value":311}," np\n",{"type":32,"tag":285,"props":313,"children":315},{"class":287,"line":314},2,[316,321,326,330],{"type":32,"tag":285,"props":317,"children":318},{"style":292},[319],{"type":37,"value":320},"from",{"type":32,"tag":285,"props":322,"children":323},{"style":298},[324],{"type":37,"value":325}," scipy.stats ",{"type":32,"tag":285,"props":327,"children":328},{"style":292},[329],{"type":37,"value":295},{"type":32,"tag":285,"props":331,"children":332},{"style":298},[333],{"type":37,"value":334}," beta\n",{"type":32,"tag":285,"props":336,"children":338},{"class":287,"line":337},3,[339],{"type":32,"tag":285,"props":340,"children":342},{"emptyLinePlaceholder":341},true,[343],{"type":37,"value":344},"\n",{"type":32,"tag":285,"props":346,"children":348},{"class":287,"line":347},4,[349],{"type":32,"tag":285,"props":350,"children":352},{"style":351},"--shiki-default:#6A737D",[353],{"type":37,"value":354},"# Prior : alpha=1, beta=1 (uniforme)\n",{"type":32,"tag":285,"props":356,"children":358},{"class":287,"line":357},5,[359,364,369,375,380,385],{"type":32,"tag":285,"props":360,"children":361},{"style":298},[362],{"type":37,"value":363},"alpha_a, beta_a ",{"type":32,"tag":285,"props":365,"children":366},{"style":292},[367],{"type":37,"value":368},"=",{"type":32,"tag":285,"props":370,"children":372},{"style":371},"--shiki-default:#79B8FF",[373],{"type":37,"value":374}," 1",{"type":32,"tag":285,"props":376,"children":377},{"style":298},[378],{"type":37,"value":379},", ",{"type":32,"tag":285,"props":381,"children":382},{"style":371},[383],{"type":37,"value":384},"1",{"type":32,"tag":285,"props":386,"children":387},{"style":351},[388],{"type":37,"value":389},"  # Variante A (4,99 $)\n",{"type":32,"tag":285,"props":391,"children":393},{"class":287,"line":392},6,[394,399,403,407,411,415],{"type":32,"tag":285,"props":395,"children":396},{"style":298},[397],{"type":37,"value":398},"alpha_b, beta_b ",{"type":32,"tag":285,"props":400,"children":401},{"style":292},[402],{"type":37,"value":368},{"type":32,"tag":285,"props":404,"children":405},{"style":371},[406],{"type":37,"value":374},{"type":32,"tag":285,"props":408,"children":409},{"style":298},[410],{"type":37,"value":379},{"type":32,"tag":285,"props":412,"children":413},{"style":371},[414],{"type":37,"value":384},{"type":32,"tag":285,"props":416,"children":417},{"style":351},[418],{"type":37,"value":419},"  # Variante B (5,99 $)\n",{"type":32,"tag":285,"props":421,"children":423},{"class":287,"line":422},7,[424],{"type":32,"tag":285,"props":425,"children":426},{"emptyLinePlaceholder":341},[427],{"type":37,"value":344},{"type":32,"tag":285,"props":429,"children":431},{"class":287,"line":430},8,[432,437,443],{"type":32,"tag":285,"props":433,"children":434},{"style":292},[435],{"type":37,"value":436},"def",{"type":32,"tag":285,"props":438,"children":440},{"style":439},"--shiki-default:#B392F0",[441],{"type":37,"value":442}," select_variant",{"type":32,"tag":285,"props":444,"children":445},{"style":298},[446],{"type":37,"value":447},"():\n",{"type":32,"tag":285,"props":449,"children":450},{"class":287,"line":26},[451,456,460],{"type":32,"tag":285,"props":452,"children":453},{"style":298},[454],{"type":37,"value":455},"    sample_a ",{"type":32,"tag":285,"props":457,"children":458},{"style":292},[459],{"type":37,"value":368},{"type":32,"tag":285,"props":461,"children":462},{"style":298},[463],{"type":37,"value":464}," np.random.beta(alpha_a, beta_a)\n",{"type":32,"tag":285,"props":466,"children":468},{"class":287,"line":467},10,[469,474,478],{"type":32,"tag":285,"props":470,"children":471},{"style":298},[472],{"type":37,"value":473},"    sample_b ",{"type":32,"tag":285,"props":475,"children":476},{"style":292},[477],{"type":37,"value":368},{"type":32,"tag":285,"props":479,"children":480},{"style":298},[481],{"type":37,"value":482}," np.random.beta(alpha_b, beta_b)\n",{"type":32,"tag":285,"props":484,"children":486},{"class":287,"line":485},11,[487,492,498,503,508,513,518,523],{"type":32,"tag":285,"props":488,"children":489},{"style":292},[490],{"type":37,"value":491},"    return",{"type":32,"tag":285,"props":493,"children":495},{"style":494},"--shiki-default:#9ECBFF",[496],{"type":37,"value":497}," \"A\"",{"type":32,"tag":285,"props":499,"children":500},{"style":292},[501],{"type":37,"value":502}," if",{"type":32,"tag":285,"props":504,"children":505},{"style":298},[506],{"type":37,"value":507}," sample_a ",{"type":32,"tag":285,"props":509,"children":510},{"style":292},[511],{"type":37,"value":512},">",{"type":32,"tag":285,"props":514,"children":515},{"style":298},[516],{"type":37,"value":517}," sample_b ",{"type":32,"tag":285,"props":519,"children":520},{"style":292},[521],{"type":37,"value":522},"else",{"type":32,"tag":285,"props":524,"children":525},{"style":494},[526],{"type":37,"value":527}," \"B\"\n",{"type":32,"tag":285,"props":529,"children":531},{"class":287,"line":530},12,[532],{"type":32,"tag":285,"props":533,"children":534},{"emptyLinePlaceholder":341},[535],{"type":37,"value":344},{"type":32,"tag":285,"props":537,"children":539},{"class":287,"line":538},13,[540,544,549],{"type":32,"tag":285,"props":541,"children":542},{"style":292},[543],{"type":37,"value":436},{"type":32,"tag":285,"props":545,"children":546},{"style":439},[547],{"type":37,"value":548}," update_posterior",{"type":32,"tag":285,"props":550,"children":551},{"style":298},[552],{"type":37,"value":553},"(variant, converted):\n",{"type":32,"tag":285,"props":555,"children":557},{"class":287,"line":556},14,[558,563],{"type":32,"tag":285,"props":559,"children":560},{"style":292},[561],{"type":37,"value":562},"    global",{"type":32,"tag":285,"props":564,"children":565},{"style":298},[566],{"type":37,"value":567}," alpha_a, beta_a, alpha_b, beta_b\n",{"type":32,"tag":285,"props":569,"children":571},{"class":287,"line":570},15,[572,577,582,587,591],{"type":32,"tag":285,"props":573,"children":574},{"style":292},[575],{"type":37,"value":576},"    if",{"type":32,"tag":285,"props":578,"children":579},{"style":298},[580],{"type":37,"value":581}," variant ",{"type":32,"tag":285,"props":583,"children":584},{"style":292},[585],{"type":37,"value":586},"==",{"type":32,"tag":285,"props":588,"children":589},{"style":494},[590],{"type":37,"value":497},{"type":32,"tag":285,"props":592,"children":593},{"style":298},[594],{"type":37,"value":595},":\n",{"type":32,"tag":285,"props":597,"children":599},{"class":287,"line":598},16,[600,605],{"type":32,"tag":285,"props":601,"children":602},{"style":292},[603],{"type":37,"value":604},"        if",{"type":32,"tag":285,"props":606,"children":607},{"style":298},[608],{"type":37,"value":609}," converted:\n",{"type":32,"tag":285,"props":611,"children":613},{"class":287,"line":612},17,[614,619,624],{"type":32,"tag":285,"props":615,"children":616},{"style":298},[617],{"type":37,"value":618},"            alpha_a ",{"type":32,"tag":285,"props":620,"children":621},{"style":292},[622],{"type":37,"value":623},"+=",{"type":32,"tag":285,"props":625,"children":626},{"style":371},[627],{"type":37,"value":628}," 1\n",{"type":32,"tag":285,"props":630,"children":632},{"class":287,"line":631},18,[633,638],{"type":32,"tag":285,"props":634,"children":635},{"style":292},[636],{"type":37,"value":637},"        else",{"type":32,"tag":285,"props":639,"children":640},{"style":298},[641],{"type":37,"value":595},{"type":32,"tag":285,"props":643,"children":645},{"class":287,"line":644},19,[646,651,655],{"type":32,"tag":285,"props":647,"children":648},{"style":298},[649],{"type":37,"value":650},"            beta_a ",{"type":32,"tag":285,"props":652,"children":653},{"style":292},[654],{"type":37,"value":623},{"type":32,"tag":285,"props":656,"children":657},{"style":371},[658],{"type":37,"value":628},{"type":32,"tag":285,"props":660,"children":662},{"class":287,"line":661},20,[663,668],{"type":32,"tag":285,"props":664,"children":665},{"style":292},[666],{"type":37,"value":667},"    else",{"type":32,"tag":285,"props":669,"children":670},{"style":298},[671],{"type":37,"value":595},{"type":32,"tag":285,"props":673,"children":675},{"class":287,"line":674},21,[676,680],{"type":32,"tag":285,"props":677,"children":678},{"style":292},[679],{"type":37,"value":604},{"type":32,"tag":285,"props":681,"children":682},{"style":298},[683],{"type":37,"value":609},{"type":32,"tag":285,"props":685,"children":687},{"class":287,"line":686},22,[688,693,697],{"type":32,"tag":285,"props":689,"children":690},{"style":298},[691],{"type":37,"value":692},"            alpha_b ",{"type":32,"tag":285,"props":694,"children":695},{"style":292},[696],{"type":37,"value":623},{"type":32,"tag":285,"props":698,"children":699},{"style":371},[700],{"type":37,"value":628},{"type":32,"tag":285,"props":702,"children":704},{"class":287,"line":703},23,[705,709],{"type":32,"tag":285,"props":706,"children":707},{"style":292},[708],{"type":37,"value":637},{"type":32,"tag":285,"props":710,"children":711},{"style":298},[712],{"type":37,"value":595},{"type":32,"tag":285,"props":714,"children":716},{"class":287,"line":715},24,[717,722,726],{"type":32,"tag":285,"props":718,"children":719},{"style":298},[720],{"type":37,"value":721},"            beta_b ",{"type":32,"tag":285,"props":723,"children":724},{"style":292},[725],{"type":37,"value":623},{"type":32,"tag":285,"props":727,"children":728},{"style":371},[729],{"type":37,"value":628},{"type":32,"tag":33,"props":731,"children":732},{},[733,735,739,741,745],{"type":37,"value":734},"Cette boucle simple converge après 10 000 impressions avec une marge d'erreur de 2 % par rapport au taux de conversion réel (sous l'hypothèse Beta ",{"type":32,"tag":40,"props":736,"children":737},{},[738],{"type":37,"value":68},{"type":37,"value":740}," correcte). En production, vous pouvez mettre à jour quotidiennement les paramètres du ",{"type":32,"tag":40,"props":742,"children":743},{},[744],{"type":37,"value":44},{"type":37,"value":746}," via BigQuery + Airflow et lancer de nouvelles cohortes avec la distribution actuelle.",{"type":32,"tag":48,"props":748,"children":750},{"id":749},"multi-armed-bandit-versus-modèle-bayésien-complet",[751],{"type":37,"value":752},"Multi-armed bandit versus modèle Bayésien complet",{"type":32,"tag":33,"props":754,"children":755},{},[756,758,763,765,770,772,776],{"type":37,"value":757},"Dans la littérature d'optimisation tarifaire Bayésienne, deux approches dominent : ",{"type":32,"tag":106,"props":759,"children":760},{},[761],{"type":37,"value":762},"multi-armed bandit",{"type":37,"value":764}," (MAB) et ",{"type":32,"tag":106,"props":766,"children":767},{},[768],{"type":37,"value":769},"régression Bayésienne complète",{"type":37,"value":771},". L'approche MAB est Thompson Sampling tel que décrit ci-dessus — elle définit les variantes tarifaires discrètes (par exemple, 5 points tarifaires) en tant que bras, chacun avec son propre ",{"type":32,"tag":40,"props":773,"children":774},{},[775],{"type":37,"value":44},{"type":37,"value":777},". Avantages : implémentation simple, empreinte mémoire légère, décisions en temps réel.",{"type":32,"tag":33,"props":779,"children":780},{},[781],{"type":37,"value":782},"La régression Bayésienne complète modélise le prix comme une variable continue et lie la probabilité de conversion au prix via régression logistique ou processus Gaussien. Cette approche offre davantage de flexibilité — par exemple, elle peut apprendre des relations non-linéaires comme « la conversion baisse exponentiellement avec le prix ». Inconvénient : l'entraînement du modèle nécessite BigQuery + une stack Python, les décisions ne peuvent pas être en temps réel (prédictions batch).",{"type":32,"tag":33,"props":784,"children":785},{},[786],{"type":37,"value":787},"Pour les jeux F2P, MAB suffit généralement, car la price ladder est déjà discrète (0,99 $, 2,99 $, 4,99 $, 9,99 $ etc.). La régression Bayésienne complète intervient lorsque vous avez besoin de tarification dynamique — offrir un prix unique à chaque utilisateur — mais cette pratique est interdite par la plupart des politiques d'app store (discrimination tarifaire). Un compromis : MAB par segment avec régression Bayésienne complète intra-segment. Vous trouvez ainsi le point tarifaire optimal dans le segment whale (par exemple, entre 79,99 $ et 149,99 $) via une fonction continue.",{"type":32,"tag":48,"props":789,"children":791},{"id":790},"uplift-de-revenu-et-effet-ltv-de-cohorte",[792],{"type":37,"value":793},"Uplift de revenu et effet LTV de cohorte",{"type":32,"tag":33,"props":795,"children":796},{},[797],{"type":37,"value":798},"Le vrai ROI de l'optimisation tarifaire Bayésienne réside dans le LTV de cohorte. Dans la première semaine du test, le taux de conversion augmente de 8 %, mais le LTV à D30 de ces utilisateurs s'élève de 15 à 20 %. Pourquoi ? Parce que le point tarifaire optimal s'aligne précisément avec la perception de valeur de l'utilisateur — ni trop bas (chute de valeur perçue), ni trop haut (friction). Ces utilisateurs sont plus enclins à acheter un deuxième pack après le premier IAP.",{"type":32,"tag":33,"props":800,"children":801},{},[802],{"type":37,"value":803},"Un exemple concret : dans un RPG mid-core, le modèle Bayésien a proposé 3,49 $ à la place du pack starter à 4,99 $ (segment minnow, géographie US). Le taux de conversion a augmenté de 22 % à 28 % (+27 % en termes relatifs) la première semaine. La rétention D7 est restée stable (42 %), mais l'ARPU à D30 est passé de 2,18 $ à 2,51 $ (+15 %). Pourquoi ? Le prix de 3,49 $ a abaissé le seuil psychologique « Je peux investir dans ce jeu », réduisant la friction avant le second achat. Le LTV total de la cohorte a augmenté de 8,90 $ à 10,20 $ (+15 %).",{"type":32,"tag":33,"props":805,"children":806},{},[807,809,815,816,822,823,829,830,836,837,843,845,851],{"type":37,"value":808},"Pour mesurer cet effet, l'analyse de cohorte est obligatoire. Dans BigQuery, suivez les colonnes ",{"type":32,"tag":215,"props":810,"children":812},{"className":811},[],[813],{"type":37,"value":814},"user_id",{"type":37,"value":379},{"type":32,"tag":215,"props":817,"children":819},{"className":818},[],[820],{"type":37,"value":821},"install_date",{"type":37,"value":379},{"type":32,"tag":215,"props":824,"children":826},{"className":825},[],[827],{"type":37,"value":828},"first_iap_price",{"type":37,"value":379},{"type":32,"tag":215,"props":831,"children":833},{"className":832},[],[834],{"type":37,"value":835},"d7_revenue",{"type":37,"value":379},{"type":32,"tag":215,"props":838,"children":840},{"className":839},[],[841],{"type":37,"value":842},"d30_revenue",{"type":37,"value":844},". Marquez le variant Bayésien via ",{"type":32,"tag":215,"props":846,"children":848},{"className":847},[],[849],{"type":37,"value":850},"experiment_group",{"type":37,"value":852},", puis comparez les courbes LTV avec le groupe contrôle. Les tests de significativité sont précoces dans les 7 premiers jours ; la confiance augmente à D30.",{"type":32,"tag":48,"props":854,"children":856},{"id":855},"idées-fausses-courantes-et-compromis",[857],{"type":37,"value":858},"Idées fausses courantes et compromis",{"type":32,"tag":33,"props":860,"children":861},{},[862,864,868,870,874,876,880],{"type":37,"value":863},"Une idée fausse répandue : l'optimisation tarifaire Bayésienne « gagne immédiatement ». En réalité, la convergence du ",{"type":32,"tag":40,"props":865,"children":866},{},[867],{"type":37,"value":44},{"type":37,"value":869}," exige un minimum de 5 000 à 10 000 impressions par segment. Pour les jeux à faible trafic (DAU \u003C 50k), la durée du test s'allonge à 4-6 semaines. Pendant ce laps de temps, votre pipeline de données (logging d'impression, suivi de conversion, mise à jour du ",{"type":32,"tag":40,"props":871,"children":872},{},[873],{"type":37,"value":44},{"type":37,"value":875},") doit fonctionner de manière fiable — un seul bug corrompt tout le ",{"type":32,"tag":40,"props":877,"children":878},{},[879],{"type":37,"value":44},{"type":37,"value":190},{"type":32,"tag":33,"props":882,"children":883},{},[884,886,890],{"type":37,"value":885},"Un deuxième compromis concerne la granularité des segments. Si vous définissez des segments très fins (par exemple, « L5-10, US, Android, whale »), chaque segment reçoit un nombre d'impressions insuffisant et le ",{"type":32,"tag":40,"props":887,"children":888},{},[889],{"type":37,"value":44},{"type":37,"value":891}," reste à variance élevée. Règle pratique : chaque segment doit générer au moins 200 impressions IAP par jour. En dessous, regroupez les segments (par exemple, US + UK + CA deviennent un seul segment « Tier-1 EN »).",{"type":32,"tag":33,"props":893,"children":894},{},[895],{"type":37,"value":896},"Un troisième point concerne l'effet psychologique d'un changement de price ladder. Si l'utilisateur a vu 4,99 $ hier et voit 3,99 $ aujourd'hui, il perçoit une « remise » et convertit davantage — mais cet effet n'est pas durable. Pendant le test Bayésien, gardez la plage tarifaire étroite (±20 % maximum) et évitez les changements radicaux (par exemple, 4,99 $ → 1,99 $).",{"type":32,"tag":48,"props":898,"children":900},{"id":899},"scale-et-automatisation-post-test",[901],{"type":37,"value":902},"Scale et automatisation post-test",{"type":32,"tag":33,"props":904,"children":905},{},[906,908,912,914,918,920,924,926,930],{"type":37,"value":907},"L'optimisation tarifaire Bayésienne n'est pas un test unique, mais un système d'apprentissage continu. Une fois le test terminé, vous déployez le prix gagnant en production, mais vous conservez la distribution ",{"type":32,"tag":40,"props":909,"children":910},{},[911],{"type":37,"value":44},{"type":37,"value":913}," pour l'utiliser comme ",{"type":32,"tag":40,"props":915,"children":916},{},[917],{"type":37,"value":68},{"type":37,"value":919}," pour les nouvelles cohortes. Par exemple, pendant la saison des fêtes Q4, l'ARPU augmente de 30 % — le ",{"type":32,"tag":40,"props":921,"children":922},{},[923],{"type":37,"value":44},{"type":37,"value":925}," du trimestre précédent devient le nouveau ",{"type":32,"tag":40,"props":927,"children":928},{},[929],{"type":37,"value":68},{"type":37,"value":931},", et le modèle converge rapidement vers le nouvel optimum (warm start au lieu de cold start).",{"type":32,"tag":33,"props":933,"children":934},{},[935,937,941,943,947],{"type":37,"value":936},"Vous pouvez automatiser le processus via Airflow + BigQuery + Firebase Remote Config. Chaque jour, un DAG Airflow lit les paramètres du ",{"type":32,"tag":40,"props":938,"children":939},{},[940],{"type":37,"value":44},{"type":37,"value":942}," depuis BigQuery et écrit les nouvelles variantes tarifaires dans Firebase Remote Config. Le client SDK récupère la configuration, affiche l'offre IAP. L'événement de conversion est enregistré dans BigQuery, le ",{"type":32,"tag":40,"props":944,"children":945},{},[946],{"type":37,"value":44},{"type":37,"value":948}," se met à jour — la boucle se ferme. La première implémentation prend 2-3 semaines, puis elle fonctionne sans intervention manuelle.",{"type":32,"tag":33,"props":950,"children":951},{},[952,954,958,960,964,966,975],{"type":37,"value":953},"L'étape finale : si vous souhaitez scaler le modèle Bayésien sur plusieurs jeux, créez un « pricing service » centralisé. Chaque jeu envoie ses métadonnées (genre, mix géographique, ARPU), et le service propose une distribution ",{"type":32,"tag":40,"props":955,"children":956},{},[957],{"type":37,"value":68},{"type":37,"value":959}," adaptée au profil du jeu. De cette manière, les nouveaux jeux évitent le problème de cold start et exploitent le transfer learning à partir du ",{"type":32,"tag":40,"props":961,"children":962},{},[963],{"type":37,"value":44},{"type":37,"value":965}," des jeux similaires. Le service de ",{"type":32,"tag":967,"props":968,"children":972},"a",{"href":969,"rel":970},"https:\u002F\u002Fwww.roibase.com.tr\u002Ffr\u002Faso",[971],"nofollow",[973],{"type":37,"value":974},"Optimisation d'App Store",{"type":37,"value":976}," de Roibase intègre ce type de pipeline d'apprentissage cross-app avec les tests de créatifs ASO — le même framework Bayésien s'applique aux variantes de page produit.",{"type":32,"tag":978,"props":979,"children":980},"hr",{},[],{"type":32,"tag":33,"props":982,"children":983},{},[984],{"type":37,"value":985},"L'optimisation tarifaire Bayésienne est l'",{"type":32,"tag":987,"props":988,"children":989},"style",{},[990],{"type":37,"value":991},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":337,"depth":337,"links":993},[994,995,998,999,1000,1001,1002],{"id":50,"depth":314,"text":53},{"id":90,"depth":314,"text":93,"children":996},[997],{"id":164,"depth":337,"text":167},{"id":193,"depth":314,"text":196},{"id":749,"depth":314,"text":752},{"id":790,"depth":314,"text":793},{"id":855,"depth":314,"text":858},{"id":899,"depth":314,"text":902},"markdown","content:fr:gaming:bayesian-price-optimization-mobile-f2p.md","content","fr\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p.md","fr\u002Fgaming\u002Fbayesian-price-optimization-mobile-f2p","md",1785967483877]