Návod

Thompsonovo vzorkování a rozdělení rozpočtu na konkrétních číslech

Každé rozhodnutí o rozpočtu volí mezi tím, co už víte, a tím, co se ještě můžete dozvědět. Thompsonovo vzorkování (Thompson sampling) tuto volbu řeší pomocí pravděpodobností: každý kanál dostane rozpočet podle toho, jakou má šanci být ze všech nejlepší. Tento návod vysvětluje metodu, propočítá příklad s čísly z pipeline a věnuje se apriorním rozdělením, vážení hodnotou a situacím, kdy metoda přestává fungovat.

9 min čtení · Publikováno 2. října 2026 · Zkontrolováno 2. října 2026

Obr. 01 Tři křivky, po jedné pro LinkedIn, Google Ads a Meta, ukazují, jak nejistá je návratnost každého kanálu. V každém kole se z každé křivky vylosuje jedna hodnota, nejvyšší hodnota získá rozpočet daného kola a křivka vítěze se s přibývajícími výsledky zužuje.

Jaký problém řeší mnohoruký bandita

Máte tři kanály a pevný rozpočet. Jeden zatím přinesl nejvíc pipeline, druhý vypadá slibně, ale má málo dat, a třetí měl jeden dobrý měsíc. Když vsadíte všechno na lídra, nikdy nezjistíte, jestli nejsou ostatní lepší. Když rozpočet rozdělíte rovným dílem, budete dál platit za kanály, proti kterým už data mluví.

Tomu se říká problém mnohorukého bandity (multi-armed bandit), podle řady hracích automatů s neznámými výplatami. Každý kanál je jedna páka. Každé vynaložené euro je jedno zatažení, které něco vynese a zároveň vám o dané páce něco prozradí. Cílem je za celé období získat co nejvíc a přitom se dozvědět dost na to, abyste mohli změnit názor, když se důkazy obrátí.

Thompsonovo vzorkování, které poprvé popsal William R. Thompson v roce 1933, na to odpovídá jediným pravidlem: každá páka dostane takový podíl provozu, jaká je pravděpodobnost, že je nejlepší, vzhledem ke všemu, co jste dosud pozorovali. Páky, o kterých si nejste jistí, se dál zkoušejí, protože jejich nejistota připouští, že mohou být nejlepší. Páky, které jsou zjevně horší, postupně samy vypadnou.

Jak to funguje

  1. Popište každý kanál rozdělením

    U každého kanálu udržujte pravděpodobnostní rozdělení jeho skutečné míry návratnosti, například počtu obchodních příležitostí na 1 000 € výdajů. Kanál s dostatkem dat má úzké rozdělení, nový kanál široké.

  2. Z každého vylosujte jednu hodnotu

    Z rozdělení každého kanálu vylosujte jeden náhodný vzorek. Široké rozdělení občas vydá vysokou hodnotu, i když má nízký průměr, a právě tak dostanou šanci kanály, o kterých toho víte málo.

  3. Vsaďte na nejvyšší hodnotu

    Kolo vyhraje kanál s nejvyšší vylosovanou hodnotou. Losování zopakujte několik tisíckrát a spočítejte, jak často který kanál vyhrál: tento podíl je pravděpodobnost, že je nejlepší.

  4. Rozdělte rozpočet a vyhodnoťte výsledky

    Rozdělte rozpočet podle těchto pravděpodobností, nechte ho proinvestovat, zaznamenejte, co přinesl, a každé rozdělení aktualizujte novými výsledky.

  5. Opakujte

    S přibývajícími daty se rozdělení zužují a rozpočet se soustředí na kanály, které dál přinášejí výsledky. Pokud lídr začne ztrácet, ostatní kanály opět vyhrávají víc losování.

Rozdělení, na kterých metoda stojí

Pro míry, jako je míra prokliku nebo konverzní poměr, se obvykle používá beta rozdělení: začnete s Beta(α, β), každý úspěch přičtete k α a každý neúspěch k β. Pro počty na jednotku výdajů, například obchodní příležitosti na 1 000 €, plní stejnou roli gama rozdělení: jeho tvarový parametr roste s každou konverzí a parametr míry s každou jednotkou výdajů. Obě aktualizace jsou prosté sčítání, takže model je levný na provoz a snadno se kontroluje.

Pokud chcete vážit penězi místo počtů, vynásobte míru druhým rozdělením pro hodnotu jedné konverze, například pipeline na jednu obchodní příležitost. Kanál pak vyhraje losování, když je součin jeho vylosované míry a vylosované hodnoty nejvyšší.

Základní myšlenka v kódu

// Each arm has a Gamma posterior for opportunities per €1,000
// and a Gamma posterior for pipeline value per opportunity.
function probabilityBest(arms, draws = 10000) {
  const wins = arms.map(() => 0);
  for (let d = 0; d < draws; d++) {
    let best = 0;
    let bestValue = 0;
    arms.forEach((arm, i) => {
      const rate = sampleGamma(arm.shape, 1 / arm.rate);
      const value = sampleGamma(arm.valueShape, arm.valueMean / arm.valueShape);
      if (rate * value > bestValue) {
        bestValue = rate * value;
        best = i;
      }
    });
    wins[best] += 1;
  }
  return wins.map((w) => w / draws);
}

// Every arm keeps a floor so nothing stops learning;
// the rest of the budget follows the probability of being best.
function shares(pBest, floor = 0.05) {
  const spare = 1-floor * pBest.length;
  return pBest.map((p) => floor + spare * p);
}

Zjednodušeno z kódu, kterým Demander rozděluje rozpočet. sampleGamma(shape, scale) losuje z gama rozdělení; obsahuje ji každá statistická knihovna.

Propočítaný příklad

Tři kanály a posledních 30 dní, obchodní příležitosti a jejich hodnota v pipeline pocházejí z CRM. Čísla jsou ilustrativní, zvolená tak, aby ukázala vliv vážení hodnotou.

KanálVýdajePříležitostiPipelinePipeline na 1 €
LinkedIn12 000 €6180 000 €15,00 €
Google Ads9 000 €5100 000 €11,11 €
Meta4 000 €115 000 €3,75 €

Apriorní rozdělení: 0,4 obchodní příležitosti na 1 000 € s váhou dvou pozorovaných příležitostí. Aposteriorní rozdělení: LinkedIn Gamma(8, 17) s průměrem 0,47, Google Ads Gamma(7, 14) s průměrem 0,50, Meta Gamma(3, 9) s průměrem 0,33. Hodnota pipeline na jednu příležitost se stejným způsobem stahuje ke společnému průměru 24 583 €.

Co ukáže 200 000 losování

KanálŠance být nejlepší podle příležitostíŠance být nejlepší podle pipelinePodíl rozpočtu s minimem 5 %
LinkedIn38 %57 %53,5 %
Google Ads47 %30 %30,8 %
Meta15 %13 %15,7 %

Podle počtu příležitostí vychází nejlépe Google Ads, protože má nejvyšší míru. Při vážení hodnotou pipeline vyhrává LinkedIn víc než polovinu losování, protože jeho příležitosti mají vyšší hodnotu. Meta má jedinou příležitost, a přesto vyhraje zhruba každé osmé losování: s tak málo daty může být nejlepším kanálem a minimální podíl jí zajistí dost peněz na to, aby se to ukázalo.

Jak zvolit apriorní rozdělení

Apriorní rozdělení (prior) vyjadřuje, co model předpokládá, než dorazí vaše vlastní data. Nejvíc na něm záleží v prvních týdnech a u malých kanálů.

  1. 01

    Vyjděte z benchmarku

    Ploché apriorní rozdělení považuje konverzní poměr 50 % za stejně pravděpodobný jako 1 %. Vycentrujte ho na hodnotu, které kanál u tohoto typu kampaně obvykle dosahuje. Demander ho odvozuje z benchmarků platforem: míru přechodu z prokliku na lead vydělí cenou za proklik a upraví podle fáze funnelu.

  2. 02

    Nedávejte mu velkou váhu

    Dejte apriornímu rozdělení váhu jen několika pozorování. Demander při rozdělování rozpočtu používá dvě pseudokonverze, takže zhruba týden skutečných dat je převáží. Těžké apriorní rozdělení vás chrání před šumem, ale model pak jen pomalu rozpozná kanál, který je opravdu dobrý.

  3. 03

    Nové reklamy stahujte k průměru kampaně

    U reklam v jedné kampani znamená apriorní rozdělení na úrovni společné míry kampaně, že nová reklama začíná na průměru, a ne v extrému, a pár set šťastných prvních zobrazení z ní neudělá vítěze. Demander používá jeden pseudoúspěch na úrovni společné míry.

Proč vážit hodnotou pipeline

Reklamní platformy optimalizují na konverze, které vidí, obvykle na vyplněné formuláře. V B2B ale cena za lead a hodnota leadu často ukazují opačným směrem: nejlevnější leady obvykle přicházejí z publik, která nakupují jen zřídka. Bandita, který počítá leady, odmění kanál s nejvíce vyplněnými formuláři bez ohledu na to, co se s nimi stane v obchodě.

Počítat obchodní příležitosti je lepší a vážit každou z nich hodnotou v pipeline ještě lepší, jak ukazuje příklad. Vznik obchodní příležitosti je dobrá událost k učení: nastává několik týdnů po prokliku, nese hodnotu z CRM a je dost častá na to, aby podle ní šlo řídit týdenní rozpočty. Tržby z vyhraných obchodů jsou přesnější signál, ale přicházejí příliš pozdě a příliš zřídka, než aby podle nich šlo cokoli řídit z týdne na týden.

Hodnota přichází nerovnoměrně. Jeden velký obchod dokáže z kanálu na celé čtvrtletí udělat hvězdu. Když hodnotu na jednu příležitost modelujete jako samostatné rozdělení stažené ke společnému průměru, jediný extrém nepřevezme kontrolu nad rozpočtem. Dokud není zaznamenaná žádná hodnota, optimalizujte na konverze; Demander mezi oběma režimy přepíná automaticky.

Co přidává produkční verze

Učebnicová verze dává rozpočet každého losování jedinému vítězi. Skutečné rozpočty mají klesající výnosy: dvojnásobné výdaje na kampaň jen zřídka přinesou dvojnásobný výsledek. Demander modeluje denní výsledek každé kampaně jako θ × výdaje^0,7, takže dvojnásobné výdaje přinesou zhruba 1,62násobek výsledku. Pro každé losování spočítá nejlepší rozdělení celého rozpočtu podle těchto křivek a průměr těchto rozdělení přes tisíce losování určí cílový stav.

Každá kampaň se pak k cíli posune jen zčásti, úměrně tomu, jak jednoznačné jsou důkazy, takže dvě kampaně, které od sebe nejde rozlišit, si rozpočet nepřehazují při každém běhu. Změny pod 5 % nebo pod jednu jednotku měny se vynechávají. Limit denní změny rozpočtu (ve výchozím nastavení 20 %) omezuje každý posun, kampaně s méně než sedmi dny dat si ponechají alespoň 5 % celku, a pokud nastavíte maximální cenu za akvizici, žádná kampaň nedostane víc rozpočtu, dokud je její cena za akvizici s pravděpodobností vyšší než 80 % nad tímto limitem.

Každý návrh nese svá čísla: očekávané konverze nebo hodnotu při současném rozpočtu, mezní návratnost ve srovnání se zbytkem portfolia a pravděpodobnost, že vyšší rozpočet pomůže. Pak prochází mantinely jako každá jiná změna a vaše úroveň autonomie rozhodne, jestli se provede, nebo počká na vás.

Kde Thompsonovo vzorkování přestává fungovat

  1. 01

    Zpožděná zpětná vazba

    Výsledky v B2B přicházejí týdny po výdajích. Model se učí jen z toho, co už je zaznamenané, takže kanál, jehož obchodní příležitosti teprve vznikají, vypadá hůř, než ve skutečnosti je. Učte model na nejranější fázi, která předpovídá tržby, a kanály s dlouhým cyklem posuzujte v delších oknech.

  2. 02

    Malá čísla

    Při několika obchodních příležitostech měsíčně zůstávají rozdělení dlouho široká. Metoda se i tak chová rozumně, jen se pohybuje pomalu. Minimální výdaje a počet zobrazení, než se reklama vyhodnotí (v Demanderu výchozí 30 € a 1 000 zobrazení), zabrání tomu, aby reagovala na šum.

  3. 03

    Trh, který se mění

    Základní model předpokládá, že skutečná míra každého kanálu zůstává stejná. Sezónnost, ofenzíva konkurence nebo únava kreativ tento předpoklad narušují. Pomůže, když místo celé historie použijete nedávné okno a únavu kreativ kontrolujete zvlášť.

  4. 04

    Co se model učí, určuje atribuce

    Bandita optimalizuje na podíl na zásluhách, který mu dodáte. Pokud atribuce podle poslední interakce přisoudí každou obchodní příležitost vyhledávání názvu značky, bandita bude financovat vyhledávání názvu značky. Viz přehled atribučních modelů.

  5. 05

    Přírůstek změří jen test

    Kanál, který oslovuje lidi, kteří by koupili tak jako tak, vypadá dobře v každé metodě, která se učí z pozorovaných výsledků. Jen test s kontrolní skupinou (holdout), při kterém část publika reklamu neuvidí, změří, co kanál skutečně přidal.

Časté otázky

Je Thompsonovo vzorkování lepší než rovnoměrné rozdělení rozpočtu?

V průměru ano: vynaloží méně peněz na kanály, proti kterým už data mluví, a přitom dál testuje ty nejisté. V prvním týdnu nebo dvou se díky lehkému apriornímu rozdělení a minimálnímu podílu na průzkum stejně chová skoro jako rovnoměrné rozdělení.

Kolik dat potřebuje, než začne přesouvat rozpočet?

Přesouvá ho od prvního dne, ale opatrně. Při širokých rozděleních vyhrává každý kanál přiměřený podíl losování, takže rozdělení zůstává blízko rovnoměrnému. V Demanderu jsou přesuny rozpočtu navíc omezené limitem denní změny rozpočtu a reklama potřebuje 30 € výdajů a 1 000 zobrazení, než se začne porovnávat s ostatními.

Lze ho používat na konverze místo pipeline?

Ano. Vynechte rozdělení hodnoty a metoda bude počítat konverze. Demander to dělá, dokud není zaznamenaná žádná hodnota konverzí, a jakmile nějaká existuje, začne používat hodnotu.

Nahrazuje Demander bidding samotných platforem?

Thompsonovo vzorkování rozhoduje, kolik dostane každá kampaň; bidding rozhoduje, jak se tyto peníze uvnitř kampaně použijí. U každé kampaně si můžete ponechat automatický bidding platformy, nebo nechat Demander nastavovat nabídky podle hodnoty pipeline. V obou případech offline konverze, které Demander posílá zpět, platformu učí, které prokliky se proměnily v pipeline.

Podívejte se, jaký plán vznikne pro váš produkt

Zadejte adresu webu. Zhruba za minutu uvidíte profil produktu, dvě persony, sdělení, funnel a tři kreativy. Zbytek plánu vám zůstane po registraci.

Zdarma a bez platební karty. Demander projde veřejné stránky webu a ukáže vaše persony, sdělení, funnel a první kreativy. Celý plán si ponecháte po registraci.