Create a dynamic feed

A dynamic feed contains every version of the content that can be served in the creative. Feeds allow advertisers to update content easily and quickly, without having to update the creative assets.

Create the feed file

To set up a feed, follow the steps below or start with this sample feed. You can also browse our sample feed database for more examples.

Supported feed formats

Choose the format that best meets your needs:

  • Google spreadsheet (recommended) – For feeds up to 50,000 rows
  • CSV – For feeds larger than 50,000 rows
  • TSV – For feeds larger than 50,000 rows
  • XML – For feeds larger than 50,000 rows


All feed filenames must start with a letter, not a number. For example, name your feed "Feed1_25103785", instead of "25103785_Feed1".

Google Sheets feed limitations

  • Shared drives aren't supported. Instead, create your feed in "My Drive", then share it with your team.
  • Dropdown lists in cells aren't supported. Instead, use one value per cell.
  • Cell values that are calculated from formulas aren't recommended. Any case where the cell value may not be available when Studio searches your feed may cause issues. Instead, use a static value.

Add the required columns

To start a new feed, add the following columns. Dynamic feeds can contain a maximum of 700,000 rows and 100 columns.

  1. Unique_ID: Each row of content must be populated with a unique value in this column. This column is used to track rows of content across feed and/or content changes. For example, if a new feed is required, the Unique ID links rows in the original feed to rows in the new feed.
  2. Reporting_Label: This column is used for dynamic reporting in Campaign Manager 360. Use the reporting label to differentiate content changes between rows. For example, one row might contain "Pizza_for_moms", while the next row contains "Pizza_for_kids".
(Optional) Add the targeting column

This column is used for dynamic content selection strategies (except optimization). The contents of this column depend on the strategy used. You must include a value for each row in this column of the feed to ensure that content is properly selected.

Refer to the strategy kits for more strategy-specific information on how to populate this column of the feed.

In all of the sample feeds in the sample feed database, the columns used for targeting purposes are highlighted in blue.

Add a column for each dynamic element

You'll need to create a separate column in the feed for each dynamic element. Dynamic elements include but are not limited to the following:

Column header names must start with a letter, not a number.
  • Headline_Text: Enter dynamic copy for the ad. If desired, use HTML code for line breaks, superscripts, etc.

  • Headline_Color*: To change the color of the copy dynamically, add a column for color. Enter the corresponding hex code for the desired color (e.g. place #ff0000 in this column to make the text red).

  • Headline_Font_Size*: To change the size of the copy dynamically, add a column for font size. 

  • CTA: Copy for the call-to-action text. If desired, use HTML code for line breaks, superscripts, etc.

  • Image_URL: The full URL where the image is hosted. Images must be either .png or .jpg format. To avoid problems downloading the image, avoid special characters. The URL can be a temporary location for hosting the image. When you upload the feed to Studio a copy of the image is hosted on Google's ad servers for your campaign.

  • Exit_URL: The full URL to which the user is directed.

* If the font size of the headline and CTA are both changing dynamically, add one column for headline font size and one column for CTA font size. The same principle applies to font colors.

Certain words and punctuation can't be used as column header names because they are also used as properties of the dynamic element object in the creative code. If Studio detects restricted words or punctuation marks in a column header name, you'll get an error when you transform your feed.
(Optional) Add reporting dimension columns

Dynamic reporting has the capability to drill down to specific elements within a feed to show how they are performing. You can choose up to six columns in the feed as reporting dimensions; however, they must have a field type of "text" or "Exit URL". (Learn how to select columns for reporting dimensions.)

(Optional) Add default and/or active columns

You can further control which content served by adding columns that set certain rows as default or active:

  • The default setting enables you to set certain rows in the feed as default content. If the user viewing the ad does not meet any of the targeting criteria, then the user will be served the default row of content. Refer to the default setting article for more information.
  • The active setting enables you to determine which rows in your feed are eligible to be served by turning the rows on or off. Refer to the active setting article for more information.

Check your feed for errors

Due to their highly customizable nature, dynamic feeds often contain errors such as:

  • Missing required columns
  • Incorrect date formats
  • Country code typos
  • Illegal column names
  • Extra white space around cell contents
  • Special characters (symbols, accent marks, and punctuation marks)
  • More than one set of "//" or "%2F%2F" in image URLs
    • "//" can only appear after the initial "https:" (for example, "")
    • If "//" is used more than once in the same URL, the image might not load (for example, "")

Each feed can have up to 100 columns. Individual values in a row don't have a specific limit. However, each row can have a maximum total size of 10 KB. To estimate the size of a row, one character can be from 1–4 bytes, depending on the character encoding.

Most values should only use the following characters:

  • Uppercase and lowercase letters (A-Z, a-z)
  • Numbers (0-9)
  • Underscore (_)
  • Hyphen (-)

Some special characters are allowed in remarketing feeds.

Share the feed with Studio

When your feed is ready, share it with two Studio service accounts to allow Studio to view your feed data:

  1. Open your spreadsheet.
  2. Click Share.
  3. Copy these addresses and paste them in the "Add people to send the link to" field:,
  4. (Optional) Click Copy link to copy the spreadsheet's URL. You can use this URL to quickly add your feed as a content source in the next step.

Test the new feed with your creative

Open the feed to review what elements and content should appear in the creative. To make quick adjustments to the profile as you test, test your dynamic creative in draft mode instead of published mode. Learn more about the differences between draft and published profiles

Step 1: View your feed

The feed content can also be in either draft mode or published mode. Learn how to view each type below.

View your draft feed spreadsheet
  1. Click Dynamic Content.
  2. Open your advertiser and profile.
  3. Click Manage Data.
  4. Click Edit next to the feed name under "Transformed Content".
  5. (Optional) To see the full spreadsheet, click Open in new window.
View your published feed spreadsheet or other feed formats
  1. Click Dynamic Content.
  2. Open your advertiser and profile.
  3. Click Manage Data, then click the feed name under "Transformed Content".
  4. Under "Associations", click the feed name next to "Content source".
    • If your content source is a spreadsheet:
      • Click Download as CSV to download the transformed spreadsheet.
      • To view the spreadsheet in Studio:
        Under “Associations” click the feed name again, then use the up and down arrows to view more data.
    • If your feed is a CSV or XML file:
      • Under "General", click Download as CSV.
      • To download the content source directly, under “Associations” click the feed name next to "Content Source", then click Download.

Step 2: Compare the feed with your creative

Open the tearsheet and compare the feed content with the creative. If the feed data doesn't match, you can inspect the data and troubleshoot.

Frequently asked questions

Are there any restrictions on naming column headers?
Yes, there are certain words that cannot be used as column header names. In addition, there are certain types of punctuation that cannot be used within column header names. See the full list of column header restrictions.
What should I know about including different languages in the feed?
There are no restrictions on using different languages within the feed. However, when the feed is uploaded into Studio, make sure to change the character set type to UTF-8.
I'm still working on creating all the images that will be used in this campaign. Is it OK to leave the image cells in my feed blank?

Any image columns in the feed must be populated with a valid URL. If you don’t want to include an image in a particular row, you can populate the cell with a transparent image URL instead. If you leave an image cell blank, you will receive a transformation error.

Was this helpful?

How can we improve it?

Need more help?

Try these next steps:

Clear search
Close search
Google apps
Main menu