File format
- A CSV file, or a Google Sheet connected as a scheduled upload.
- Two columns, with a header row using Google’s exact names:
Page URLandCustom label. - One row per URL. A page that isn’t in the feed can’t be targeted through it.
Custom labelis optional. A feed with no labels can only be targeted whole.
Column template
Each row carries a specific label and, where it helps, a broader one. That’s what makes the same feed targetable at two levels: one ad group or asset group takes
DRINKWARE, a narrower one takes TUMBLERS.
Format rules
Name the file per file naming conventions, with the feed type and date in the name.
Naming custom labels
A label is a targeting handle, so add one only where you’d want to bid, budget, or write differently for that group of pages. A label nobody targets is a column nobody maintains. House convention for this knowledge base:- Uppercase, with underscores instead of spaces:
GIFT_SETS, notGift sets. - One casing convention across the whole feed, so a targeting rule matches what’s actually in the file.
- One specific label plus one parent label per URL, as in the example above. Deeper hierarchies are hard to keep accurate once the site changes.
- Label by what you’d manage separately: product category, margin band, stock level, page type. The URL already says what the page is about.
Where the feed is used
With final URL expansion on, a Performance Max page feed confirms which URLs Google has indexed, and the campaign can still serve URLs outside the feed. With expansion off, the campaign only sends traffic to the URLs in your asset groups.
Uploading
1
Build the file
Two columns, exact headers, one row per URL. Pull the URLs from the site pages register and the landing page library so the feed matches pages someone owns.
2
Upload it
In Google Ads, go to Tools > Business data, add a new data source, and choose Page feed. Name the feed, choose the file, preview it, then apply.
3
Wait for the crawl
Google takes an average of 2–14 days to crawl a new feed. Build that lead time into the launch date.
4
Target it
Point the campaign or ad group at the feed, then add the label conditions. A feed that’s uploaded but not targeted changes nothing.
Limits
Google’s own help pages don’t agree on the feed count: the account limits page states 180 page feeds per account, while the Dynamic Search Ads page still says 100. Plan against 100 if you’re anywhere near either number.
Before you upload
- Every URL returns a live page, checked as a batch with a crawler.
- No tracking parameters in any URL.
- No duplicate URLs.
- Labels match the values your targeting rules use, character for character.
- Pages in the feed are registered in the site pages register or landing page library, so each one has an owner.
- Landing pages meet the same standard as any other paid destination. A page feed makes it easy to send traffic to a page nobody briefed.
Official documentation
- Use a feed to target Dynamic Search Ads and Performance Max
- How to use page feeds in Performance Max
- About Dynamic Search Ads
- About your Google Ads account limits
- Dynamic Search Ads page feeds, Google Ads API
Related resources
- Google Campaign process, specs, and copy templates.
- Google template directory Every Google template in one list.
- Site pages register Where standing page URLs come from.
- Landing page library Where campaign page URLs come from.
- UTM standards Tagging the ad, not the feed.
- Google Merchant Center feed templates The product-feed equivalent.