Swipe File Template: 13 Fields for Saving Meta Ads

A good swipe file template is a table with one row per saved ad and 13 columns: advertiser, date saved, started running date, days live, format, hook, angle, offer, CTA, landing page, why it works, tag, and a link to the original. Copy the template below into a spreadsheet or a Notion database, fill one row each time you save an ad, and you will have a swipe file you can filter by angle instead of a folder of screenshots.
I have rebuilt my own swipe file three times. This is the version that stuck.
What is a swipe file template, and why use one?
A swipe file is a saved collection of ads you study before you write your own. If the idea is new to you, start with what a swipe file is and come back.
The template is the structure you save into. Without one, every ad gets a different kind of note depending on who saved it and how tired they were. Six weeks later nobody can find anything, and the swipe file dies quietly.
A fixed set of columns fixes that. Every ad answers the same questions in the same order. That is what lets you sort forty ads by how long they have run, or pull every "pain-point" hook in the file in one click. The template is what turns saving into research.
What columns should an ad swipe file template have?
Here is the full template. Copy the header row exactly, then add rows as you save ads.
| Field | What to enter | Type |
|---|---|---|
| Advertiser | The Page name as shown in the Ad Library | Text |
| Date saved | The day you saved the ad | Date |
| Started running | The "Started running on" date from the ad card | Date |
| Days live | Date saved minus started running | Number (formula) |
| Format | Static, video or carousel | Dropdown |
| Hook | The first line of copy or the first visual beat, written out | Text |
| Angle | The core argument: pain-point, social proof, offer, founder story, us-vs-them, UGC | Dropdown |
| Offer | The deal, if any: discount, bundle, free shipping, trial | Text |
| CTA | The button label and any CTA line in the copy | Text |
| Landing page | Where the click actually goes | URL |
| Why it works | One sentence in your own words | Text |
| Tag | Your status or project label: to review, reference, testing, plus a brief name | Dropdown |
| Link to original | The ad's Ad Library link | URL |
That is 13 fields. It looks like a lot, but most take a few seconds. Advertiser, dates, format, CTA and the link are copy-and-paste. The fields that need thought are hook, angle and why it works, and those are the ones that make the file worth keeping.
Why does "days live" matter most?
Because it is the only performance clue Meta gives you for a normal commercial ad.
The Meta Ad Library shows no spend and no engagement numbers for regular ads. It does show when each ad started running. Advertisers keep paying only for ads that work, so an ad that has run for two or three months is usually a winner, and one that started last week is still a test. I go deeper on this in the guide to Facebook ad longevity.
Store it as a formula, not a typed number. In Google Sheets or Excel, if "Date saved" is column B and "Started running" is column C, put this in column D:
=B2-C2
Format the cell as a plain number and drag it down. Now you can sort the whole file by days live and see your strongest references at the top.
What does a filled-in row look like?
Here is a hypothetical example, so you can see the level of detail. The brand and ad are made up for illustration, not taken from a real advertiser.
| Field | Hypothetical example |
|---|---|
| Advertiser | Example Skincare Co |
| Date saved | 2026-10-10 |
| Started running | 2026-07-14 |
| Days live | 88 |
| Format | Video |
| Hook | Close-up of a hand pressing a dry, flaky cheek, text on screen: "My skin in January" |
| Angle | Pain-point |
| Offer | 20% off first order |
| CTA | Shop Now |
| Landing page | Product page for the moisturiser, not the homepage |
| Why it works | Opens on a feeling the viewer recognises before showing any product, then cuts to the routine |
| Tag | Reference, Q1 winter brief |
| Link to original | The ad's Ad Library link |
Notice what "why it works" is doing. It is not "great ad" or "nice colours." It names the structure: problem first, product second. That sentence is what you will hand a designer later.
How do you set up the template in a spreadsheet?
A spreadsheet is the fastest way to start. Google Sheets is my default because anyone on the team can open a shared link without buying another seat.
- Create a new sheet and paste the 13 field names into row 1. Freeze row 1 so it stays visible.
- Set columns B and C to date format and put the
=B2-C2formula in column D. - Turn format, angle and tag into dropdowns. In Google Sheets that is Data, then Data validation, then a dropdown with your fixed list. Excel has the same thing under Data Validation.
- Turn on a filter for the header row so you can sort by days live and filter by angle.
- Add a second tab called "Lists" that holds your dropdown options, so changing a list happens in one place.
That is the whole setup. A spreadsheet will not store video files, so the "link to original" column and a matching file name do the job of connecting each row to the saved asset.
How do you set it up in Notion instead?
Notion works well if you want to see the creative next to the notes. Create a database in Table view and add each field as a property: Date properties for the two dates, Select for format, angle and tag, URL for landing page and the original link, and a Formula property for days live.
You can also drop the image or video file into each row's page, which a spreadsheet cannot do. The trade-off is that Notion is slower to fill in bulk. The full property-by-property setup is in our guide to building a swipe file in Notion.
My rule of thumb: spreadsheet if you save more than ten ads a week, Notion if you save fewer and want the visuals inline.
What naming convention should saved ad files use?
Files need names that sort and search without opening them. I use this pattern:
advertiser_YYYY-MM-DD_format_angle_01
So the hypothetical row above would be saved as example-skincare_2026-07-14_video_pain-point_01. A few rules keep it clean:
- Use the started running date, not the save date, so files from the same campaign sit together.
- Lowercase, hyphens inside a field, underscores between fields. That lets you split names into columns later.
- Add a two-digit number at the end when one advertiser runs several versions on the same day.
- Use the same angle words as your dropdown. If the sheet says "pain-point," the file says "pain-point."
The same logic applies to your own campaigns. Our post on Facebook ad naming conventions covers it for Ads Manager.
How do you fill the template quickly?
The slow part is never the columns. It is capturing the ads in the first place.
Here is how I do it. I search a competitor or keyword in the Meta Ad Library, filter to active ads, and scan the "Started running on" dates for anything that has run a few weeks or more. Then I save those ads before they disappear, because paused ads usually vanish from the library. For that step I use our free extension, which adds a Download button to every ad and can bulk-export a whole search into one ZIP. The export includes a CSV of every ad and files named by advertiser and date, so the advertiser, date and link columns are already filled when I paste it into the template. The step-by-step for manual and extension methods is in the guide to downloading Facebook Ad Library videos.
Then I fill hook, angle, offer and why it works by hand. Those need judgement, and they are the reason the file is worth having.
How do you keep the swipe file useful after week six?
Templates fail when the dropdown lists grow out of control. Keep the angle list to six or seven options, and pick one primary angle per ad even if two could fit. Fifteen minutes a week sorting by days live and filtering by angle is enough to spot patterns across brands. The full tagging system and weekly routine are in how to organize a swipe file.
And remember what the file is for. Copy the angle, not the asset. Saving public ads for research is standard practice, but running another brand's footage or images in your own ads is a different thing. This is general guidance, not legal advice.
FAQ
What should a swipe file template include?
At minimum: advertiser, date saved, started running date, days live, format, hook, angle, offer, CTA, landing page, why it works, a tag and a link to the original ad. Days live and angle are the two fields you will filter by most.
Is a spreadsheet or Notion better for a swipe file?
A spreadsheet is faster to fill and easier to share, so it suits people saving more than ten ads a week. Notion lets you embed the image or video in each row, which suits smaller, more visual swipe files.
How do I calculate days live for a saved ad?
Subtract the "Started running on" date from the date you saved the ad. In a spreadsheet, a formula like =B2-C2 does it automatically, and you can then sort the whole file by longevity.
How many tags should a swipe file have?
Keep the angle list to six or seven options and pick one primary angle per ad. More options than that and tagging stops being quick, which is when people stop doing it.
Can I reuse ads from my swipe file?
Use them for research and briefs, not as your own creative. Study the hook, angle and structure, then rebuild it with your own product and footage. This is general guidance, not legal advice.
The Klipio extension adds a download button to every ad in the Meta Ad Library: one click per ad, or bulk-save a whole search as a ZIP with a searchable swipe file inside. Free, no sign-up.
Get the free Ad Library downloaderKlipio reads a competitor's live Meta ads, ranks them by how long they have been running — the honest signal that an ad is profitable — and turns the winning angle into on-brand creative for your own brand. 3-day free trial.
Start free — 3-day trial →

