Meta to Spotify Ad Setup
Not a creative or content document. What the ads say is out of scope; what they optimize for is the whole of it.
- Status
- pre-launch, gated
- Owner
- artist runs it, we set it up
- Envelope
- 348 dollars across two flights
Conditions precedent
Three gates, each with how it's checked. Event Match Quality is deliberately not one of them: a fresh setup can't show an EMQ score before it has spent anything, so using it as a launch gate would block a launch that's fine.
-
Pixel and CAPI deduplication observedFire a test event and confirm Events Manager shows it as Deduplicated, not as two events. Without this every conversion is counted twice and the optimization learns from a doubled signal.Not checked
-
Test event received from the live smart linkFrom the real published link, not the preview. Preview URLs commonly don't carry the pixel.Not checked
-
Custom conversion registered in an Aggregated Event Measurement slotRegistered and ranked, not merely created. An unranked event won't optimize.Not checked
The go-live date is conditional on all three boxes.
Run cards
The only page you need open at the Ads Manager keyboard. Conclusions only; the reasoning is further down and you don't need it while you're typing.
- Objective
- Sales
- Optimization event
- Pre-save custom conversion
surface: smart-link page, pixel + CAPI - Budget
$12/day, ad-set level- Geo
- United States only
- Attribution
- Shortest click window the UI offers
never view-through - Creative slots
- 6, rotating
- Learning exit
- ~50 events / 7 days
expect 24 to 48/day - EMQ checkpoint
- Day 3 and day 7, target
≥ 7 - Kill
- Cost per pre-save above
$0.50at day 7 Assumed - Scale
- Below
$0.25for 3 days, raise 20% per step
- Objective
- Sales
- Optimization event
- On-page save or follow custom conversion
pre-save ceases to exist on release day - Budget
$12/day, ad-set level- Geo
- United States only
- Attribution
- As Flight A
- Creative slots
- 6, three carried from Flight A
- Audiences
- Prospecting broad, plus retargeting fed by Flight A's pool
- EMQ checkpoint
- Day 3 and day 7, target
≥ 7 - Kill
- Cost per save above
$1.00at day 7 Assumeda save is a deeper event than a click; the cited band is for clicks - Scale
- Not this cycle. Bank the pool instead.
Problem and outcome
Problem
Every link Wren has ever posted goes straight to Spotify, so Meta has never been told what a good outcome looks like. There's no pixel, no custom conversion, and no audience that has ever been built. A campaign run today would optimize for the cheapest tap available, which is the traffic worth nothing.
Outcome
One optimizable event on a page we control, fired by someone taking a library action rather than a click. Success for this cycle is 400 or more pre-saves and saves combined, under $0.45 per pre-save (Flight A) and under $1.00 per save (Flight B), and a retargeting pool large enough that the January single starts warm instead of cold.
Budget tiers
Tier is assigned by arithmetic, not by ambition. The gate is a daily budget at or above the ten-dollar floor, and that budget divided by the expected cost per event landing near or above seven and a half events a day.
| Tier | What runs | This cycle |
|---|---|---|
| Tier 0 | Groundwork only. No conversion spend until the pixel and the link exist. | Precedes both flights |
| Tier 1 | Conversion stack. One campaign, one ad set, six creative slots, broad targeting, retargeting layer in Flight B. | Both flights sit here |
| Tier 2 | Engagement first, for budgets too thin to sustain conversion learning. | Not needed |
| Tier 3 | Scaled Advantage+ ceiling. Wants roughly a hundred a day to learn. | Far above this envelope |
$12 a day against an expected $0.25 to $0.50 per pre-save gives 24 to 48 events a day, which clears the seven-and-a-half threshold several times over and puts the ad set past the fifty-events-per-seven-days learning exit inside the first week. Tier 1 is therefore the correct assignment and Tier 2 would be leaving signal on the table. Nothing else is live in the account, so no mid-flight collision handling applies this cycle.
Payment and bid mechanics
| Setting | Spec | Why |
|---|---|---|
| Objective | Sales | The only objective that can carry a custom conversion. Traffic and Awareness are never used here; they optimize for the tap, which is already cheap and already worthless. |
| Bidding | Lowest cost, automatic | Manual bid caps at this budget starve delivery before they save money. |
| Attribution | Shortest click window offered; never view-through | The seven-day-view and twenty-eight-day windows were removed in January 2026. A view-through window at this budget would credit the campaign for listens it didn't cause. |
| Daily floor | $10/day, running at $12 | Below ten dollars a day, delivery is too thin to learn stably even when the event arithmetic looks solvent. |
| Placements | Advantage+ placements, automatic | Restricting placements at this spend reduces the auction pool without improving anything measurable. |
| Geo | United States only | Default is tier-one countries. Narrowed on artist data: 81% of existing listening is Texas, and there's no reason to pay for auctions in markets with no draw and no tour. |
| Creative rotation | 6 slots minimum | Creative is now effectively the targeting layer. Fewer than five or six slots and the system has nothing to choose between. |
| EMQ | Checked day 3 and day 7, target ≥ 7 | In flight, not at launch. Below seven, fix the match keys being passed rather than the ads. |
The cited band below is for a click through to Spotify. Both flights optimize for something deeper: a pre-save on the landing page, then a save or follow after release. A deeper event costs more per event than a click, always, and no published band for either one held up when we went looking. So the pre-save threshold carries the click band forward unchanged, which is deliberately strict, and the post-release save threshold is set at double it as a labelled assumption. Read both as a line to beat, not as proof of failure: after Flight A closes you'll have your own cost per event, and that number replaces these.
Cost per Spotify click-through: $0.25 to $0.50 is the acceptable band and $0.15 to $0.25 is a well-run campaign. Planning here assumes the upper end. On cost per thousand impressions the sources conflict, roughly $8 to $15 against about $20 in the US, so this plan uses the higher figure until that's resolved. Planning with the pessimistic number is why the budget above is solvent rather than nominally solvent.
Tracker changes
Wren has a dashboard but no ads table yet, so this creates one rather than editing one.
| Where | Change |
|---|---|
| Dashboard | Add a flight row to the release panel: flight name, dates, spend to date, events, cost per event. |
| Ads · Flights | New table. One row per flight, predictions pre-filled from the bands above, actuals columns left blank until day seven after the flight ends. |
| Weekly action list | Two recurring checks during each flight: day three and day seven. |
Scope
In scope
Pixel and CAPI setup, smart-link build, custom conversion registration and AEM ranking, campaign and ad-set structure, audiences and retargeting, the settings above, the two run cards, the flight log, and the day-three and day-seven checks.
Out of scope
Ad creative and content. Other paid lines, including Spotify Marquee, Ad Studio, playlist-pitch marketplaces and boosted posts elsewhere. The budget envelope itself, which is the artist's to set. Pay-per-stream services, which are declined rather than merely excluded.
Dependencies and assumptions
| Item | State | Blocking? |
|---|---|---|
| Business Manager account | Assumed exists under the artist's own login | Yes. Confirm before any spend; an account created by someone else is a problem to unwind later. |
| Pixel installed | Not installed. Part of this build. | Yes, gate one. |
| Domain verified | Assumed not verified | Yes for AEM ranking. Half a day if the domain registrar login is to hand. |
| Smart-link tool | To be chosen. One known tool carries both a Meta and a Spotify pixel; the rest are Meta only. | Yes. Pricing is as advertised at time of writing and isn't a quote. |
| Spotify CAPI second rail | Available only if the dual-surface tool is chosen. Optional this cycle. | No. |
| Lookalike threshold | Not reachable this cycle at this pool size. Revisit after the January single. | No. |
Acceptance criteria
| # | Criterion | By |
|---|---|---|
| 1 | All three conditions precedent checked and screenshotted | 22 Sep |
| 2 | Six creative slots loaded, campaign built, not yet published | 23 Sep |
| 3 | Flight A live | 25 Sep |
| 4 | EMQ at or above 7, or match keys fixed | 28 Sep and 2 Oct |
| 5 | Flight A closed, pool saved as a Custom Audience | 8 Oct |
| 6 | Flight B live on release day with the retargeting layer attached | 9 Oct |
| 7 | Actuals entered against predictions in the flight log | 30 Oct |
Next steps
| When | What | Who |
|---|---|---|
| By 10 Sep | Confirm the Business Manager account is under the artist's own login Blocking | Artist |
| By 12 Sep | Verify the domain Blocking | Artist, with us on a call |
| By 15 Sep | Choose and set up the smart-link tool, install pixel and CAPI | Us |
| By 22 Sep | Walk the three gates together, live in Events Manager | Both |
| 25 Sep | Publish Flight A | Artist |
| 30 Oct | Enter actuals against predictions in the flight log. This is a named job with a date, not a hope that someone remembers. | Artist |
| Early Nov | Grade the flight together and decide whether January runs the same shape | Both |
Sources and verification ledger
Every benchmark above traces to a source line, or is labelled as an assumption. Nothing is cited from memory.
| Fact | Used for | Verified this run | Method |
|---|---|---|---|
F-MIN-DAILY | The ten-dollar daily floor | Yes | Re-checked against current practitioner guidance |
F-META-LEARNING | Fifty events per seven days to exit learning | Yes | Unexpired, structural |
F-META-ATTRIBUTION | Removed windows, shortest-click setting | Yes | Fetch, Meta documentation |
F-META-OBJECTIVES | Sales objective, never Traffic | Yes | Checked against the current Ads Manager labels |
F-EMQ-TARGET | EMQ at or above 7, day 3 and day 7 | Yes | Unexpired |
F-BENCH-CLICK | Cost-per-click-through bands | Yes | Search, re-run this cycle |
F-BENCH-CPM | CPM planning figure | Yes, conflict unresolved | Two sources disagree; planned with the higher |
F-BENCH-SAVE | Cost-per-save kill threshold, Flight B | No published band found | Assumption, labelled in the run card: click band doubled, because a save is a deeper event than a click |
F-META-ANDROMEDA | Broad targeting, six creative slots | Yes | Search |
F-TOOL-* | Smart-link tool comparison and pricing | Yes | Fetch, vendor pages. Pricing as advertised, not a quote. |
Flight log handed over with both flights pre-filled: predictions from the bands above, actuals blank, and a dated row naming who enters them and when.
This is a setup, not a managed service: the ad account, the card, and the button are the artist's, they publish both flights themselves, and the daily budgets above are their own money rather than ours. Well Made Plays builds the tracking, the link, the audiences and the run cards, then walks through it live once. Every figure here is a planning band from a cited source or an explicit assumption, and none of it's a forecast of results. Ad platforms change their interfaces and their rules without notice; the settings above are named as the interface named them on the date of writing. Nothing in this document promises streams, saves, followers or income, and no pay-per-stream service is used or recommended.