Skip to main content

Products

Export your product catalog and import it into Kevel Audience.

Use cases
  • Augment product-related tracking events.
  • Augment orders with product-related details.
  • Correct product data in orders.

We have support for importing product information in the following formats:

Supported schemas

Importing product data allows for product-related tracking events to be complemented with the products' information even if the original event did not include them. The only required product-related field on events is the product id.

Product Import Results

A completed product import presents details in four main sections.

Dashboard product import results

Firstly, there are the configuration parameters of the report and its status. This section is present for product imports of all statuses (Queued, In Progress, Completed, Cancelled, and Failed), whereas the remaining only exists for completed product imports. (1)

Then, there is an overview of the imported products. The "File Items Count" represents the total number of products present in the file, and the "Successfully Imported Products Overview" is a table detailing the total number of valid products in the file, as well as how many of them were (or will be, if it is a dry run) added, updated, or remained unchanged. (2)

There is also a sample table, which allows you to inspect a sample of the imported products. When expanded, it displays a table with the first and last five elements read from the file, which can be clicked to open a detailed overview. (3)

Finally, there is a summary table of all the issues on the import. It provides hints on why a value for a column was considered an issue and how many items have the issue, as well as what that means in the total number of items in percentage. Import errors invalidate the entry, resulting in it being discarded during the import. (4)

Caveats of Using the Product Feed

When the product feed is available, it enriches incoming events based on the product id. To make the best use of it, users should consider that:

  • The data collection strategy needs to be reviewed and possibly changed. If the event includes part of the data that's also on the feed, the information sent on the event is kept, and only the remaining attributes are enriched from the product feed. For example, if both the event and the feed contain category, Kevel Audience will keep the value sent in the original event and ignore that of the feed.
  • When a product id from an event does not exist in the product feed, the event won't be augmented. This matters when the data collection strategy changes - for example, removing the category from the event - and a new product is added to the website but not updated in the feed. This will result in an event without product category.
  • Product-related data on events is augmented on arrival. Events cannot be changed; if the product feed changes, product data in past events remains unchanged. Data in an updated feed only reflects on future events.

Google XML Product Feed Transformations

Only a subset of fields from the Google XML spec is accepted and imported into Kevel Audience. These selected fields undergo transformations, while all other fields are ignored. Below, we also outline the typical mapping to the Kevel Ad Server. Different mappings need to be discussed with your Solutions Architect prior to launch.

Google XMLKevel AudienceKevel Ad ServerTypeNotes
idididstring
titlenamenamestring
linklinklinkstring
image_linkimageLinkimageLinkstring
availabilityavailabilityavailabilitystringGoogle accepts one of these values: in_stock, out_of_stock, preorder, backorder. Kevel Ad Server uses inStock (boolean field), where true matches in_stock, the other statuses match false
priceprice + currencyprice + currencystring to float + stringGoogle's price is decomposed into two fields in Audience: price, which is a float; currency, which is a string. Please check the supported values
sale_pricesalePrice (remove currency)salePrice (remove currency)string to floatAudience removes the currency from sale_price and transforms the field into a float
loyalty_programloyaltyProgramloyaltyProgramstring
product_typecategorycategorystring
brandbrandbrandstring
adultadultadultboolean
age_groupageGroupageGroupstringWhile Google has a set of accepted values (newborn, infant, toddler, kids, adult), we don't make any enforcement on our end
colorcolorcolorstring
gendergendergenderstringWhile Google has a set of accepted values (unisex, female, male), we don't make any enforcement on our end
sizesizesizestring
size_typesizeTypesizeTypestringWhile Google has a set of accepted values (regular, petite, maternity, big, tall, plus), we don't make any enforcement on our end
size_systemsizeSystemsizeSystemstring
item_group_iditemGroupIditemGroupIdstring
ads_redirectadsRedirectadsRedirectstring
custom_label_0customLabel0customLabel0string
custom_label_1customLabel1customLabel1string
custom_label_2customLabel2customLabel2string
custom_label_3customLabel3customLabel3string
custom_label_4customLabel4customLabel4string
promotion_idpromotionspromotionsstring to list of strings
external_seller_idmerchantIdmerchantIdstring
subscription_costsubscriptionCostsubscriptionCoststringUsers can specify the amount, duration, and currency of the subscription, like "month:12:35.00USD"