Bulk Loader

A hundred campaigns,
one screen.

A spreadsheet that launches. Rows from templates, every cell editable in place, and keywords that split themselves into campaigns.

Media Buying/Bulk LoaderBETAAll12Ready9Blocked312 rows
+ Row · US_AutoIns_RSA↶ ⌘Z↷ ⌘⇧ZPlanner
Campaign nameTargetingBudgetKeywordsArticlesCreativesTimingReady
US_AutoIns_QuotesUS_AutoIns_RSA
2 devicesUS3 sitestags set
$400.00
car insurance quotescheap car insurance+3⚡ 1–5 campaigns
Compare & save in 60s#auto-quotes
⚡ 5T⚡ 5D3C⚡ 2img
1 Oct – 31 OctMon–Fri 06–22
ready
US_AutoIns_Over50US_AutoIns_RSA
2 devicesUS3 sitestags set
$250.00
insurance for drivers over 50+2⚡ 1–3 campaigns
The over-50 discount#over-50
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
ready
CA_Solar_RebateCA_Solar_Native
1 deviceCA2 sitestags set
$180.00
solar rebate 2026solar grants⚡ 1–2 campaigns
Rebates end Friday#solar-rebate
3T3D0C⚡ 4img
from 3 Oct
ready
UK_Debt_ConsolidateUK_Debt_Taboola
2 devicesUK1 siteno tags
Set budget
debt consolidation uk+1⚡ 1–2 campaigns
Set article…
⚡ 5T⚡ 5D0C⚡ 2img
template
No budget +1
Name this campaignUS_Refi_Bing
2 devicesUS2 sitestags set
$320.00
Needs keywords
Rates dropped again#refi-rates
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
No campaign name +1
AU_Insurance_RSOCAU_Ins_RSOC
2 devicesAU2 sitestags set
$140.00
car insurance australia+4⚡ 1–5 campaigns
Compare AU insurers#au-compare
⚡ 5T⚡ 5D⚡ 3C⚡ 2img
1 Oct – 31 OctWeekends only
ready

Every cell opens its own editor anchored to the cell — the targeting facets, the keyword list, the article picker. Nothing sends you to a form and back.

The template stays on the sub-line after you rename the row, so a row never loses track of where it came from.

Ready names the first reason inline and counts the rest. A number alone won’t tell you whether it’s one field or five.

You don’t pickthe number.

the keywords do

quotes & comparison5 kw

BP7_US_AutoIns_Quotes

car insurance quotescheap car insurancecompare car insuranceauto insurance near mebest auto insurance rates

✓ created

over 503 kw

BP7_US_AutoIns_Over50

insurance for drivers over 50senior driver discountover 50 car insurance

✓ created

coverage type3 kw

BP7_US_AutoIns_Coverage

full coverage insuranceliability only insurancecomprehensive auto cover

✓ created

switching3 kw

BP7_US_AutoIns_Switch

switch car insurancecancel my policychange insurance provider

✓ created

discounts3 kw

BP7_US_AutoIns_Discounts

no claims discountsafe driver bonusaccident free discount

✓ created

new drivers1 kw

BP7_US_AutoIns_NewDrivers

insurance for new drivers

✓ created

18

keywords on one row

split by topic ⚡ 1–18 campaigns

Categorisation runs server-side, at create time. Until it answers, the count is honestly a range — which is why the rail says 1–18 rather than inventing a figure.

Eighteen keywords became six campaigns, not eighteen. Each topic group gets its own, named from the group.

One toggle in the cell keeps them together instead: 1 campaign, all keywords running in it.

Generate some.Write the rest.

per field · per row

Media Buying/Bulk LoaderBETAAll12Ready9Blocked312 rows
+ Row · US_AutoIns_RSA↶ ⌘Z↷ ⌘⇧ZPlanner
Campaign nameTargetingBudgetKeywordsArticlesCreativesTimingReady
US_AutoIns_QuotesUS_AutoIns_RSA
2 devicesUS3 sitestags set
$400.00
car insurance quotescheap car insurance+3⚡ 1–5 campaigns
Compare & save in 60s#auto-quotes
⚡ 5T⚡ 5D3C⚡ 2img
1 Oct – 31 OctMon–Fri 06–22
ready
US_AutoIns_Over50US_AutoIns_RSA
2 devicesUS3 sitestags set
$250.00
insurance for drivers over 50+2⚡ 1–3 campaigns
The over-50 discount#over-50
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
ready
CA_Solar_RebateCA_Solar_Native
1 deviceCA2 sitestags set
$180.00
solar rebate 2026solar grants⚡ 1–2 campaigns
Rebates end Friday#solar-rebate
3T3D0C⚡ 4img
from 3 Oct
ready
UK_Debt_ConsolidateUK_Debt_Taboola
2 devicesUK1 siteno tags
Set budget
debt consolidation uk+1⚡ 1–2 campaigns
Set article…
⚡ 5T⚡ 5D0C⚡ 2img
template
No budget +1
Name this campaignUS_Refi_Bing
2 devicesUS2 sitestags set
$320.00
Needs keywords
Rates dropped again#refi-rates
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
No campaign name +1
AU_Insurance_RSOCAU_Ins_RSOC
2 devicesAU2 sitestags set
$140.00
car insurance australia+4⚡ 1–5 campaigns
Compare AU insurers#au-compare
⚡ 5T⚡ 5D⚡ 3C⚡ 2img
1 Oct – 31 OctWeekends only
ready

The bolt means AI generates it, seeded from that row’s own keywords. Five titles, five descriptions, two images — a count, not a promise.

Plain pills are yours — typed by hand and left exactly alone. Each of the four types picks its own mode independently.

Zero is red in either mode. A field set to generate nothing holds nothing, and the row would launch with an empty slot.

Change twelve rowsthe way you’d change one.

set a value to change it

Media Buying/Bulk LoaderBETAAll12Ready9Blocked312 rows
Edit 12 rows…Duplicate 12Delete 12Clear
Campaign nameTargetingBudgetKeywordsArticlesCreativesTimingReady
US_AutoIns_QuotesUS_AutoIns_RSA
2 devicesUS3 sitestags set
$400.00
car insurance quotescheap car insurance+3⚡ 1–5 campaigns
Compare & save in 60s#auto-quotes
⚡ 5T⚡ 5D3C⚡ 2img
1 Oct – 31 OctMon–Fri 06–22
ready
US_AutoIns_Over50US_AutoIns_RSA
2 devicesUS3 sitestags set
$250.00
insurance for drivers over 50+2⚡ 1–3 campaigns
The over-50 discount#over-50
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
ready
CA_Solar_RebateCA_Solar_Native
1 deviceCA2 sitestags set
$180.00
solar rebate 2026solar grants⚡ 1–2 campaigns
Rebates end Friday#solar-rebate
3T3D0C⚡ 4img
from 3 Oct
ready
UK_Debt_ConsolidateUK_Debt_Taboola
2 devicesUK1 siteno tags
Set budget
debt consolidation uk+1⚡ 1–2 campaigns
Set article…
⚡ 5T⚡ 5D0C⚡ 2img
template
No budget +1
Name this campaignUS_Refi_Bing
2 devicesUS2 sitestags set
$320.00
Needs keywords
Rates dropped again#refi-rates
⚡ 5T⚡ 4D0C⚡ 2img
1 Oct – 31 Oct
No campaign name +1
AU_Insurance_RSOCAU_Ins_RSOC
2 devicesAU2 sitestags set
$140.00
car insurance australia+4⚡ 1–5 campaigns
Compare AU insurers#au-compare
⚡ 5T⚡ 5D⚡ 3C⚡ 2img
1 Oct – 31 OctWeekends only
ready

Edit 12 rows

set a value to change it

Templateleave unchanged
Budget$250.00
GeoUS, CA
Deviceleave unchanged
SitesNeeds one monetization across the selection
Start date3 Oct 2026
Keywordswill be emptied on 12 rows
Name{{geo}}_{{topic}}_Q4

The dot is an indicator, not a control. Typing a value is what arms the field — there is nothing to tick first.

Emptying a field is its own instruction, because a blank control can’t say the difference between “leave this” and “clear this”.

Some fields need agreement across the selection. Sites stays shut until the rows share one monetization, and says so where the value would be.

Press here.Results appear here.

one strip, three faces

DestinationAuto Vertical · BP7Prefix derived from the group’s media buyer.
12rows ready — 1–18 campaigns (keywords split by topic on create)Nothing blockedFire 12 now
14:32BP7_US_AutoIns_Quotescreating…
14:32BP7_US_AutoIns_Over50creating…
14:33BP7_CA_Solar_Rebatecreating…
14:33BP7_AU_Insurance_RSOCcreating…

The prerequisite sits with the button it blocks — group and prefix, set once per session and stamped on every row.

Every row goes or none does. A partial launch left blocked rows behind quietly, so the table and the batch disagreed about what had been sent.

A row that fanned out counts up rather than repeating its line: four rows in the feed, fifteen campaigns between them.

Underneath

The parts you only notice when they’re missing

It survives you

Close the tab. Come back.

The batch lives in your browser between sessions, so a half-built set of forty rows is still there tomorrow. Undo goes back fifty steps.

All or nothing

Every row goes, or none does

A blocked row stops the batch and stays a draft, rather than being left behind quietly while the rest launch.

It admits when it’s lost

Eleven minutes, then it says so

A row still marked creating after the job’s own timeout reads no response yet — check History rather than spinning forever.

Before it fires

What stops a row, in its own words

The readiness check is deliberately small and blunt. These are the actual messages a row shows when it isn’t going anywhere — the first inline in the Ready cell, the rest on hover.

No campaign nameThe identifier is what the feed, the alerts and the history all key on. A row without one can’t be reported back to you.
No budgetA number above zero. Which field it lands in depends on the source — Taboola takes a daily cap, MGID a daily limit, Facebook a daily budget.
Source tags not setOnly where the row’s monetization has them. Tags are keyed by site, so one untagged site blocks the row.
Keywords required for AI generationA row generating any creative with AI needs at least one keyword to seed it. Generation without a seed produces nothing worth launching.
No bundle selectedIn bundle mode the bundle stands in for keywords and supplies the seeds server-side — so the bundle becomes the requirement instead.

Get started

Bring one keyword list.
Leave with a batch.

Book a 20-minute working demo — we’ll build rows from your template, fire them, and watch the creation events come back on the call.

No credit card. No migration project.