How do you keep version control on a site list?
Part of Programmatic media planning
The short answer
Version control for a site list means freezing each approved list as a named, dated copy that is never edited, logging each change between versions with its reason, recording which campaign ran on which version, and rolling back by issuing an earlier list as a new version. The live list in a buying platform is not the record.
Key takeaways
- An approved version is frozen; any change, even one site, produces a new version number.
- A name such as client, market, purpose, date and version number makes a file findable without opening it.
- A campaign register links each line item or campaign to the exact list version it used, with upload and removal dates.
- Rollback is a forward step: the old contents return as a new version, uploaded and then checked against the platform.
Why does a site list need version control at all?
Definition
- List version
- A frozen copy of a site list at one moment, with a name, a date and a number. Once approved it is read only; any change creates the next version.
Buying platforms hold the current list, not its history. Google Ads says of shared placement exclusion lists that "Any changes you make to your list will be reflected in all the accounts that the placement exclusion list is added to." (opens in a new tab) Lists on a scheduled upload behave the same way: Google says the list "automatically updates to reflect updates made on the external source file." (opens in a new tab) Both are useful features, and both mean the list you see today cannot prove what a campaign used three months ago.
How should list versions be named?
No ad platform or industry body sets a naming standard for site lists, so pick one pattern and use it across clients. A name should answer four questions without opening the file: whose list, for which market, for what purpose, and which revision. Write dates year first, in the YYYY-MM-DD form of the W3C date and time note (opens in a new tab), so names sort in date order in any folder.
| Part | What it holds | Example |
|---|---|---|
| Client | A short client code | flr |
| Market | Country, region or metro set | us-ny-upstate |
| Purpose | Brief or flight the list serves | valentines-web |
| Approval date | The day this version was approved, year first | 2027-01-18 |
| Version | A two digit counter that never resets within one list | v03 |
| Full name | All parts joined | flr-us-ny-upstate-valentines-web-2027-01-18-v03 |
Software releases use a similar rule. The Semantic Versioning (opens in a new tab) specification states: "Once a versioned package has been released, the contents of that version MUST NOT be modified." A site list does not need major, minor and patch numbers, but it benefits from the same rule. If v03 has been approved, a corrected list is v04, even when only one domain changed.
What should a list change log record?
Platforms log their own side of the story. Display & Video 360 event history (opens in a new tab) records the "time, date, description of the change, and user that made the change," exports to CSV and accepts notes. Google Ads change history (opens in a new tab) covers the last two years. Neither knows why the planner removed a site, which evidence prompted it, or which list version the change belongs to. That is the job of the list's own change log.
Fields in one change log entry
- The version the change starts from and the version it creates.
- Each site added or removed, as the exact domain string used in the export.
- The reason for each site, in one line, with the date of the evidence behind it.
- Who made the change and who approved the new version, with dates.
- The campaigns or line items that will move to the new version, and when.
- Whether the change came from planning, from the client, or from a platform side edit found later.
Keep the log next to the versions, in the same folder or workbook, and append to it rather than editing earlier rows. A difference between two versions should be readable in the log alone: twelve sites in v03, eleven in v04, one removed because its recent articles drifted off topic, evidence dated February 2.
How do I keep a previous version of an approved list?
Five steps to freeze an approved version
- Save the approved list under its version name. Use the naming pattern, with the approval date and the next version number.
- Save the upload files beside it. Keep the exact files sent to each platform, since a platform file can differ from the planning list in format and in what was left out.
- Keep the evidence with the version. Store the site reasons and check dates as they stood on approval day, so later updates do not overwrite them.
- Make the folder read only. Remove edit rights for the approved version, or move it into an archive that only adds files.
- Write the change log entry. Record what changed from the previous version and who approved it.
Saving the upload files matters as much as saving the list. A planning sheet might hold notes and grouped sites, while the platform file holds only domains in the platform's format. If an import dropped or altered a line, only the saved upload file shows what was actually sent.
How do I preserve the approved version used for each campaign?
Keep a campaign register: one row per campaign or line item, pointing at the list version it ran on and the dates it ran. When a list is used in several places, each placement gets its own row. In Display & Video 360, where lists can be held as channels (opens in a new tab), "custom groups of related websites or apps" of up to 65,000 entries each, the register should name the channel as well as the version loaded into it.
| Column | Example entry |
|---|---|
| Campaign or line item | The name and ID exactly as the platform shows them |
| Platform and container | The platform, plus the channel or shared list name holding the sites |
| List version | flr-us-ny-upstate-valentines-web-2027-01-18-v03 |
| Loaded on | The date the version was uploaded or applied |
| Replaced on | The date a later version took over, or blank while live |
| Proof of what ran | A file downloaded from the platform after upload, saved with the date |
The proof column closes the loop. Display & Video 360 lets a user "Download composite list" (opens in a new tab) of the apps, URLs, collections and channels included for targeting. Saving that download on the day a version goes live gives the register a platform side copy to compare with the planning version.
How do you roll back to an earlier list?
Treat a rollback as a new version with old contents, never as a return to an old number. If v05 caused a problem and v04 was sound, the fix is v06, whose sites match v04 and whose log entry says so. That keeps the register honest: the campaign ran on v04, then v05, then v06, in that order.
Platform undo buttons help with recent mistakes but are not a rollback plan. Google Ads says "You can undo most types of changes that were made in the last 30 days," and an undo can fail if a related item was deleted after the change or another user already reversed it. A version kept outside the platform has no such window.
How does PlacementGraph keep track of list versions?
What does version control look like across one client's flights?
Fictional example. The brand and sites are invented; no results or performance figures are implied.
A florist delivery group in Buffalo, Rochester and Syracuse
An agency runs web display for an unnamed florist delivery group in upstate New York, with flights for Valentine's Day and Mother's Day. The first approved list, v01, holds wedding, home and local lifestyle sites across the three metros.
Before Valentine's Day the client asks to add two Rochester food and dining sites. The planner saves v02 with both sites, their reasons and a log entry naming the client request. The register shows the Valentine's line items loaded v02 on January 20, and a composite list download from that day sits beside it.
In March a Syracuse site begins running syndicated filler. The planner removes it in v03 for the Mother's Day flight and logs the evidence date. The client then asks to see the Valentine's list again for a recap: the team opens v02 and its upload file, unchanged, rather than the live list. When a later edit in v04 removes a site the client wanted kept, the planner issues v05 with v03's sites and notes the rollback in the log.
Frequently asked questions
Does a one site edit really need a new version?
Yes, once the list has been approved. A one site edit changes what the campaign can buy, and if it is made in place, the approved record no longer matches what ran. Before approval, drafts can change freely; the version number is assigned when the list is signed off.
Where should site list versions be stored?
In shared storage the planning team controls and the client relationship can outlast, such as a project folder with read only permissions for approved versions. Avoid keeping the only copy inside a buying platform or in one person's email, where it can be overwritten or lost when someone changes roles.
Can two campaigns run on the same list version?
Yes, and the register should show both. If one campaign later needs a change, create a new version for it and update only that campaign's row. The other campaign stays on the earlier version until someone decides to move it, which keeps their histories separate.
What if a buyer edited the list directly in the platform?
Record it as a change found after the fact. Download the platform list, compare it with the approved version, and either issue a new version that matches what is live, with the reason, or restore the approved contents. Then note the date the platform and the plan diverged.
Sources
- Use placement exclusion lists across your accounts (opens in a new tab)Google Ads Help
- Exclude specific webpages and videos (opens in a new tab)Google Ads Help
- Review your account history (opens in a new tab)Google Ads Help
- Event history (opens in a new tab)Google, Display & Video 360 Help
- About channels (opens in a new tab)Google, Display & Video 360 Help
- App, channel, and website targeting (opens in a new tab)Google, Display & Video 360 Help
- Date and Time Formats (W3C Note) (opens in a new tab)W3C
- Semantic Versioning 2.0.0 (opens in a new tab)semver.org
Researched and written by PlacementGraph Research. Read how we research, source and update these pages. Corrections: diana@placementgraph.com.