BigCommerce stores can promote their products over multiple channels by connecting to them via product feeds. e.g.

  • Facebook Catalogs
  • Pinterest Catalogs
  • Google Shopping via the Google Merchant Centre
  • Microsoft Shopping Ads via the Microsoft Merchant Centre

These feeds pass product information to the channels that build a catalog of products for use by the channel. Feeds can be as simple as a CSV file that you upload to the channel, or they could use an API to update the catalog in near real-time.

The above channels also let you track how your store visitors interact with those products via code on your site (pixel/tag). This is where Tag Rocket comes in. It adds code to your store to track the different events as visitors look at products, add them to your cart, start the checkout, and finally purchase them. These events enable the channels to automatically create audiences (remarketing lists) as well as allow you to create custom audiences to target users. A good example is the abandoned cart list which enables you to target people who were so close to purchasing some of your products.

These events also send product information to the channels. What products did a user interact with? From viewing it on a category page to buying it. This can enable the channel to create custom ads for those users that include the product they interacted with. Combine that with machine learning, and you get highly targeted and focused ads that typically have a good ROAS.

Google and Microsoft call it Dynamic Remarketing. Facebook calls it Dynamic Product Ads for Retargeting. And Pinterest calls it Dynamic Retargeting.

Google’s PMax campaigns (formerly Smart Shopping) combine Dynamic Remarketing with Machine Learning across multiple surfaces to create a highly automated eCommerce ad solution.

The Item Group ID (essential)

For product-based dynamic remarketing code to work, the events have to identify products in a way that can be matched up with the product catalog for a channel. This is where terminology gets confusing and can cause identity issues that completely break the system.

Most channels support either variant or product feeds (or both). A single item in the feed can be a variant or a product. If it is a variant, most feeds provide the ability to enter an item_group_id value that identifies the product itself. So all variants for a single product should have the same Item Group ID. For reliability, we also prefer if product level items also fill in the Item Group ID.

When users browse your store, they primarily interact at the product level, not the variant. e.g. they see a product in a category or look at a product page. This means the code that sends product events to the channels needs to send a product identifier that matches up with the Item Group ID in the catalog.

The Item Group ID values are crucial for setting up product-based dynamic remarketing. If the code on the page does not use the same product identifiers as the feed, things don’t work.

Idealy, every product has a valid product SKU which is used for the Item Group ID. To be valid the SKU should only contain letters, numbers, underscores and dashes, and no spaces. Using SKUs makes it easier to migrate to another CMS, however setting them is optional, so it may not be a clean option. Alternately, and quite often, the Item Group ID is set to the BigCommerce product id.

If you have an existing feed and active campaigns, then changing the Item Group IDs will mean that historical data is no longer valid, and the system will have to learn from scratch about your new products and how visitors interact with them. Expect a dip in performance if you change the IDs.

The Item ID

The identifier for each item in the feed could relate to a variant or a product. Tag Rocket optionally lets you set this id for use in some item level events like Add To Cart or Purchase.

Feed providers make their own default choice here, often different, and sometimes in a way that can cause issues.

Ideally this should be set to the variants SKU.

ID Clashes

Some channels check both the Item ID and the Item Group ID to find a matching item. And the way each channel does it is different. This means you want your Item ID to never match up with an Item Group ID, this can cause the wrong item to be matched, and the adverts end up showing random products to the user.

For example, if the Item ID is a number, and so is the Item Group ID, there will be times when they clash, and the system may pick the wrong products for a user.

If you had a previous feed, you also want to make sure the old feed IDs don’t clash with any new feed IDs.

So when deciding on your Item ID and Item Group ID values, think about doing it in a way that ensures they will not clash. Some possible ways:

  • Use the variant or product SKU for the Item IDs with a fallback if it’s a product item with no SKU. e.g. ‘P’ plus the product id
  • Use numbers for Item IDs but prepend them with ‘P’ for a product or ‘V’ for a variant.
  • Use a product + variant type identifier for Item IDs. e.g. ‘12345-0001’ (this is how DataFeedWatch do it by default)
  • Prepend the Item Group ID with a letter to ensure they are unique.

Matching With Tag Rocket

Tag Rocket lets you specify how it sets Item Group ID and Item ID values for each tag/channel. This means you can make it match with how your feeds set those values.

This is done by providing the format of a value using placeholders to indicate what values you want to send. Placeholders use a double square bracket format:

[[pid]]BigCommerce Product ID
[[psku]]Product SKU
[[vid]]BigCommerce Variant ID (Only applicable to Item ID formats)
[[vsku]]Variant SKU (Only applicable to Item ID formats)
ID format placeholders

For example, if you wanted an ID format to be the letter P plus the Product ID, you would enter P[[pid]]

Product SKU is optional, so we added a format to specify what happens if the Product SKU is missing. This uses the double pipe format to let you define the alternate format after the pipes. e.g. [[psku]]||P[[pid]] would use the product SKU if present; otherwise, P plus the Product ID.

Tag Rocket requires you to define the format for the Item Group ID, which is critical to match Tag Rocket events with feed entries. This defaults to [[pid]].

You can then optionally specify Item ID formats for most of the tags. These formats are used on events like Add To Cart and Purchase if they are set. There are two Item ID formats to fill in, “Product Format” is if it is a product level item in the cart (i.e. no variants), and “Variant Format” is a format for when it is a variant. Please don’t use these formats unless you know precisely how the feed sets the Item ID for products and variants.

The feed providers section below will indicate the default values each feed tends to use.

Fully Supported Feed Providers

As we work with feed providers, we will provide details about setting up their feeds so they can be used for product remarketing via Tag Rocket. Here are some commonly used feed providers with links to full instructions on setting them up for dynamic remarketing on the channels they support.

Feed Provider Google MicrosoftFacebookPinterestYahooX/TwitterTikTok
Data Feed Watch
Sales & Orders
BigCommerce Facebook Channel
BigCommerce Ads and Listings on Google

Tag Rocket can support sending dynamic remarketing data to other channels via its API.

Other Feed Providers

We’ve integrated Tag Rocket with several other feed providers. If you use one of these, we will be glad to help you set things up correctly.


Koongo provides a BigCommerce app and feeds for many channels and starts at a reasonable price. We have one client using it with a product level feed.


I believe this had a similar variant feed issue which may require changes to support product remarketing. I’d love to work with a store using FeedArmy to see how it can be done. Find out more about their BigCommerce feed integration.

Dynamic Creative – feedops

A multi channel feed provider that integrates with BigCommerce. They have a low cost self service plan as well as a fully managed plan.

Item Formats

To work with Tag Rocket you will need to ask support to change the feeds Item_id and item_group_id to be based on SKUs, and all products need an SKU. In Tag Rocket, Facebooks Item Group ID->Include Content Type needs to be un checked.

FieldDefault Format
Item Group ID Format[[psku]]
Item ID Product Format[[psku]]
Item ID Variant Format[[vsku]]

Social Shop

They create a Facebook feed. This is the format we have seen so far.

Item Formats

FieldDefault Format
Item Group ID Format[[pid]]
Item ID Product Format fb:FB:[[psku]] (fallback is currently not known)
Item ID Variant Format fb:FB:[[vsku]]

Google’s Website Crawl Feed

The Google Merchant Centre can actually find products by crawling the website without the need to set up a feed directly. Google reads the product Structured Data from the pages to gather all the details about a product. Our SEO Rich Snippets app can generate that structured data.

Other Common Feed Issues

We often see variant based feeds not providing the correct variant page for a product. The URL should be the product page with ?sku=ABC-123 added to the end where the value is the variants SKU. This mistake can cause feed errors if the variant’s price is different.

Sometimes a feed provider will include utm parameters in the product URLs. This can be very useful as it provides analytics tools with details on the ad seen by the user. For best tracking in Google Ads, you should have Auto-tagging on (Google Ads->Account settings), and Google Analytics should not let utm parameters override the auto-tagging (Google Analytics->Admin->Property settings->Advanced settings).