KFC ThailandAds HubOptimiser
Paid mediaKFC Thailand / THB / TikTok · Instagram

No campaign is running paid media today.

2 accounts connected

93,793.88THB
Spend this month
Across 0 campaigns · simulated rail
3.2M
Impressions · 28 days
CPM 94.08 THB
46K
Clicks · 28 days
CTR 1.43%
0
Campaigns running paid media
None carries a media plan yet

Paid optimisation

Simulated metrics · 3 ads · 75 daily rows2 connected accountslast run 07/09/2026 23:03Guardrails →

Every morning the Ads Optimisation agent reads 7 and 28 days of paid performance per ad and proposes pauses, scales, budget shifts and creative refreshes against each plan's objective and cap. Each one is a gate with the numbers and the rule behind it. Nothing changes until you decide.

Today’s proposals · 4

0 of 6 raised today · the agent is working now
Ads Optimisation Agent · Tuner proposes · Scale up

Mook — first bite (Spark Ad): THB 5,953.10 → 7,143.72 a day

livecostly to reverse

Mook · first bite (Spark Ad) buys the cheapest view on the TikTok account: THB 0.15 per view over 7d and THB 0.15 over 28d, against an account median of THB 0.49 (all simulated). That is 0.31× the median, well inside the 0.6× scale trigger. It is out of learning (29 days, 2,102,824 impressions, simulated). Raise the daily budget from THB 5,953.10 to THB 7,143.72 · a 20% rise, exactly the per-ad daily change limit; no plan cap applies to this ad. No compliance scan is on file for this post; a human published it. Costly to reverse: spend already delivered is not refundable.

Rule
cost per result 0.31× the account median after learning (scale below 0.6×); raised 20%
Objective
views · campaign style → guardrails.objectiveByStyle
7d spend
THB 43,009.84 · ad_metrics_daily (simulated)
7d results
281,745 · ad_metrics_daily (simulated)
7d cost per result
THB 0.15 · spend ÷ results
28d cost per result
THB 0.15 · spend ÷ results
Account median (7d)
THB 0.49 · median across the account's ads with results
Learning
learned · 29 day(s), 2,102,824 impressions · guardrails: 3 days or 1,000 impressions
Compliance
no scan on file for this post; a human published this ad · compliance_scans, latest verdict
Expected effect
+20% on views · Assumes cost per result holds at the higher budget; auction prices usually rise with spend, so the true lift is likely lower. Not observed yet; the rail is simulated.
Asked
07/09/2026 23:04
Ads Optimisation Agent · Tuner proposes · Scale up

Mook — first bite (Spark Ad): THB 5,953.10 → 7,143.72 a day

livecostly to reverse

Mook · first bite is the cheapest view on this TikTok account: THB 0.15 (simulated) cost per view over 7d and 28d, versus an account median of THB 0.49 (simulated) · a 0.32× ratio, well under the 0.6× scale threshold. It's past learning (29 days, 2,100,548 impressions, simulated). Raising daily budget from THB 5,953.10 to THB 7,143.72 (a 20% rise, at the per-ad daily change limit) buys more of a result that's already cheap. Note: no compliance scan is on file for this post · a human published it, so this is flagged per guardrails rather than blocking the scale (compliance verdict is "none"/not a fail or review).

Rule
cost per result 0.32× the account median after learning (scale below 0.6×); raised 20%
Objective
views · campaign style → guardrails.objectiveByStyle
7d spend
THB 43,079.83 (simulated) · ad_metrics_daily (simulated)
7d results
279,920 (simulated) · ad_metrics_daily (simulated)
7d cost per result
THB 0.15 (simulated) · spend ÷ results
28d cost per result
THB 0.15 (simulated) · spend ÷ results
Account median (7d)
THB 0.49 (simulated) · median across the account's ads with results
Learning
learned · 29 day(s), 2,100,548 impressions (simulated) · guardrails: 3 days or 1,000 impressions
Compliance
no scan on file for this post; a human published this ad · compliance_scans, latest verdict
Expected effect
+20% on views · Assumes cost per result holds at the higher budget; auction prices usually rise with spend, so the true lift is likely lower. Not observed yet; the rail is simulated.
Asked
06/09/2026 23:01
Ads Optimisation Agent · Tuner proposes · Scale up

Mook — first bite (Spark Ad): THB 5,953.10 → 7,143.72 a day

livecostly to reverse

Mook · first bite (Spark Ad) is the cheapest view on this TikTok account: THB 0.15 cost per view (simulated) against an account median of THB 0.49 (simulated), a ratio of 0.30× · well under the 0.6× scale threshold. It's past learning (29 days, 2,105,977 impressions, simulated). Raising daily budget 20%, from THB 5,953.10 to THB 7,143.72 (simulated), puts more money behind the result that's already working. No compliance scan is on file for this post; a human published it, and there's no fail/review verdict blocking the raise.

Rule
cost per result 0.30× the account median after learning (scale below 0.6×); raised 20%
Objective
views · campaign style → guardrails.objectiveByStyle
7d spend
THB 43,386.42 (simulated) · ad_metrics_daily (simulated)
7d results
292,387 (simulated) · ad_metrics_daily (simulated)
7d cost per result
THB 0.15 (simulated) · spend ÷ results
28d cost per result
THB 0.15 (simulated) · spend ÷ results
Account median (7d)
THB 0.49 (simulated) · median across the account's ads with results
Learning
learned · 29 day(s), 2,105,977 impressions (simulated) · guardrails: 3 days or 1,000 impressions
Compliance
no scan on file for this post; a human published this ad · compliance_scans, latest verdict
Expected effect
+20% on views · Assumes cost per result holds at the higher budget; auction prices usually rise with spend, so the true lift is likely lower. Not observed yet; the rail is simulated.
Asked
05/09/2026 23:09
Ads Optimisation Agent · Tuner proposes · Scale up

Mook — first bite (Spark Ad): THB 5,953.10 → 7,143.72 a day

livecostly to reverse

Mook · first bite (TikTok Spark Ad, kfc-zinger-ugc) is the cheapest view on the TikTok account: THB 0.15 cost per view both 7d and 28d (simulated) against an account median of THB 0.50 (simulated, 7d) · a 0.30x ratio, well under the 0.6x scale threshold. It's past learning (28 days live, 2,031,170 impressions to date, threshold is 3 days or 1,000 impressions). Raising the daily budget from THB 5,953.10 to THB 7,143.72 is a 20% increase · the maximum allowed per-ad daily change · and puts more budget behind the result that's already working. Compliance verdict is "none" (no fail/review on file), but note: no compliance scan is on file for this specific post; it was published directly by a human, so this isn't a blocked case but also isn't a confirmed clean scan.

Rule
cost per result 0.30× the account median after learning (scale below 0.6×); raised 20%
Objective
views · campaign style → guardrails.objectiveByStyle
7d spend
THB 38,039.43 (simulated) · ad_metrics_daily (simulated)
7d results
254,233 (simulated) · ad_metrics_daily (simulated)
7d cost per result
THB 0.15 (simulated) · spend ÷ results
28d cost per result
THB 0.15 (simulated) · spend ÷ results
Account median (7d)
THB 0.50 (simulated) · median across the account's ads with results
Learning
learned · 28 day(s), 2,031,170 impressions · guardrails: 3 days or 1,000 impressions
Compliance
no scan on file for this post; a human published this ad · compliance_scans, latest verdict
Expected effect
+20% on views · Assumes cost per result holds at the higher budget; auction prices usually rise with spend, so the true lift is likely lower. Not observed yet; the rail is simulated.
Asked
05/09/2026 09:16

Per-ad performance

simulated7 and 28 days from the stored daily ad metrics · cost per result against the account median · learning per guardrails (3 days or 1,000 impressions)
AdObjective7d spend7d results7d cost / result28d cost / resultvs medianLearningComplianceDaily budget
Mook — first bite (Spark Ad)
tiktok · live
video viewsTHB 42,823279,1820.150.150.31× · under the scale linelearned · 29 daysno scan on fileTHB 5,953.10
JJay — no bun (Spark Ad)
tiktok · live
video viewsTHB 22,69726,9540.840.831.69×learned · 29 daysno scan on fileTHB 3,244.50
Brand cut 16:9 — Reels
instagram · paused
video viewsTHB 28,273101,1620.280.291.00×learned · 17 daysno scan on fileTHB 3,838.48

simulated Attributed orders are counted where the brand holds commerce rows. The median is per connected account across ads with results in the window.

Applied log

0 changes this week · 0 denied · 0 reverted

No change has been applied, denied or reverted yet.

Weekly summary

The agent writes one at the end of each run. None saved for this brand yet.

This week: 0 changes.

Guardrails in force

Edit in Guardrails →
Learning period
3 days or 1,000 impressions, whichever first
Max daily change
20% per ad · 20% per account
Pause line
cost per result above 2× the account median, after learning
Scale line
cost per result below 0.6× the median, after learning
Proposals per day
at most 6
Plan cap
never exceeded (not a setting)
Compliance
a fail or review verdict allows a pause only
Objective
UGC video views · live people reached · affiliate attributed orders
Brand-safety exclusions
none