← Launch skills

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.

Free skill · Runs on your ad account via TalkToAds · Works in Claude, Claude Code and ChatGPT

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.

Terminalmkdir -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.md

For 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

  1. 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)
  2. One campaign, one ad set per variant. Call create_campaign with objective: "OUTCOME_SALES" and no campaign budget, so each ad set gets its own (ABO). Equal budgets is the point of the test.

  3. Ad sets. For each variant, call create_ad_set with the same targeting (same country, same age, broad), same optimisation (OFFSITE_CONVERSIONS with the purchase pixel_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, pause the losers. If they'd rather have Meta stop it automatically, they can set an end date on each ad set in Ads Manager.

  4. Ads with UTMs. Call create_ad for 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.

  5. Show and wait. Show the whole setup as a table: variant, ad set, budget, end date, link. After a yes, go_live on the campaign.

  6. Day 3: read it. Pull get_performance at level: "adset" for the test window. Ask for the payments export, group revenue by utm_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.