Blog

CSV import of products for dynamic remarketing

Generating the product feed from your warehouse is one query. Keeping it in sync is the longer story.

Dynamic remarketing campaigns rely on a product feed that maps your product IDs to images, descriptions, and prices. Most ecommerce platforms provide a feed automatically; if yours does not, or if you need a custom feed, generating it from your warehouse is straightforward.

The required columns

ColumnRequiredNotes
idYesMust match the IDs you send in remarketing events.
titleYesMax 150 characters.
linkYesDirect URL to the product page.
image_linkYesMin 100x100, max 64MP.
availabilityYesin_stock, out_of_stock, preorder, backorder.
priceYesFormat: "29.99 EUR".
conditionYesnew, used, refurbished.
brandRecommendedFor most categories.
gtinRecommendedImproves match quality.

Generate from BigQuery

EXPORT DATA OPTIONS(
  uri='gs://your-bucket/feed/products-*.csv',
  format='CSV',
  overwrite=true,
  header=true
) AS
SELECT
  product_id AS id,
  title,
  CONCAT('https://example.com/products/', slug) AS link,
  primary_image AS image_link,
  CASE WHEN inventory > 0 THEN 'in_stock' ELSE 'out_of_stock' END AS availability,
  CONCAT(CAST(price AS STRING), ' EUR') AS price,
  'new' AS condition,
  brand,
  gtin
FROM `your_project.products.current`

Schedule the refresh

Google Merchant Center re-fetches feeds on a schedule you set. Daily is the standard; for fast-moving inventory, every 4-6 hours. Schedule your BigQuery export to run before the fetch so the latest data is always present.

Validate before uploading

A feed with one malformed row will reject the entire batch. Validate locally before pushing to Merchant Center. Common issues: prices missing the currency suffix, image URLs requiring auth, product IDs containing spaces.

Once the feed is clean, your remarketing events will line up with feed entries and the dynamic ads will use the right products.