Plan
Planning starts with the product and the page it will be sold on. Where it is practical we order the product ourselves, go through the checkout or the form on a phone, and read the terms a customer would read. Anything that would fail a platform review or disappoint a buyer is raised at this point.
Then the unit economics. Take a product sold at 60 euros with a 55 percent gross margin and 8 percent of orders returned: a sale can cost about 30 euros in advertising before it starts losing money. The target cost per result sits well under that line, partly because a return also costs shipping and handling that the margin figure does not show. The stop-loss threshold, meaning the spend at which a test is paused if it has produced nothing, goes into the same document.
Markets come last. They are picked from the countries the brand can ship to or serve, and a first test rarely covers more than two.
Launch
The structure mirrors the plan: one campaign per market and optimization event, with ad groups on TikTok and ad sets on Meta underneath. Campaigns, ad groups and ad sets follow the pattern market_product_angle_date. An ad group called DE_desklamp_homeoffice_20261012 tells anyone on the team where it runs, what it sells, which idea it tests and when it started. The same names are carried into the UTM parameters (utm_source, utm_medium, utm_campaign, utm_content), so a visit in the brand's own analytics can be matched to the ad behind it.
Before anything spends money, tracking is tested end to end. Someone on the team places a test order or submits a test form on a phone, then checks that the event reaches TikTok and Meta twice, from the pixel and from the server, under one event ID so it is counted once.
Ads go into platform review at least a day before the planned start. A rejection then costs a day of fixing, not a day of delivery.
Measure
The morning review covers the previous day as each ad account defines it. This sounds pedantic until it goes wrong: an account set to UTC-5 closes its day at 06:00 CET, one set to UTC+1 at midnight, and merging them quietly moves Tuesday's sales into Monday.
Attribution windows are fixed per account and printed on every report. Our default on both TikTok and Meta is a 7-day click window, with 1-day view conversions shown in their own column where the platform allows it. Changing a window changes the numbers, so it only happens with the brand's agreement.
Platform figures will not match the store or the CRM, and nobody should expect them to. A platform usually credits a conversion to the day of the click or view; the store records the day of payment. TikTok and Meta can both claim the same order. Some conversions are modeled for people who declined tracking, and refunds never reach the platform at all. We compare against the brand's records daily where the brand shares its data that often, and at the monthly reconciliation in any case. The point is to find the gaps that these reasons do not explain.
Optimize
Only the media buyer who owns an account, or whoever covers for them that day, changes budgets and bids. Analysts and the creative team see every number but do not move money. Each change to a budget, bid or status is logged with the person, the time, and the old and new value.
New creative goes into each active campaign every one to two weeks, sooner on TikTok when frequency climbs. A test stops when it reaches its budget, its stop-loss or the end of its agreed period, whichever comes first. Most first tests miss the target. What we want to know is whether the gap is closing.
Rules are written before a test starts, each with an explicit threshold and the name of the person who set it. A typical set:
- An ad group or ad set that has spent twice the target cost per result without a conversion is paused.
- An ad whose cost per result is 50 percent over target is paused once it has spent three times the target cost per result.
- After three days in a row at or under target, the budget goes up by about 20 percent.
- Every campaign keeps a daily spend limit, so a broken rule cannot overspend.