Three-Day Ad Test
A clean format or angle test: equal budgets, UTMs per ad, a 3-day window and a winner rule written before launch.
From Sanskar's ad account
On 21 Oct 2026 the course offer ran this exact setup: an image ad set with 5 images and a carousel ad set with 5 cards, ₹600/day each, both ending 3 days later, with utm_content=img1..img5 and carousel on every link. The rule was written in chat before launch: not profitable after 3 days → stop. The same day a second test added a reel ad set next to images and carousel for a different course, at ₹600/day each.
Install
Run this once in your terminal. Claude Code picks the skill up in your next session, in every project.
mkdir -p ~/.claude/skills/three-day-ad-test && curl -fsSL https://talktoads.com/skills/three-day-ad-test/SKILL.md -o ~/.claude/skills/three-day-ad-test/SKILL.mdFor one project only, use .claude/skills/three-day-ad-test inside the project instead.
Then ask
Set up a 3-day test: reel vs image vs carousel for my course, ₹600 a day each
The skill
What the agent follows, from the SKILL.md you download.
Most ad tests fail before they start: unequal budgets, no end date, no rule for picking a winner, and nobody knows which sale came from which ad. This skill sets up a test you can actually read.
Needs the TalkToAds connector (Meta) and the creatives (videos/images) ready.
Steps
-
Write the rule first. Agree with the user, in chat, before creating anything:
- What's being tested (one thing: format, OR hook, OR angle, not all three)
- Budget per variant per day (equal for all)
- Duration: 3 full days
- How the winner is picked: real revenue per ₹1,000 spent, from the payment gateway, split by
utm_content - What happens to the winner (gets the losers' budget) and the losers (paused)
-
One campaign, one ad set per variant. Call
create_campaignwithobjective: "OUTCOME_SALES"and no campaign budget, so each ad set gets its own (ABO). Equal budgets is the point of the test. -
Ad sets. For each variant, call
create_ad_setwith the same targeting (same country, same age, broad), same optimisation (OFFSITE_CONVERSIONSwith the purchasepixel_id) and the same daily budget. Put the end date in each ad set name (e.g.Test | reel | ends 28 Oct) and tell the user to set a reminder. On that day,pausethe losers. If they'd rather have Meta stop it automatically, they can set an end date on each ad set in Ads Manager. -
Ads with UTMs. Call
create_adfor each creative. Link = landing page +?utm_campaign=<test-name>&utm_content=<variant>(e.g.img1,carousel,reel). Same headline and primary text across variants unless the text is what you're testing. -
Show and wait. Show the whole setup as a table: variant, ad set, budget, end date, link. After a yes,
go_liveon the campaign. -
Day 3: read it. Pull
get_performanceatlevel: "adset"for the test window. Ask for the payments export, group revenue byutm_content, and compute revenue per ₹1,000 spent per variant. Apply the rule from step 1. Don't change the rule after seeing the numbers.
Rules
- Equal budgets, same audience, same dates. Otherwise it's not a test.
- Don't touch anything during the 3 days. No budget changes, no edits.
- Meta's "winner" by cost per purchase can be wrong if purchases are mis-attributed. Pick the winner on the gateway's money.
- If no variant beats 1x real ROAS, the problem is the offer or the page, not the format.