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 that happen 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 enable you to create your own custom audiences to tadata rget 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 channel to create custom ads for those user that include the product they interacted with. Combine that with machine learning and you get hightly targetted 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.

Googles Smart Shopping campaigns combine Dynamic Remarketing with Machine Learning accoss multiple surfaces to create a highly automated ecommerce ad solution.

The Item Group ID (very important)

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 around your store they mostly 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 which has to match up with the Item Group ID in the catalog.

The Item Group ID values are the single most important part of setting up product based dynamic remarketing. If the code on the page does not use the same product identifiers as the feed, things just don’t work.

We recommend that Item Group ID values are set to the BigCommerce product id. These are set in stone and are accessible via the store code or APIs. A second option is to use the product level SKU, but things get complex as they are optional and can be altered by default variants. Tag Rocket supports both methods.

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.

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 advert ends up showing random products to the 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 of the 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 numbers for Item IDs but prepend them with ‘P’ for product or ‘V’ for variant.
  • Use the variant or product SKU for the Item IDs with a fallback if its a product item with no SKU. e.g. ‘P’ plus the product id
  • 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 make sure 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), “Variant Format” is a format for when it is a variant. Please don’t use these formats unless you know exactly how the feed sets both the Item ID for products and variants.

The feed providers section bellow 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 common feed providers with links to full instructions on how to set them up for dynamic remarketing on the channels they support.

Feed Provider Google MicrosoftFacebookPinterestYahoo
Data Feed Watch
Sales & Orders
BigCommerce Facebook Channel

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 provide a BigCommerce app and feeds for many channels and starts at a good 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 Google only feed provider that integrates with BigCommerce. It has a free plan so could be worth checking out to see if it provides enough for you. If you do try it, contact us to see if we can set up your product remarketing. From testing a demo account I think they provide good identifiers.

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]]

Other Common Feed Issue

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 variants price is different.