The data_docid identifier: how Productrise tracks products across Google's surfaces

Hugo Huijer
H
Hugo Huijer
August 26, 2026
The data_docid identifier: how Productrise tracks products across Google's surfaces

Tracking a single product in organic Google Shopping is harder than it sounds. Google constantly changes how a product is presented: its title gets reformatted, its main seller rotates, its image swaps out, and its price moves. When your tracking relies on matching those attributes, every one of those changes can make one product look like several, which fragments its history and inflates your product counts.

The fix is a stable identifier that stays put while everything else shifts. Google exposes one, which we call data_docid, buried in the HTML of its search results. It's the identifier Productrise uses as the backbone for detailed per-product tracking, and it powers many of the insights the platform surfaces.

This article explains what data_docid is, where it lives, why we rely on it, and how it stays consistent across Google's search and AI Mode surfaces.

The identifier Google hides in its search results

Google embeds product identifiers in the HTML of its Popular Products carousels. It surfaces a few of them, but none are as reliably consistent as the one we call data_docid, which identifies the product's data element within the search result.

One thing to be clear about upfront: data_docid is not the same as the product_id or GTIN you manage in Google Merchant Center. Those are identifiers you assign and submit as part of your product feed. data_docid is Google's own internal reference, generated on Google's side and surfaced in the search result HTML. It describes how Google catalogs the product in its search surfaces, not how you've labeled it in your feed. It's easy to conflate the two since they both get called "product IDs," but they live in separate systems entirely.

For our test webshop, we track our champagne wall product rankings, and it's a good concrete example. Here's how one of Google's organic Popular Products carousels looks in a live search result, with the champagne wall product among the cards.

Champagne wall product in Google Popular Products carousel

Where data_docid lives in the HTML

Crack open the HTML of the champagne wall's product card and the identifier sits in a data attribute on the card node. For this product, the data_docid value is 16224060490252460413. That same value shows up in more than one attribute on the card, which is normal. There's also a separate attribute holding a different value, a listing reference that we deliberately don't track because it doesn't identify the product the way data_docid does.

The snippet below shows those attributes on the champagne wall card, with the data_docid highlighted.

HTML snippet showing the data_docid attribute on the champagne wall product card

Why we rely on data_docid

We've tested these identifiers extensively, and data_docid is the only one that can be used reliably. Two things make it work: coverage and consistency.

On coverage, our data showed data_docid present on more than 99.9% of all product listings in Popular Products carousels. For the remaining fraction of a percent where it's missing, we fall back on our older keying method of title plus seller, so those products still get tracked, just without the same precision.

On consistency, the identifier stays the same when a product's title gets reformatted or its main seller rotates. The only attribute that tends to move is the price, which is exactly what you want to watch. That stability is what lets us follow one product's real history instead of losing the thread every time Google reshuffles the presentation.

Here's how the champagne wall product looks inside Productrise once it's keyed on its data_docid.

Champagne wall product keyed on its data_docid inside Productrise

Consistent across Google's surfaces

The same data_docid doesn't just identify a product within the organic Popular Products carousels. It also appears on the same product when it shows up in Google's AI Mode shopping results.

That cross-surface consistency gives us a genuinely useful window into how Google's Shopping Graph works. If you want the broader picture of that system, we've written a separate piece on it: the Google Shopping Graph explained. Google appears to maintain a single underlying notion of a product's identity, and data_docid is a thread you can follow to see that same identity surface in different places.

Here's the same champagne wall product ranking in Google's AI Mode results.

Champagne wall product ranking in Google AI Mode results

The AI Mode response carries the same data_docid identifiers, as long as the product listings are pulled from Google's Shopping Graph. Sometimes AI Mode references products in a regular text response without pulling data from the Shopping Graph, and in that case there won't be a data_docid on the page.

Because the identifier is consistent across both surfaces, Productrise can link a product's organic carousel data to its AI Mode appearance and build a fuller picture of where and how it shows up.

Consistent across countries too

data_docid is global rather than locale-specific, so the same product can carry the same data_docid across different countries. In our data, over a thousand docids appeared in two or more markets, referencing the same product in each.

What detailed tracking makes possible

With a stable identifier, the kind of tracking that used to be unreliable becomes straightforward. Keying on data_docid lets us:

  • Follow a single product across seller changes, watching it move from a marketplace listing to a brand's direct listing without losing the thread.
  • Detect title rewrites directly, with word-level highlighting showing which words Google added or removed.
  • Track price, discount, rating, and review changes day by day against a consistent product identity.
  • See multi-seller dynamics play out, observing who holds the main seller slot over time.
  • Aggregate a product's visibility correctly, summing its appearances across every carousel it shows up in.
Product Details report showing word-level change tracking in a product title

The change tracking example above shows how specific words in a product's title shift over time, and because everything is keyed on the same data_docid, our reports can now highlight those changes far more accurately. The same applies to price, sellers, discounts, reviews, and ratings: each one is tracked against a single consistent product identity, so a change reads as a change rather than a brand new product.

Identifier-based history starts on 09 August 2026, which is when we improved our tracking infrastructure to read these identifiers. Detailed tracking doesn't reach back before that date.

We're already storing these identifiers for AI Mode products, and bringing that AI Mode tracking fully into the platform is on the way.

If you want to see where your products currently appear in Google's carousels, you can start tracking your rankings, prices, and competitor movements for free with a Productrise account. No credit card needed to get started. Detailed per-product tracking through the Product Details report is available on Lite and higher plans.

Days
:
Hours
:
Mins
:
Secs

We're raising prices of our Lite and Growth plans. If you've been considering Productrise, now's the time to act.

More info