Skip to content
PlacementGraph™
DSP site lists

How do you upload an approved site list to a DSP?

Part of Google Ads placements

The short answer

To upload a site list to a DSP, start from the approved version, clean it to one domain per line, save it as a reusable list, mark it as an inclusion or exclusion list, then attach it to each line item that should use it. Afterward, read the upload result, compare counts and confirm targeting on existing line items.

Key takeaways

  • A saved list does nothing until a line item targets it; storing the list and activating it are two separate steps.
  • Inclusion and exclusion lists solve different problems, and a list built as one should not be loaded as the other.
  • A website list matches web inventory only: in OpenRTB 2.6 a bid request carries a Site, an App or a DOOH object, never more than one.
  • Check the upload result file, the attached line items, environment and geography settings, and allow a few hours before judging delivery.
  • Keep one source of truth outside the DSP and record the list version beside each change in the platform's history.

How do you upload a site list to a DSP?

A demand side platform bids on impressions according to the targeting a buyer sets, and a site list is one piece of that targeting. The upload has two halves: storing the list in the platform, and telling specific line items to use it. Google's Display & Video 360 channel page (opens in a new tab) is explicit that a saved channel has to be targeted through Apps & URLs in line items, or set in insertion order default targeting, before it takes effect.

From approved list to live targeting
From approved list to live targetingThe list exists in the platform after the third step, but it changes bidding only after the fourth. 1. Approved version: The signed off file, with its version. 2. Clean: One domain per line, destination format. 3. Save list: Reusable list or channel, mode set. 4. Attach: Target it on each intended line item. 5. Verify: Result file, counts, settings. 6. Record: Version noted in change history01ApprovedversionThe signedoff file,with itsversion02CleanOne domainper line,destinationformat03Save listReusablelist orchannel,mode set04AttachTarget it oneachintendedline item05VerifyResult file,counts,settings06RecordVersionnoted inchangehistory
From approved list to live targetingThe list exists in the platform after the third step, but it changes bidding only after the fourth. 1. Approved version: The signed off file, with its version. 2. Clean: One domain per line, destination format. 3. Save list: Reusable list or channel, mode set. 4. Attach: Target it on each intended line item. 5. Verify: Result file, counts, settings. 6. Record: Version noted in change history01Approved versionThe signed off file, with itsversion02CleanOne domain per line, destinationformat03Save listReusable list or channel, modeset04AttachTarget it on each intended lineitem05VerifyResult file, counts, settings06RecordVersion noted in change history
The list exists in the platform after the third step, but it changes bidding only after the fourth.

Seven steps to load an approved site list

  1. Open the approved version, not the latest draft. Note its version name and its site count before touching the file.
  2. Clean the entries. Reduce each one to the domain or path the plan approved, with no protocol or tracking parameters, as set out in the placement list format guide.
  3. Choose the container. Use the platform's reusable list object when several line items will share the list, and direct entry on a line item only for a one-off.
  4. Set the mode. Mark the list as inclusion or exclusion at creation, matching what the planner approved.
  5. Attach it. Add the list to each intended line item, including ones that already exist; defaults set higher up may only reach new ones.
  6. Read the platform's response. Fix rejected rows rather than deleting them, and note what was changed.
  7. Record the load. Write the list version, the count that landed and the line items it reached in the platform's change notes.

Should a list be loaded as an inclusion or exclusion list?

Load it in the mode it was built for. Display & Video 360 describes the two uses of a channel plainly: inclusion means a preset, targetable list of brand-appropriate publishers, and exclusion means a preset, excludable list of publishers where the advertiser does not want ads to serve. An inclusion list built from a brief is a short set of sites chosen for fit. An exclusion list is a set of known problems. Turning one into the other by flipping the mode produces a campaign nobody planned.

Inclusion and exclusion lists in a DSP, strengths and weaknesses
ModeStrengthsWeaknessesFits when
InclusionOnly listed sites are eligible; unreviewed sites cannot receive impressions; the list doubles as the client's approved recordLimits available inventory, so a short list can leave budget unspent; new good sites stay out until someone adds themThe brief needs control over context and the plan was built site by site
ExclusionKeeps reach broad while blocking known problems; easy to extend as issues appearAnything not yet listed stays eligible, so new sites run before anyone reviews themReach matters more than context and the team maintains the list actively
Both togetherAn exclusion list catches sites that should never run even if an inclusion list later growsTwo lists to version and check; a site on both needs a rule for which winsSeveral teams share an advertiser and some line items run without an inclusion list

Which file formats do DSPs accept for site lists?

Formats vary by platform, so read the destination's documentation before building the file. Three shapes cover the documented cases in Google's buying platforms, and the same shapes are a sensible starting point when checking any DSP's help pages.

Site list file shapes documented in Display & Video 360 (checked October 22, 2026)
ShapeWhere it is documentedRules to respect
One entry per line, pasted or entered in bulkApps & URLs targeting (2650521 (opens in a new tab)) and channels (2717490 (opens in a new tab))No spaces or quotation marks; items separated by a carriage return; up to 65,000 entries per channel and a combined 10,000 apps and URLs per line item
Structured Data File (CSV)SDF format reference (developers.google.com (opens in a new tab))First row is a header; string values after it sit in quotation marks; list items separated by semicolons
SDF uploadUpload help (6301070 (opens in a new tab))Saved as CSV; each file gets a status of Updates applied, Partially successful or Failed

The bid request explains why a website list and an app list stay separate. In OpenRTB 2.6 (opens in a new tab), a bid request must not contain more than one of a Site, App or DOOH object. A website carries its domain in the Site object, while an app is identified by its store ID in the bundle field, a package name such as com.foo.mygame for Google Play and a numeric ID for the Apple App Store. A list of domains does not name apps. Display & Video 360 adds a twist: targeting a website can also reach its mobile or connected TV app by default, so set environment targeting when only web inventory is wanted.

How do you check the list after upload?

Verification starts with the platform's own answer. Display & Video 360 verifies each uploaded SDF and offers a result archive with an updated file for applied changes and a failed file listing rows with errors to correct and upload again. A Partially successful status means part of the list is live and part is not, which is the worst state to leave unread.

Post-upload checks for a DSP site list

  • The upload status was read, and any failed rows were corrected and uploaded again.
  • The count of entries in the platform matches the approved version, using the line item's Download composite list where available.
  • The list sits in the intended mode, inclusion or exclusion.
  • Each intended line item targets the list, including line items created before the list existed.
  • Environment targeting matches the plan, so a web list does not quietly reach app or connected TV inventory.
  • Geography targeting is set: Display & Video 360 says a line item with no geography targeting bids on impressions from all locations.
  • Each line item is active, has budget and has an active, assigned creative.
  • The list version and load date are written in the change notes.

Give the change time before reading delivery. Google's targeting page says a few hours may pass after an update to an active line item before bidding reflects it. Read the first served domain report against the approved list once delivery has had a day to settle, as covered in the served domain reconciliation guide.

How do you keep DSP lists in sync with the approved version?

Keep the approved list outside the DSP and treat the platform copy as a deployment of it. When a planner changes the list, a new version is issued, and the buyer updates the platform from that version. Edits made directly in the platform drift away from the record; the site list version control guide covers naming and rollback.

Know where an update lands. In Display & Video 360, advertiser targeting applies to all current and future campaigns, while insertion order default targeting only affects new line items, so replacing a default leaves existing line items on the old list. The platform's event history (opens in a new tab) records the time, date, description and user for each change, can show system changes, accepts notes visible to anyone with access and downloads as CSV. A note naming the list version turns that history into an audit trail.

What does a DSP list upload look like on a real brief?

Fictional example

A pet daycare and boarding brand in Maine

A fictional dog daycare and boarding business with locations in Portland and Bangor, Maine, asks its agency for English display ads beside pet care advice, local news and family activity coverage. The planner approves version 3 of an inclusion list with 64 sites, and the buyer loads it into the agency's DSP.

The buyer saves the list as a reusable inclusion list, attaches it to the two existing line items and reads the upload result: two rows failed because they still carried a tracking parameter. After cleaning and reloading them, the platform count reads 64. The buyer then notices the line items had no environment setting, so the web list could also reach apps, and limits both to web.

A week later the planner issues version 4, removing one site and adding three. The buyer updates the saved list from the new file instead of editing it by hand, confirms 66 entries and adds a change note naming version 4.

How does PlacementGraph prepare a site list for a DSP?

Frequently asked questions

Should each line item get its own copy of the site list?

Use one shared list wherever the platform allows it. Copies pasted into separate line items have to be updated one by one when the approved version changes, and a missed copy keeps running the old list. A shared list object changes everywhere it is attached, which keeps the platform closer to the record.

What happens to a site on the list that the DSP cannot buy?

Nothing visible at upload. A list entry permits bidding but does not create inventory, so a site with no supply reaching that DSP simply receives no impressions. Compare the served domain report with the approved list after launch to find these sites, then tell the planner which ones never delivered.

Can a site list be uploaded at the advertiser level instead of per line item?

In Display & Video 360, yes, with a wide effect. Google says advertiser targeting applies to all current and future campaigns under that advertiser. That suits an exclusion list the whole advertiser should respect. It does not suit an inclusion list built for one brief, because each future campaign would inherit it.

Does a site list upload need a second person?

It helps. A second reader who did not build the load, comparing the platform count, mode and attached line items with the approved version catches mistakes the loader misses. Record both names with the list version in the change notes.

Sources

  1. About channels (opens in a new tab)Display & Video 360 Help
  2. App, channel, and website targeting (opens in a new tab)Display & Video 360 Help
  3. Set targeting (opens in a new tab)Display & Video 360 Help
  4. Create or edit entities with Structured Data Files (opens in a new tab)Display & Video 360 Help
  5. Structured Data Files format (opens in a new tab)Google for Developers, Display & Video 360 API
  6. Event history (opens in a new tab)Display & Video 360 Help
  7. OpenRTB 2.6 specification (Object: Site, Object: App) (opens in a new tab)IAB Tech Lab
  8. Exclude specific webpages and videos (opens in a new tab)Google Ads Help

Researched and written by PlacementGraph Research. Read how we research, source and update these pages. Corrections: diana@placementgraph.com.

HOW AGENCIES WORK WITH US

From your first brief.
To your next campaign.

Share a brief in plain language. Get contextual websites and YouTube channels that fit it, with the evidence behind every pick and a deal ready for your usual buying platform.

  1. 01

    Share your brief

    The campaign in plain language.

  2. 02

    Get your shortlist

    The strongest contextual sites and channels, with the evidence behind each.

  3. 03

    We build the deal

    Your shortlist becomes a curated deal through our exchange partners.

  4. 04

    Activate and grow

    Buy in your usual platform. Agencies earn benefits as their investment grows.

LET’S WORK TOGETHER

Your next campaign starts here.

Your details will only be used to respond to your enquiry.

Prefer email? diana@placementgraph.com

YOUR PRIVACY

You choose whether to allow optional analytics. You can use the whole website either way.

Change or withdraw consent at any time using “Cookie preferences” in the footer. Turning analytics off stops future collection and removes this site’s analytics cookies; it does not erase information already sent. The page may refresh to apply withdrawal.