งานวิจัย/Data Science เชิงเทคนิค

Shopee ad benchmarks 2026: what a click and a thousand impressions actually cost

Across 333.9 million Shopee impressions and 9.11 million clicks on 80+ Thai shops, the price of a click varies 2.01× by hour of day while the rate at which people click varies 1.14×. CPC ranges THB 3.36 to THB 6.75, CPM ranges THB 89.16 to THB 200.15, and every behavioural input is nearly flat. The full table, the methodology, and the two ways a benchmark like this gets misused.

1 กันยายน 202613 นาทีBhum Soonjun · DataGlass Labs Research
Impressions measured
333.9M

80+ Thai Shopee shops, Feb–Aug 2026

Shopee CPC range
THB 3.36–6.75

Cheapest 20–23, dearest 00–01

Auction-price spread
2.24×

CPM, best to worst daypart

Behavioural spread
1.14×

CTR, over the same six windows

Data Science

Across 333.9 million Shopee ad impressions and 9.11 million clicks measured on 80+ Thai shops between 1 February and 16 August 2026, the price of a click varies by 2.01x depending on the hour you buy it. The rate at which people click varies by 1.14x. Conversion rate varies by 1.23x, and the margin of what they buy by 1.13x. Every behavioural input on a Shopee ad account is close to flat across the day. The two auction-price variables move roughly twice as much as anything else [1].

We are publishing the full table because we could not find a published, methodologically documented benchmark for what a Shopee ad click costs in Thailand, and the absence has a cost: sellers reason about their CPC as if it were a fact about their creative when it is mostly a fact about their clock. The dataset is open under CC BY 4.0, aggregate-only, with a minimum of eight distinct shops behind any published cell and panel sizes given as bands rather than exact counts [1]. There is a machine-readable endpoint for anyone who would rather have the JSON [2].

The thesis: intraday variation in Shopee ad economics is an auction-price phenomenon. Buyers behave nearly identically all day; what changes by more than twice as much is what the platform charges to reach them. What would falsify this: a panel in which conversion rate or basket value spread as widely across dayparts as CPM does.

What a Shopee ad click costs, by time of day

The panel is single-product campaigns only — Shopee’s ads fact table does not carry the item id in its primary key, so a multi-item campaign dumps all of its clicks onto one arbitrary item and the margin column would be meaningless without the filter. 9.11 million of 9.21 million clicks matched to a product, or 98.9%. Margin is each campaign’s own advertised product’s realised contribution margin — net of the category commission, transaction and payment fees, voucher share and free-shipping cost split set out in Shopee’s fee schedule [5] — and verified to exclude ad cost so it can be subtracted against CPC without double-counting.

Per-click economics by daypart, Shopee Thailand, 1 Feb – 16 Aug 2026. Profit per click = margin × basket × conversion rate − CPC.
WindowClicks (M)Conversion rateCPC (THB)Basket (THB)MarginProfit/click (THB)POAS
00–010.8410.40%6.7564929.3%13.012.93
02–071.118.46%4.4545626.0%5.592.25
08–111.8510.41%4.1846226.7%8.653.07
12–162.289.95%3.9648727.9%9.573.42
17–191.169.04%3.9346927.4%7.712.96
20–231.879.42%3.3646827.7%8.843.63

Campaign days (platform double-dates) are excluded from every pooled window table: 88.3% of campaign-day spend falls on a Tuesday or a Saturday, so an all-days table would import both a ranking inversion and a weekday skew. Source: DataGlass marketplace benchmarks, panel shopee-click-economics [1].

POAS here is contribution divided by ad spend, so it breaks even at 1.0 rather than at 0 — a window at 2.25 returned THB 2.25 of contribution and THB 1.25 of profit for each baht spent. On that reading no window on the panel is loss-making, and the spread between the best and the worst is 1.61x. Which window is best, though, depends on which metric you are entitled to use, and that turns out to depend on something the table does not contain: which constraint your campaign is actually running against.

One window, worked end to end — 20:00–23:59
contribution per click = margin x basket x conversion rate
                       = 0.277 x 468 x 0.0942  =  THB 12.21

profit per click       = 12.21 - CPC 3.36        =  THB  8.85
POAS                   = 12.21 / 3.36            =        3.63
net return per baht    =  8.85 / 3.36            =        2.63

POAS counts the contribution the click produced.
Subtract the 1.00 you spent to get the profit.

The table prints 8.84: it is computed on unrounded
inputs, and a drift of 0.01-0.02 is in every other row.
Shopee CPC by daypart, Thailand — 9.11M clicks, Feb–Aug 2026
00–01most expensive
6.75 THB
02–07
4.45 THB
08–11
4.18 THB
12–16
3.96 THB
17–19
3.93 THB
20–23cheapest
3.36 THB

Best-to-worst spread 2.01x. The most expensive hour to buy a Shopee click is the platform’s own checkout peak, and the cheapest is the four hours immediately before it.

Which window is best depends on which constraint is binding

The two metrics disagree, and the disagreement is not a tie to be broken by preference. Profit per click favours midnight at THB 13.01; contribution per baht favours the evening at 3.63, where midnight is fifth of six. Those answer different questions. Profit per click is the right objective when clicks are what is scarce — a campaign bounded by its Target ROAS or by its audience, with budget left over. Contribution per baht is the right objective when money is what is scarce. And by the regime argument in how Shopee ads bidding works, a campaign that spends its full daily budget is in the second case, which is where most marketplace campaigns sit.

Now the part the table does not say out loud. Reported ROAS by window — basket times conversion rate over CPC — runs from 8.67 in the small hours to 13.12 in the evening. Each window clears its own break-even by exactly the figure in the POAS column, from 2.25x at the worst to 3.63x at the best, because POAS is contribution over spend and break-even ROAS is one over margin [5]. The whole day therefore sits far above the line a Target ROAS is drawn against, and the band that could discriminate at all spans just 8.67 to 13.12, a spread of 1.51x.

And the narrowness is the smaller half of the problem. A Target ROAS and a budget reach the auction as one uniform threshold on the platform’s own per-auction value-to-cost estimate — not on a window’s realised return — so neither has any way to express “buy in the evening” in the first place. Raising the target does not drop the small hours; it drops the lowest-ranked auctions wherever in the day they sit. Realising an intraday spread therefore requires a second threshold, which means a second campaign or an explicit schedule. Nothing you type into one campaign will do it.

And the size of the prize is computable from the table, as an accounting ceiling rather than a forecast. Weighting each window by its own clicks, the panel spent THB 38.2M and produced THB 118.6M of contribution — a blended POAS of 3.105. The best window returned 3.634. So the most that perfectly reallocating every baht into the evening could have added, on spend that already happened, is about 17% more contribution per baht — 16.7% exactly, if you reproduce it from the rounded cells printed in the table. That is an upper bound and it is almost certainly loose: concentrating the fleet’s spend into four hours would raise the clearing price in exactly those hours, and this panel contains no observation of that happening. The dataset’s own suppression register records the status of any gain from acting on the clock as unmeasured [1], and this number does not change that — it bounds it.

No Target ROAS separates the good hours from the bad, because every hour clears break-even by more than double. The clock needs a second campaign, not a different number.

The same panel one step earlier in the funnel

What the auction allocates is impressions, not clicks, so the per-impression view is the one closer to the mechanism. Changing basis moves exactly one pair of ranks — morning and late evening swap third and fourth, because morning’s click-through rate is slightly higher. Everything else holds.

Per-impression economics by daypart, Shopee Thailand. 333.9M impressions.
WindowImpressions (M)CTRCPM (THB)Profit per 1,000 impressions (THB)
00–0128.12.97%200.15386.08
02–0739.32.83%125.99158.07
08–1166.42.78%116.33240.42
12–1685.02.68%105.95256.21
17–1944.52.61%102.60201.52
20–2370.62.65%89.16234.57

CPM here is a derived effective figure — Shopee bills these campaigns per click; this is spend divided by impressions, times a thousand. Source: DataGlass marketplace benchmarks, panel shopee-click-economics [1].

The 02:00–07:59 window is the one to hold up against a CTR benchmark. It has the second-highest click-through rate of the day, 2.83%, and the worst economics on the board — a POAS of 2.25 against the evening’s 3.63. The mechanism is visible in two columns: its basket is the smallest of the six at THB 456 and its conversion rate the lowest at 8.46%, so a click there is worth THB 10.03 of contribution against THB 12.21 in the evening, while costing THB 1.09 more. Optimising creative against click-through alone would have moved spend toward the window that pays least.

The window with the second-best click-through rate on the panel has the worst economics on it. Creative benchmarks point at the hours that pay least.

What actually varies — the finding the dataset is really about

Ratio of the largest to the smallest daypart value, by input. Auction prices against everything else.
InputBest ÷ worst across six windowsKind
CPM2.24xauction price
CPC2.01xauction price
Basket value1.42xbuyer behaviour
Conversion rate1.23xbuyer behaviour
Click-through rate1.14xbuyer behaviour
Margin1.13xproduct mix

Source: DataGlass marketplace benchmarks, table window-input-spreads [1].

Read the Kind column: everything a seller can influence through merchandising sits in the bottom four rows and moves by less than half as much as the two rows above it. The practical reading is a hierarchy of levers. Because margin varies by only 1.13x across windows, a shop-average margin and a per-product margin give the same window ranking — so product mix is not the lever here, and you do not need per-SKU costing to rank the clock. Because the auction price varies by 2.24x, the auction is. That is a narrower claim than it sounds: it says where to look on this panel, not that the price is yours to move.

Buyers behave almost identically across the Shopee day. The price of reaching them moves by 2.24x. The benchmark that matters is a price, not a behaviour.

How to use a benchmark like this without misusing it

Every number above is an average, and averages are the wrong object for a spend decision. A POAS of 3.63 in the evening window does not mean the next baht spent there returns 3.63 — it means the baht already spent there have averaged 3.63. Nothing in this dataset prices a marginal baht, and the gap between an average and the marginal ROAS behind it is not small: on the parameters in our companion post on the profit-maximizing Target ROAS, a campaign reporting an average return of 16.67 is earning 7.00 on its next click, a factor of 2.38 [3].

Second caution, and it is about the most quotable cell on the page. The conversion side rests on Shopee’s broad attribution [4], and the over-crediting is worst exactly at midnight, the platform’s own checkout peak — so the THB 13.01 profit-per-click figure for 00:00–01:59 is the least trustworthy number in the table, and it is wrong in the direction of flattery. Here is how much that is worth. Discount midnight’s conversion rate to the median of the other five windows, 9.42% against its own 10.40%, and profit per click falls from THB 13.01 to THB 11.16 while POAS falls from 2.93 to 2.65. The cell moves materially in level and does not change rank on either metric. Treat it as directionally sound and numerically soft, and do not quote the 13.01 on its own.

Third: this is our panel, not the Thai market. It is 80+ shops connected to DataGlass, weighted toward mid-market sellers who advertise. On the dataset’s companion intraday panel, a 20-shop group of the very largest advertisers was measured to differ from the rest of the fleet on three of four tested properties — median best-to-worst spread 1.41x against 2.14x, Mann-Whitney p = 0.0093 — and was excluded outright [1]. That test was run on the other panel, but it is the best evidence we hold on who these numbers do not describe: if you run a top-decile ad account, expect flatter spreads than these.

Where this argument breaks

  • Observational, not causal. Nothing here is a measured effect of an intervention. We are not claiming that moving spend into the evening window raises profit; we are reporting that spend already in the evening window has averaged a higher return. The honest status of any gain from acting on the clock is unmeasured.
  • Single-product campaigns only. The filter is mandatory because of how Shopee’s ads fact table is keyed, but it means the panel systematically excludes broad, multi-item campaigns, which may price differently.
  • The margin column is realised product margin averaged over the window. A seller whose product mix shifts across the day — daily deals in the evening, full-price during the day — would see more margin variation than the 1.13x here.
  • Campaign days are excluded. On double-date campaigns the window ranking inverts, so these numbers do not describe 9.9, 10.10, 11.11 or 12.12 and should not be applied to them.
  • Thailand only, and Shopee only. The Lazada and TikTok Shop panels in the dataset are smaller and are not directly comparable on these columns.

Methodology

Every table in this post comes from one panel, `shopee-click-economics`: 80+ Shopee Thailand shops, single-product campaigns only, 1 February to 16 August 2026, measured on 18 August 2026, at a grain of campaign × daypart matched to the advertised product. Its only eligibility rule is the single-product filter, and that filter is mandatory rather than cosmetic — Shopee’s ads fact table does not carry the item id in its primary key, so a multi-item campaign dumps all of its clicks onto one arbitrary item and the margin column would be meaningless. Margin is the advertised product’s own realised margin, averaged over the window and verified to exclude ad cost so it can be subtracted against CPC without double-counting. The dataset holds a second, larger Shopee panel, `shopee-intraday`, at a grain of shop × hour over a longer window; the stricter eligibility rule (60 days of hourly rows, 200 clicks, 100 attributed orders, then 5 orders and 50 clicks in each of the six dayparts) and the excluded 20-shop top-advertiser panel belong to that one, not to these tables. Four rules govern every figure in both: aggregate only, with no per-shop number ever published; a minimum of 8 distinct shops behind any published cell, below which the cell is suppressed rather than shown; panel sizes published as bands rather than exact counts; and no causal lift claims, with any finding that carried an implied uplift listed in the suppression register with its reason rather than quietly softened. The full dataset, its version history and that register are at /research/marketplace-benchmarks; the JSON endpoint is CORS-open and versioned via an X-Dataset-Version header [2]. Licensed CC BY 4.0 — cite it freely.

Frequently asked questions

ก้าวต่อไป

A fleet benchmark tells you where to look. Your own numbers tell you what to do.

DataGlass computes the same six windows on your own Shopee, Lazada and TikTok Shop campaigns, against each product’s realised contribution after cost of goods, commission, payment fees, vouchers and returns — then ranks the spend moves by expected profit rather than by reported ROAS.

แหล่งข้อมูลและอ่านต่อ

  1. 01
    DataGlass — Marketplace benchmarks (open dataset, CC BY 4.0)

    The source of every figure in this post: panel definitions, eligibility rules, exclusions, the suppressed-findings register and the version history. Panels shopee-click-economics and shopee-intraday.

    /research/marketplace-benchmarks

  2. 02
    DataGlass — Marketplace benchmarks JSON endpoint

    The same data machine-readable, CORS-open, versioned via the X-Dataset-Version response header — for anyone reproducing or citing these tables programmatically.

    /api/marketplace-benchmarks.json

  3. 03
    DataGlass Labs — CTR & Target ROAS under CPM and CPC (technical note, 18 August 2026)

    The average-versus-marginal result quoted in the "how to use a benchmark" section, and the CPM/CPC settlement algebra behind the click-through-rate answer in the FAQ.

    /assets/papers/DataGlass_CTR_and_Target_ROAS_under_CPM_and_CPC_2026-08-18.pdf

  4. 04
    Shopee Ads — Seller Education Hub

    Shopee’s own documentation on ad campaign types, billing and attribution — the basis for treating this inventory as click-billed and for the broad-attribution caveat on the conversion column.

    https://seller.shopee.co.th/edu/

  5. 05
    Shopee — Seller commission and fee schedule (Help Center)

    The fee schedule behind the realised-margin column: commission by category, transaction and payment fees, voucher mechanics and the Free Shipping Program cost share.

    https://help.shopee.co.th/portal/article/77790

อ่านต่อจากคลังบทความ

  1. 8 เมษายน 2026

    วิธีลดค่าโฆษณาเสียเปล่าบน Shopee โดยไม่ทำให้ยอดขายตก

    บนบัญชี Shopee ทั่วไป 20–30% ของค่าโฆษณาขาดทุนเชิงโครงสร้าง ทั้งที่แดชบอร์ดจัดอันดับให้เป็นแคมเปญที่ชนะ การหยุด "แคมเปญที่ทำผลงานไม่ดี" จึงพลาดจุดรั่วไหลจริง บันทึกงานวิจัยว่าด้วยค่า default เชิงโครงสร้างสองอย่างที่ทำให้เกิดค่าโฆษณาเสียเปล่าแบบซ่อนเร้น และวิธี audit ที่ดึงมันออกมาได้โดยไม่เสียยอดขาย

  2. 3 พฤษภาคม 2026

    โครงสร้างค่าธรรมเนียมและการคำนวณ commission ของ Shopee ในปี 2026: หกชั้น และสูตรสี่ตัวแปร

    บทความอธิบาย ค่าธรรมเนียม Shopee ส่วนใหญ่หยุดอยู่แค่ commission กับ transaction fee แต่อีกสี่ชั้นข้างใต้ — voucher co-funding, Free Shipping Program subsidy, Mall premium, payment-channel pass-through — คือจุดที่ช่องว่างระหว่าง revenue บน dashboard กับเงินที่เข้าบัญชีจริงซ่อนอยู่ พร้อมการแยกชั้นทีละชั้นแบบมีแหล่งอ้างอิง สูตร commission ต่อ order สี่ตัวแปร ตัวอย่างคำนวณจริงเป็นเงินบาทสองชุด ตาราง sensitivity และขั้นตอน reconciliation

  3. 25 มีนาคม 2026

    วิธีคำนวณ True ROAS ของ Shopee เพื่อกำไร

    บันทึกเชิงระเบียบวิธี ROAS ที่ Shopee แสดงในแพลตฟอร์มอิงจาก gross revenue และมี bias เชิงโครงสร้างให้ใช้เงินเกินจุดคุ้มทุนเมื่อร้านโต True ROAS คือสูตรเดียวกันที่แทน input หนึ่งตัว และการแทนนั้นพลิกแคมเปญที่ดูชนะให้กลายเป็นขาดทุนในเกือบครึ่งของ catalog Shopee ทั่วไป พร้อมชาร์ต SKU สามโปรไฟล์ sensitivity analysis และ operating procedure ที่ใช้การแทนนี้ในจังหวะ production

หยุดเดา ให้ DataGlass ช่วยเพิ่มกำไร

ร่วมกับผู้ขายที่ใช้ DataGlass เปลี่ยนข้อมูลร้านให้เป็น Action ถัดไปที่เพิ่มกำไรสูงสุด สำหรับโฆษณา ราคา โปรโมชั่น และสต๊อกสินค้า