Content Feed

Overview

This document should be used in tandem with the Content Feed document in our developer documentation. Using the Content Feed is easier than manually adding each piece of content because it automates the process.

When using feeds, it is essential that all the required files are included and that you ensure that all the required pieces of information are included. Feed files are sent to Omnichannel Personalization and then processed to populate the information into the database to power Engage content and recommendations.

Content Feed Files

Type of File

Suggested Naming Convention

Description

Content

content_full_sitename_YYYY_MM_DD.txt

List of content on your site

Content/Category

content_in_category_sitename_YYYY_MM_DD.txt

Assigns content to categories. Content can be assigned to multiple categories.

Content/Attributes

content_attribute_sitename_YYYY_MM_DD.txt

Defines content attributes

Note: Include in zipped same compressed file defined in the Content Feed document.

File Specification

See below for the specifications for each file.

  • The default column names are listed below. To modify, you must work with your Algonomy contacts.
  • The delimiter in the file will be a pipe (|) unless another delimiter is required and communicated to your Algonomy contacts.

content_full_sitename.txt (required)

Note: Content cannot have the same IDs as products. Products and content must have unique IDs.

Name

Type

Required

Definition

id

text

Yes

Must be a unique ID.

Note: Forward slashes (/) are not supported in the ContentID field.

name

text

Yes

The name of the content as it will be displayed in recommendations on site and in the Omnichannel Personalization Dashboard.

Max length: 255 characters. If missing, name is not updated if the content is already in the system.

start_date

date

no

When this content is available to be displayed.  If not specified, it's available to be displayed any time

end_date

date

no

When does this content expire? Once expired we should not display it any longer.  If not specified, it is available to be displayed indefinitely.

rating

integer

No

The rating for this content (specified by client).  Usually this is generated by collecting the average of customer ratings/reviews 

tags

text

No

List of strings separated by the delimiter that describe the piece of content (e.g.  baby.stroller.graco).   (The default de-limiter is the "." symbol)

A tag can be no longer than 100 characters long (if it is, we will truncate all characters after the 100th character).

While there's no theoretical limit to how many tags a piece of content have, we recommend no more than 20 tags per content.

content_in_category_sitename.txt (optional) 

Name

Column Header

Required

Definition

Category ID

category_id

Yes

Identifier for the category that the content belongs to as defined in the category file.       

Content ID

content_id

Yes

Identifier for the content as defined in the content's file.

Note: Forward slashes (/) are not supported in the ContentID field.

Note: If you are a Recommend customer, please ensure that the category IDs which are assigned to products are the same IDs used for content.

content_attribute_sitename.txt (required)

Attribute values can be listed in a column-based format or a row-based format. However, the file must be one or the other format. The system automatically detects the format based on the header.

The list must use a delimiter that does not exist in attribute values and should not be a list delimiter used elsewhere in the file. Values that have a period are treated as lists (this is the default behavior). The period delimits each value in the list. However, the list value delimiter may be customized when creating the feed profile.

Content attributes is where you will specify the variables needed to render a content.  Things like image URLs and landing page URLs must be passed in as attributes.

We expect each piece of content to have a minimum 1 attribute that allows us to render that piece of content back to the consumer. If a piece of content doesn't have any attributes, then it will not be stored in our system.

Column-based

Name

Column Header

Required

Definition

Content ID

content_id

Yes

Identifier for the content as defined in the content file

Note: Forward slashes (/) are not supported in the ContentID field.

Attribute Key 1

attribute.[attribute key1]

Yes

First unique attribute key

Attribute Key 2

 

attribute.[attribute key 2]

Yes

 

Second distinct attribute key

Attribute Key N

attribute.[attribute key N]

Yes

Nth distinct attribute

(N=number of distinct attribute keys)

Example

Copy
content_id|attribute.color|attribute.size|attribute.image_url
100|blue|medium|http://mysite.com/images/100.jpg

Row-based

Name

Column Header

Required

Definition

Content Id

content_id

Yes

Identifier for the content as defined in the content file

Note: Forward slashes (/) are not supported in the ContentID field.

Attribute Key

attr_name

Yes

Unique attribute key

Attribute Value

 

attr_value

Yes

 

Name of the attribute

Localization type

localization_value

Optional

Region is the only type supported, or -1 for global attributes.

Localization value

localization_value

Optional

Region Id

Examples

Row-based Attribute Feed Format (Single Row)

In this format, attributes for a single content entry are passed in a single row. The delimiter can be configurable but should be different from the column delimiter.

Copy
content_id|attr_name|attr_value
100|color|red 
100|size|s

Row-based Attribute Feed Format (Multiple Rows)

For each attribute, a separate row is used to pass the values. The list value delimiter may be customized when creating the feed profile.

Example of passing multiple attributes in individual rows:

Copy
content_id|attr_name|attr_value
100|size|xl
100|color|green

Note: This file may be omitted for sites with minimal attribute requirements.

Global and Regional Attributes

This example includes both global and region-specific attributes. The delimiter can be customized, but it should be different from the column delimiter.

Copy
content_id|attr_name|attr_value|localization_type|localization_value
100|color|red||
100|size|s|region|US
100|size|l|region|CA
100|r_recommend|0|region|GB

Attribute ‘size’ with value ‘s’ will be available only for US region.

Attribute ’size’ with value ‘l’ will be available only for CA region.

Attribute ‘color’ is global, applying to all regions.

r_recommend says that the content is not available for GB because it is not recommended.

  • Global Attribute: The color attribute is global, applying to all regions.

  • Region-specific Attribute: The size attribute varies by region ("s" for the US and "l" for Canada).

  • Content Exclusion: The r_recommend attribute indicates that the content is not available for GB because it is not recommended.

Maximum Views on Engage Contents via Feed

The maximum views via Feed manages the maximum number of times the specific content can be displayed to users in Engage. This feed is uploaded separately from the main content feed and includes the following columns:

Copy
content_id|total_max_views|reset_max_views
  • content_id (required): Unique identifier for the content.

  • total_max_views (required): The maximum number of views allowed for the content.

  • reset_max_views (optional): Accepts true or false. Defaults to false.

The feed file controls how often the content is displayed, and this feed file can be processed in two ways depending on whether you are updating all content or only specific entries:

  • Full Feed: Include all content that has a max views setting. Leave the reset_max_views column blank or set it to false. Set reset_max_views to true only if you need to reset the max views value or count.

  • Delta Feed: Include only the content where max views are being set for the first time or where a reset is required. Set reset_max_views to true for all such entries.