Skip to content

Product catalog

Shopping and dynamic ads are only as good as the catalog behind them. A stale feed advertises the wrong price, promotes products that are out of stock, and gets items rejected outright. Product catalog keeps the feed current from the system that already holds the truth.

Both catalog destinations take Google BigQuery and nothing else.

SourceDestination
Google BigQueryGoogle Product Catalog
Google BigQueryGoogle Local Product Inventory

Supported sources

CategorySupported
Warehouse

Supported destinations

You need a Google Cloud project with BigQuery enabled, and a service account whose key is exported as a JSON file. This connector uses a service account key rather than a sign in.

As a source, the service account needs these two roles:

  • BigQuery Job User
  • BigQuery Data Viewer

You also need the project ID, the dataset ID, and either the table name or a SQL query.

  • The project is taken from the service account key, so the project ID you enter has to be the same project the key belongs to. A key from a different project validates as a credential and then finds no dataset.
  • The table name is typed rather than selected, so it has to match BigQuery exactly, including case.
  • Grant the service account only the roles it needs, and grant them on the dataset rather than the whole project.

Signals reads only. Nothing is written back to BigQuery.

Column names decide whether anything arrives

Section titled “Column names decide whether anything arrives”

Signals matches on column names. A column that has been renamed or cased differently is not recognized, and the row it belongs to is dropped rather than reported. A query that runs correctly but returns the wrong column names will validate at setup and then fail silently once live.

Alias your columns in the SELECT to the names in the downloaded file format.

These are Google and Meta catalog rules, not Datahash behavior, but they are what causes most feed problems.

ProblemConsequence
Missing required fields such as ID, title, image link or availabilityProducts are rejected.
Duplicate or inconsistent IDs across productsCatalog matching fails, which breaks dynamic ads and retargeting.
Feed refreshed infrequentlyOutdated pricing and out of stock products shown.
Product variants without a shared group IDVariants are not grouped correctly in product sets.
Country specific feeds not configuredCatalog ads do not localize by region.