Insights · Playbook

How to Build an End-of-Year Campaign in 2026

Gather the data, ideate the story, produce the assets. The whole playbook, and the part that actually breaks.

An end-of-year campaign is a personalized recap that hands each person their own year told back to them: their milestones, their numbers, their story, built as a shareable asset. The best ones are not ads. They are gifts people post themselves. Building one takes three phases: gather the data, ideate the story, and produce the assets at scale.

Updated 2026 · By Carlos · 8 min read

Every year-end recap you have ever screenshotted worked the same way. It took data you did not think was interesting, your streaming history, your steps, your spending, and told it back to you as a story about you. You did not feel marketed to. You felt seen, and you posted it.

That is the whole model, and it is available to any brand sitting on customer data. The catch is production. Most teams can design one beautiful recap. They cannot design fifty thousand. So they send everyone the same graphic with a first name pasted on top and call it personalized. It is not, and recipients can tell.

The winning end-of-year campaigns are not better designed. They are more individual, at a scale hand-design cannot reach.

Here is how the good ones get built, in three phases. If you want examples first, the best end-of-year campaigns for inspiration breaks down what Spotify, Duolingo, and others actually did. This is the how, not the what.

The three phases

01Gather the data

You already have the story. It is sitting in your data. The job is to find the five to seven data points per person that make someone feel recognized, not surveilled.

Pull from where the behavior lives: your CRM, your product database, your warehouse, your transaction log. Favor first-party and zero-party data, the things a person did with you and the things they told you directly. Milestones, totals, firsts, streaks, favorites, anniversaries. A structured export, one row per recipient, is all the engine needs downstream.

Skip anything that reads as creepy. The line is simple: use what a person would be proud to see reflected back, not what they would be startled you tracked.

Deliverable: one clean, structured dataset, one row per recipient

02Ideate the story

Data is not a narrative. Your job in this phase is to decide the arc: what is the one thing this recap makes each person feel about their year with you.

Pick the through-line, then the beats. A seller sees the deals they closed and the rank they hit. A community member sees the events they showed up for and the people they met. A listener sees their top artist and the night they played it twelve times. Design the emotional moment first, then choose the data points that deliver it. Run every draft through one test: would the recipient post this without being asked.

This is also where you set the recipient experience, the reveal, the order, the single stat that lands hardest. The story is the same template for everyone. The data inside it is theirs.

Deliverable: one story template, mapped to the data fields

03Produce them

This is where every end-of-year campaign either ships or dies. One template, thousands of genuinely unique, on-brand assets, in the formats people actually post: portrait, story, square, and video.

Hand-design cannot do it and generative AI should not. A model guessing at your layout goes off-brand and invents details you cannot stand behind. What the moment needs is precision rendering, not generation: your real design, your real data, composed exactly, one asset at a time, at volume.

That is what Ditto is. Structured data plus your HTML and CSS templates, rendered into one unique asset per recipient, video and images and carousels, on-brand on every frame, in two to three days. No off-brand drift, no model in the middle. See how it works, or the case for AI-free personalization if the gen-AI question is live for your team.

Deliverable: thousands of one-of-one assets, ready to deliver

The timeline nobody respects

The single most common way an end-of-year campaign fails is starting in October. Personalized production has a lead time, and the year-end inbox is a knife fight. The teams that win start in summer and ship before the cluster. Here is the shape of a calendar that works.

Jul to Aug
Scope + data. Lock the concept, confirm the data exists and is clean.
Sep
Story + design. Build the one template and its variants.
Oct
Render + QA. Produce the run, proof a sample, fix, re-render.
Early Dec
Ship early. Land before the year-end pile-up, not inside it.

If you are reading this in the fall, you are not out of time, you are out of slack. A precision-rendering pipeline compresses the back half, but it cannot invent data you never collected. The end-of-year campaigns overview covers the concept-to-delivery path in more detail.

7,000+
Unique assets, one per songwriter
87%
Email open rate
44%
Downloaded on day one

Ditto built Spotify's Songwriter Wrapped: 7,000 one-of-one recaps rendered from a single data set. Read the Spotify Songwriter Wrapped case study.

Do it in-house or bring in the engine

You can run all three phases internally if you have a data team, a design team, and a rendering pipeline that will not buckle at volume. Most teams have the first two and not the third, which is exactly why the personalized version gets cut every year. The data work and the story work stay yours. The production is the part worth handing to an engine built for it. When you are ready to scope one, see pricing or start a campaign idea.

FAQ

When should I start an end-of-year campaign?

Summer. Scope and confirm your data in July and August, build the story and design in September, render and QA in October, and ship in early December before the year-end inbox gets crowded. Personalized production has a lead time that October starts cannot absorb.

What data do I need for a personalized recap?

Five to seven first-party data points per person: milestones, totals, firsts, favorites, anniversaries. A structured export with one row per recipient is enough. Use what a person would be proud to see, not what would startle them.

Do I need generative AI to personalize at scale?

No. Generative AI risks off-brand output and invented details. End-of-year recaps are better built with precision rendering, which composes your real templates and real data into exact, on-brand assets. See the case for AI-free personalization.

Can an end-of-year campaign include video?

Yes. Ditto renders personalized video alongside images and carousels, one unique cut per recipient, on-brand throughout. Video is the format people are most likely to share, so it belongs in the run, not as an afterthought.

How is this different from a mail merge?

A mail merge swaps a name into one fixed layout. A rendered recap changes the content, the story, and the visuals per person from their own data, across multiple formats including video. One feels like a form letter. The other feels like a gift.

Every brand has a year in review hiding in its data.

You bring the data and the story. Ditto renders the thousands of one-of-one assets, video included, on-brand, in days. Start with one idea.

Start a Ditto Campaign