How to create a Product Feed for ProfitMetrics

How to Create and Debug a Product Feed in Google Sheets


Section 1: Product Feed Specification

Section 2: Troubleshooting


Section 1: Product Feed Specification

The ProfitMetrics product feed is based on RSS and is largely compatible with the Google Shopping XML feed, with some additional elements. Key specifications include:

  • Encoding: The product feed should be encoded as UTF-8.
  • Item Elements: The item elements should include specific information such as
    • link
    • title
    • g:id (unique product ID)
    • g:image_link (link to product image)
    • g:price (retail price), and more.
  • Currency Format: Various currency-related elements can be included, such as pm:price_currency and pm:price_buy_currency.

Things to Note:

  • Even though some fields are optional, it is strongly recommended to include as much information as possible for enhanced functionality.
  • Each product variant should have its own item, and each item is considered a real sellable product with a unique ID.
  • Products must only appear once in the feed; duplicates (field g:id) will result in importing failures.
  • Extra fields are ignored, maintaining backward compatibility with Google Shopping feeds.

Example Product Feed

<!-- Example Product Feed -->
<rss pm-type="gs-1.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:pm="https://my.profitmetrics.io/ns/1.0">
  <channel>
    <item>
      <!-- Product Details -->
    </item>
    <!-- Additional Items -->
  </channel>
</rss>

Section 2: Troubleshooting

To ensure a successful product feed, please consider the following troubleshooting tips:

  • Check that the overall group is called <channel>.
  • Ensure products are labelled <item> and not <products> or <items>.
  • Match the ID in the feed with the ID received with orders (usually the internal product variant ID from the e-commerce platform).
  • Use pm:price_buy and pm:price_buy_currency for cost prices.
  • Required Fields:
    1. Create "pm:id" and fill it with product IDs.
      1. Alternatively, this field can be named several other things in this priority:

        pm:id
        g:id
        id

    1. Create "title" and fill it with product titles.
    2. Create "price" and fill it with product prices incl. VAT/Tax.
  • Recommended Fields:
    1. Create "pm:price_buy" and fill it with product costs (costs of goods sold) ex. VAT/Tax.
      1. Alternatively, this field can be named several other things:

        pm:price_buy
        g:cost_of_goods_sold
        price_buy
        cost_of_goods_sold
        g:price_buy
        pm:cost_of_goods_sold
        cost_price 

    2. Create "pm:price_buy_currency

Confirm that the feed does not contain illegal characters (such as &, <, >).

Full Specs:

Element Description Required 
link Should to the biggest extent possible match realworld links, to be able to match up pageviews in for example Google Analytics with products. Optional
title Product name Required
g:id Unique Product ID. This should match what is transmitted to profitmetrics in orderspecs Required
g:image_link Link to the product image. Should preferably not be too high resolution. Bounds of about 500x500px are good. But there are no hard restrictions here. Optional

g:price

Retail price, including VAT  Required
g:google_product_category Google category from Google product category taxonomy Optional
g:brand Brand of product Optional
pm:price_currency Currency of the Retail price, 3-letter ISO 4217 format Optional
pm:price_buy The cost price of product EX Vat. 
This can also be any one of the names listed above
Optional
pm:price_buy_currency Currency for the cost price of the product (3 letters ISO 4217 format) Optional
pm:num_stock Number of items in stock Optional
pm:category A category the product is part of. This element can be placed multiple times. Place the most important category first. Optional
pm:sku product SKU (different from ID) Optional