[{"data":1,"prerenderedAt":542},["ShallowReactive",2],{"site-chrome-en-id":3,"site-chrome-en":-1,"site-chrome-th":-1,"glossary-term-en-id":287,"blog-categories-en-id":300,"article-glossary-en-id-\u002Fglossary\u002Fthompson-sampling":320,"og-copy-en-id":478,"og-posts-en-id-none":520,"glossary-related-en-id-thompson-sampling":521},{"id":4,"extension":5,"footer":6,"header":116,"indexFacets":202,"meta":243,"notFound":244,"stem":250,"ui":251,"__hash__":286},"chrome_en\u002Fen\u002Fchrome.yml","yml",{"columns":7,"legal":83,"quote":84,"askAi":87,"socials":103},[8,29,47,65],{"label":9,"children":10},"Product",[11,14,17,20,23,26],{"label":12,"to":13},"Ads optimization","\u002Fen-id\u002Fblog\u002Fads-optimization",{"label":15,"to":16},"Unit economics","\u002Fen-id\u002Fblog\u002Fprofit-margin",{"label":18,"to":19},"Agentic KAM","https:\u002F\u002Flearn.dataglasslabs.com\u002Fdocs\u002Fai-and-api\u002Fassistants",{"label":21,"to":22},"One-click deploy","https:\u002F\u002Flearn.dataglasslabs.com\u002Fdocs\u002Fgrowth\u002Factions\u002Faction-flow",{"label":24,"to":25},"Integrations","https:\u002F\u002Flearn.dataglasslabs.com\u002Fdocs\u002Foverview\u002Fget-started\u002Fsupported-platforms",{"label":27,"to":28},"Pricing","\u002Fen-id\u002Fpricing",{"label":30,"children":31},"Resources",[32,35,38,41,44],{"label":33,"to":34},"Blog","\u002Fen-id\u002Fblog",{"label":36,"to":37},"Customer stories","\u002Fen-id\u002Fcustomers",{"label":39,"to":40},"Research","\u002Fen-id\u002Fresearch",{"label":42,"to":43},"Glossary","\u002Fen-id\u002Fglossary",{"label":45,"to":46},"Docs","https:\u002F\u002Flearn.dataglasslabs.com\u002Fdocs",{"label":48,"children":49},"Company",[50,53,56,59,62],{"label":51,"to":52},"About","\u002Fen-id\u002Fcompany",{"label":54,"to":55},"Contact","\u002Fen-id\u002Fcontact",{"label":57,"to":58},"Book a demo","\u002Fen-id\u002Fbook-a-demo",{"label":60,"to":61},"Privacy","\u002Fen-id\u002Flegal\u002Fprivacy",{"label":63,"to":64},"Terms","\u002Fen-id\u002Flegal\u002Fterms",{"label":66,"children":67},"DataGlass for",[68,71,74,77,80],{"label":69,"to":70},"Agencies","\u002Fen-id\u002Ffor\u002Fagencies",{"label":72,"to":73},"Brands","\u002Fen-id\u002Ffor\u002Fbrands",{"label":75,"to":76},"Planners and optimizers","\u002Fen-id\u002Ffor\u002Fplanners",{"label":78,"to":79},"Managers and analysts","\u002Fen-id\u002Ffor\u002Fmanagers",{"label":81,"to":82},"Sellers and shop owners","\u002Fen-id\u002Ffor\u002Fsellers","© 2026 DataGlass Labs. All rights reserved.",{"text":85,"caption":86},"Measure what you keep, and then grow what you measure.","The DataGlass team",{"label":88,"prompt":89,"assistants":90},"Ask AI about DataGlass","I want to understand DataGlass, a decision engine for Shopee, Lazada and TikTok Shop sellers that optimizes ads, pricing and promotions for true profit. Use web search to read their website at https:\u002F\u002Fwww.dataglasslabs.com (with an agent-readable summary at https:\u002F\u002Fwww.dataglasslabs.com\u002Fllms.txt), then explain what DataGlass does, who it is for and how it differs from an analytics dashboard.",[91,95,99],{"label":92,"icon":93,"url":94},"ChatGPT","chatgpt","https:\u002F\u002Fchatgpt.com\u002F?prompt={prompt}",{"label":96,"icon":97,"url":98},"Claude","claude","https:\u002F\u002Fclaude.ai\u002Fnew?q={prompt}",{"label":100,"icon":101,"url":102},"Perplexity","perplexity","https:\u002F\u002Fwww.perplexity.ai\u002Fsearch?q={prompt}",[104,108,112],{"label":105,"icon":106,"to":107},"LinkedIn","i-lucide-linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fdataglass-labs",{"label":109,"icon":110,"to":111},"Facebook","i-lucide-facebook","https:\u002F\u002Fwww.facebook.com\u002Fdataglasslabsth",{"label":113,"icon":114,"to":115},"Instagram","i-lucide-instagram","https:\u002F\u002Fwww.instagram.com\u002Fdataglasslabs\u002F",{"links":117,"cta":196,"secondaryCta":199},[118,152,191,193,194,195],{"label":9,"to":119,"menu":120},"\u002Fen-id",{"layout":121,"heading":122,"cards":123,"groups":135,"footer":142},"cards","What DataGlass does",[124,128,132],{"label":125,"description":126,"to":13,"ui":127},"True profit ads optimization","Budgets, pacing and Target ROAS tuned for profit.","budget-tomorrow",{"label":129,"description":130,"to":16,"ui":131},"Unit economics breakdown","What you actually earn from every sale.","unit-economics",{"label":18,"description":133,"to":19,"motif":134},"An AI agent that knows your shops.",true,[136],{"label":137,"size":138,"links":139},"More","secondary",[140,141],{"label":21,"to":22},{"label":24,"to":25},[143,148],{"lead":144,"label":145,"icon":146,"to":147},"DataGlass v.2.6.","See what's new","i-lucide-box","https:\u002F\u002Flearn.dataglasslabs.com\u002Freleases",{"lead":149,"label":150,"icon":151,"to":37},"Read our","customer stories","i-lucide-book-open",{"label":30,"to":34,"menu":153},{"layout":154,"groups":155},"directory",[156,164,170,182],{"label":66,"size":157,"links":158},"primary",[159,160,161,162,163],{"label":69,"to":70},{"label":72,"to":73},{"label":75,"to":76},{"label":78,"to":79},{"label":81,"to":82},{"label":165,"size":157,"links":166},"Insights",[167,168,169],{"label":33,"to":34},{"label":36,"to":37},{"label":39,"to":40},{"label":171,"size":157,"links":172},"Learn",[173,174,177,180],{"label":45,"to":46},{"label":175,"to":176},"Use cases","https:\u002F\u002Flearn.dataglasslabs.com\u002Fuse-cases",{"label":178,"to":179},"Training","https:\u002F\u002Flearn.dataglasslabs.com\u002Ftraining",{"label":181,"to":147},"Changelog",{"label":183,"size":138,"links":184},"Support",[185,186,189],{"label":42,"to":43},{"label":187,"to":188},"Brand kit","\u002Fen-id\u002Fbrand",{"label":190,"to":55},"Contact us",{"label":192,"to":37},"Customers",{"label":27,"to":28},{"label":48,"to":52},{"label":54,"to":55},{"label":197,"to":198},"Start for free","https:\u002F\u002Fapp.dataglasslabs.com\u002Fsign-up",{"label":200,"to":201},"Sign in","https:\u002F\u002Fapp.dataglasslabs.com\u002Fsign-in",{"clear":203,"groups":204},"Clear filters",[205,218],{"key":206,"label":207,"options":208},"platforms","Platform",[209,212,215],{"value":210,"label":211},"shopee","Shopee",{"value":213,"label":214},"lazada","Lazada",{"value":216,"label":217},"tiktok","TikTok Shop",{"key":219,"label":220,"options":221},"format","Format",[222,225,228,231,234,237,240],{"value":223,"label":224},"guide","Guide",{"value":226,"label":227},"article","Article",{"value":229,"label":230},"comparison","Comparison",{"value":232,"label":233},"calculator","Calculator",{"value":235,"label":236},"paper","Paper",{"value":238,"label":239},"survey","Survey",{"value":241,"label":242},"dataset","Dataset",{},{"title":245,"description":246,"cta":247,"errorTitle":249},"Page not found","The page may have moved, or it never existed.",{"label":248,"to":119},"Back to home","Something went wrong","en\u002Fchrome",{"previous":252,"next":253,"pause":254,"play":255,"goTo":256,"expand":257,"close":258,"readMore":259,"learnMore":260,"seeAll":261,"menu":262,"back":263,"share":264,"shareOn":265,"copyLink":266,"copied":267,"onThisPage":268,"minRead":269,"sources":270,"viewMore":271,"searchPosts":272,"allPosts":273,"all":274,"filters":275,"search":276,"searchClose":277,"searchPlaceholder":278,"searchSuggested":279,"searchResults":280,"searchNoResults":281,"searchLoading":282,"relatedTitle":283,"mainNav":284,"footerNav":285},"Previous","Next","Pause","Play","Go to item","Expand","Close","Read more","Learn more","See all","Menu","Back","Share","Share on","Copy link","Link copied","On this page","{n} min read","Sources","View more","Search posts","All posts","All","Filters","Search","Close search","Search DataGlass","Suggested","Results","No results for","Loading","More to discover","Main","Footer","HZQSEulcpFGY0nWnUTNYhG2n06nO97XnUBc_pEVOFxo",{"id":288,"cta":289,"extension":5,"glossary":42,"meta":295,"related":296,"stem":297,"whatIs":298,"__hash__":299},"glossaryTerm_en\u002Fen\u002Fglossary-term.yml",{"headline":290,"description":291,"primaryCta":292,"secondaryCta":293},"Put this number to work on your own shops","See it computed from your orders, fees and ads, with a demo on your data.",{"label":57,"to":58},{"label":294,"to":28},"See pricing",{},"Related terms","en\u002Fglossary-term","What is {term}?","lxyPsyClqTqVxZhmfDihDsuAz7Al3t22gFHKeu2Lza8",[301,304,306,309,312,315,318],{"slug":302,"label":303},"profit","Profit",{"slug":305,"label":27},"pricing",{"slug":307,"label":308},"ads","Ads",{"slug":310,"label":311},"operations","Operations",{"slug":313,"label":314},"market","Market",{"slug":316,"label":317},"data-science","Data Science",{"slug":319,"label":48},"company",{"entry":321,"document":355,"toc":469},{"id":322,"title":323,"aliases":324,"category":316,"cta":325,"date":328,"description":329,"draft":330,"draftReason":324,"extension":331,"meta":332,"navigation":324,"ogImage":324,"path":333,"readMinutes":334,"related":335,"robots":324,"schemaOrg":324,"seo":341,"short":327,"sitemap":343,"sources":344,"stem":353,"updatedAt":324,"__hash__":354},"glossary_en\u002Fglossary\u002Fthompson-sampling.md","Thompson Sampling",null,{"title":326,"body":327},"See it on your own shop, free.","A way to keep learning about uncertain campaigns while still funding the proven ones — exploration without a fixed test budget.","2026-10-23","Thompson Sampling allocates budget by drawing from what is still uncertain, balancing exploration against exploitation. Why it protects new campaigns.",false,"md",{},"\u002Fglossary\u002Fthompson-sampling",4,[336,337,338,339,340],"bayesian-inference","recommendation-confidence","cvar","marginal-roas","probability-of-loss",{"title":342,"description":329},"What is Thompson Sampling? Exploration in Ads | DataGlass",{"loc":333},[345,349],{"title":346,"url":347,"note":348},"Russo, Van Roy, Kazerouni, Osband & Wen — A Tutorial on Thompson Sampling (arXiv:1707.02038)","https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.02038","The standard reference on posterior sampling for sequential decisions, including why sampling in proportion to uncertainty balances exploration against exploitation.",{"title":350,"url":351,"note":352},"Thompson sampling — overview","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FThompson_sampling","Background on the method, its origin as a solution to the multi-armed bandit problem, and its regret properties.","glossary\u002Fthompson-sampling","hJpJ8SMCv8h-WDd501Ro-LFIoTNo8mq9b8UOfBifYOw",{"frontmatter":356,"meta":363,"nodes":392},{"title":323,"description":329,"seo":357,"short":327,"category":316,"related":358,"date":328,"sources":359,"cta":362,"readMinutes":334},{"title":342,"description":329},[336,337,338,339,340],[360,361],{"title":346,"url":347,"note":348},{"title":350,"url":351,"note":352},{"title":326,"body":327},{"toc":364},{"title":365,"searchDepth":366,"depth":366,"links":367},"",2,[368,371,374,377,380,383,386,389],{"id":369,"depth":366,"text":370},"formula","Formula",{"id":372,"depth":366,"text":373},"example","Example",{"id":375,"depth":366,"text":376},"what-problem-does-exploration-solve","What problem does exploration solve?",{"id":378,"depth":366,"text":379},"why-can-a-single-draw-be-badly-wrong","Why can a single draw be badly wrong?",{"id":381,"depth":366,"text":382},"when-should-a-campaign-stop-exploring","When should a campaign stop exploring?",{"id":384,"depth":366,"text":385},"why-it-matters","Why it matters",{"id":387,"depth":366,"text":388},"in-dataglass","In DataGlass",{"id":390,"depth":366,"text":391},"where-this-shows-up","Where this shows up",[393,397,400,409,411,416,418,421,423,426,428,431,433,436,441,443,446,448],[394,395,396],"p",{},"Thompson Sampling is a strategy for making repeated decisions under uncertainty: instead of acting on the single best estimate, draw one plausible value at random from the range of things that could be true, and act as if that draw were correct. Repeat every cycle. Options the system is confident about get chosen consistently, because their range is narrow. Options it is unsure about get chosen sometimes, in proportion to how plausible it is that they are good — so they get tested without anyone reserving a test budget. Applied to advertising, it is how a system keeps funding proven campaigns while continuing to learn about new ones.",[398,399,370],"h2",{"id":369},[401,402,404],"pre",{"language":403},"text",[405,406,408],"code",{"class":407},"language-text","each cycle:\n  draw one plausible parameter set from the posterior\n  choose the action that would be best if that draw were true\n\nA narrow posterior → nearly the same action every time (exploit)\nA wide posterior   → varied actions across cycles (explore)",[398,410,373],{"id":372},[401,412,413],{"language":403},[405,414,415],{"class":407},"A new Shopee campaign with three days of data. Plausible daily order\nrates range from near zero to well above the account average.\n\nSome cycles draw a pessimistic value and it is funded at the floor.\nSome cycles draw an optimistic value and it is funded properly.\nAfter two weeks the range has narrowed and the funding stabilises\naround whatever the campaign actually is.",[398,417,376],{"id":375},[394,419,420],{},"The one where a system optimises itself into ignorance. Always funding the currently best-looking option means never gathering the evidence that would reveal a better one, and in advertising this bites hard, because a new campaign, product, or keyword always starts with a worse-looking record than an established one — it has no record. A purely greedy allocator therefore kills new campaigns before they have produced enough data to be judged, and slowly concentrates the entire budget on whatever happened to work first. Exploration is the correction, and the reason to do it by sampling rather than by reserving a fixed test budget is that sampling spends the exploration effort in proportion to how plausible it is that the uncertain option is actually good.",[398,422,379],{"id":378},[394,424,425],{},"Because a draw from a wide range can land anywhere in it. On a campaign with almost no data, consecutive cycles can produce wildly different implied optima — near zero one day, very high the next — and that is the method working as designed, not a malfunction. The danger is a system that reads one pessimistic draw as evidence and acts irreversibly on it. The design rule that follows is important: while a campaign is still in the exploring regime, a pessimistic draw is a reason to keep sampling at a floor budget, never a reason to shut it off permanently. Hard-stopping an under-observed campaign destroys the very information the method exists to gather.",[398,427,382],{"id":381},[394,429,430],{},"When its uncertainty has narrowed enough that the full distribution can be trusted, at which point acting on one random draw wastes information. Mature campaigns are better served by optimising against the whole outcome distribution — the expected result and its downside tail together — rather than against a single sampled scenario. Practically this means a system needs two regimes and a rule for graduating between them, usually based on how many periods of real performance data a campaign has accumulated. Applying the exploration regime to a mature campaign adds pointless variance; applying the mature regime to a new one kills it early.",[398,432,385],{"id":384},[394,434,435],{},"Every ad account faces the same trade-off between funding what is known to work and finding out what else might. Handled by instinct, it usually collapses into one of two failure modes: never testing anything new, or running perpetual tests that never conclude. Sampling in proportion to uncertainty resolves it automatically, and it is the reason a well-built allocator will keep a small budget on a campaign that currently looks mediocre rather than reallocating every baht to the current leader.",[437,438,440],"blog-callout",{"title":439},"Common mistake","Reading day-to-day variation in a new campaign’s budget as instability. On an under-observed campaign that variation is the exploration doing its job. The thing to check is not whether the budget moved, but whether the campaign is being hard-stopped on a single bad draw — that is the actual failure mode.",[398,442,388],{"id":387},[394,444,445],{},"DataGlass treats under-observed Shopee campaigns differently from mature ones: while a campaign is still being learned about it is funded from sampled scenarios and floored rather than hard-paused, and it moves to full-distribution optimisation once it has accumulated enough performance history. Which regime a campaign is in is visible on the recommendation.",[398,447,391],{"id":390},[449,450,451,457,463],"ul",{},[452,453,454],"li",{},[455,456,12],"a",{"href":13},[452,458,459],{},[455,460,462],{"href":461},"\u002Fen-id\u002Fblog\u002Fhow-ecommerce-decision-engines-work","E-commerce Decision Engine: How Marketplace Sellers Turn Data Into Profit Recommendations",[452,464,465],{},[455,466,468],{"href":467},"\u002Fen-id\u002Fblog\u002Fcross-platform-ad-budget-allocation","Cross-platform ad budget allocation for SEA marketplace sellers",[470,471,472,473,474,475,476,477],{"id":369,"depth":366,"text":370},{"id":372,"depth":366,"text":373},{"id":375,"depth":366,"text":376},{"id":378,"depth":366,"text":379},{"id":381,"depth":366,"text":382},{"id":384,"depth":366,"text":385},{"id":387,"depth":366,"text":388},{"id":390,"depth":366,"text":391},{"id":479,"categories":480,"domain":487,"extension":5,"fallback":488,"home":491,"industry":500,"meta":505,"pricing":506,"stem":518,"__hash__":519},"og_en\u002Fen\u002Fog.yml",[481,482,483,484,485,486],{"slug":302,"label":303},{"slug":305,"label":27},{"slug":307,"label":308},{"slug":310,"label":311},{"slug":316,"label":317},{"slug":319,"label":48},"dataglasslabs.com",{"title":489,"description":490},"DataGlass","The decision engine for Shopee, Lazada and TikTok Shop sellers.",{"chart":492,"metrics":493},"Net profit, last 30 days",[494,497],{"label":495,"value":496},"Net profit","฿1.24M",{"label":498,"value":499},"Profit ROAS","3.4x",{"axis":501,"point":502},"Ad spend",{"label":503,"value":504},"Next baht still pays","+฿0.42",{},{"plans":507},[508,512,515],{"name":509,"price":510,"period":511},"Free","฿0","\u002Fmonth",{"name":513,"price":514,"period":511},"Standard","฿1,499",{"name":516,"price":517,"period":511},"Pro","฿2,499","en\u002Fog","63L8y4Lv8I2q3NvR26fMXU1sE9Wd7TZaz2l_tV6oZuo",[],[522,526,530,534,538],{"path":523,"title":524,"short":525,"draft":330},"\u002Fglossary\u002Fbayesian-inference","Bayesian inference","Estimating with a range instead of a single number, so a decision can account for how little it actually knows.",{"path":527,"title":528,"short":529,"draft":330},"\u002Fglossary\u002Frecommendation-confidence","Recommendation confidence","How often a proposed change beats doing nothing. A comparison against the status quo, not a score for the campaign.",{"path":531,"title":532,"short":533,"draft":330},"\u002Fglossary\u002Fcvar","CVaR","Conditional Value at Risk — the average outcome in the worst cases. Not how often it goes wrong, but how bad it gets when it does.",{"path":535,"title":536,"short":537,"draft":330},"\u002Fglossary\u002Fmarginal-roas","Marginal ROAS","The return on the next baht of ad spend, not the average across all of it. The number that decides whether to scale a campaign.",{"path":539,"title":540,"short":541,"draft":330},"\u002Fglossary\u002Fprobability-of-loss","Probability of loss","How often a campaign has a losing day. A frequency, not an amount — and on sparse campaigns it measures the wrong thing.",1792785068370]