Source types

Entities can be sent using CSV files, the Google Product Search feed format, and Adobe Analytics product classifications.

CSV

You can create a .csv file using the Adobe proprietary CSV upload format. The file contains display information about the reserved and custom attributes for your products. To upload attributes specific to your implementation, replace CustomN in the header row with the name of the attribute you want to use. In the example below, entity.Custom1 has been replaced by: entity.availability. You can then bulk upload the file to the Recommendations server.

Using the .csv format has the following advantages over the Google feed format:

  • The .csv format doesn’t require field mappings.
  • The .csv format supports multi-value attributes (see example below).
  • The .csv format supports up to 100 custom attributes. If you need more than 100 custom attributes, you can create a second feed file with a different set of custom attributes specified.

Use the bulk upload method to send display information if you don’t have mboxes on your page, or if you want to supplement your display information with items that are not available on your site. For example, you might want to send inventory information that might not be published on your site.

Any data uploaded using the .csv file, Google Product Feed, or Analytics Product classification feed overwrites the existing entity attribute value in the database. If you send price information via mbox requests and then send different price values in the file, the values in the file overwrite the values set with the mbox request. An exception to this is the categoryId entity attribute where the category values are appended instead of being overwritten up to the 250-character limit.

IMPORTANT
Do not enclose values in double quotes ( " ) in your .csv file unless they are intentional. If you enclose values in double quotes, you must escape them by enclosing them in another set of double quotes. Double quotes that are not escaped prevent the recommendations feed from loading properly.

For example, the following syntax is incorrect:

"Apples "Bananas" Grapes"",

The following syntax is correct:

"Apples ""Bananas"" Grapes""",
NOTE
You can’t overwrite an existing value with a blank value. Pass another value in its place to overwrite the existing value. In the case of a sale price, a common solution is to either pass in an actual “NULL” or some other message. You can then write a template rule to exclude items with that value.

The product is available in the admin interface approximately two hours after successfully uploading its entity.

The following is sample code for a .csv file:

## RECSRecommendations Upload File
## RECS''## RECS'' indicates a Recommendations pre-process header. Please do not remove these lines.
## RECS
## RECSUse this file to upload product display information to Recommendations. Each product has its own row. Each line must contain 19 values and if not all are filled a space should be left.
## RECSThe last 100 columns (entity.custom1 - entity.custom100) are custom. The name 'customN' can be replaced with a custom name such as 'onSale' or 'brand'.
## RECSIf the products already exist in Recommendations then changes uploaded here will override the data in Recommendations. Any new attributes entered here will be added to the product''s entry in Recommendations.
## RECSentity.id,entity.name,entity.categoryId,entity.message,entity.thumbnailUrl,entity.value,entity.pageUrl,entity.inventory,entity.margin,entity.last_updated_by,entity.multi_english,entity.availability,entity.tax_country,entity.tax_region,entity.tax_rate,entity.product_type,entity.item_group_id,entity.color,entity.size,entity.brand,entity.gtin
na3456,RipCurl Watch with Titanium Dial,Watches & Sport,Cutting edge titanium with round case,https://example.com/s7/na3456_Viewer,425,https://example.com/shop/en-us/na3456_RipCurl,24,0.25,csv,"[""New"",""Web"",""Sales"",""[1,2,34,5]""]",in stock,US,CA,9.25,Shop by Category > Watches,dz1,Titanium,44mm,RipCurl,"075380 01050 5"
na3457,RipCurl Watch with Black Dial,Watches & Sport,Cutting edge matte black with round case,https://example.com/s7/na3457_Viewer,275,https://example.com/shop/en-us/na3457_RipCurl,24,0.27,csv,"[""New"",""Web"",""Sales"",""[1,2,34,5]""]",in stock,US,CA,9.25,Shop by Category > Watches,dz1,Black,44mm,RipCurl,"075340 01060 7"

Google

The Google Product Search feed type uses the Google format. This is different from the Adobe proprietary CSV upload format.

If you have an existing Google Product Feed, you can use that as your import file.

NOTE
It is not required to use Google data. Recommendations uses the same format as Google. You can use this method to upload any data you have, and use the available scheduling features. However, you must retain the Google predefined attribute names when you set up the file.

Most retailers upload products to Google, so when a visitor uses the Google product search, their products display. Recommendations follows the Google specification exactly for entity feeds. Entity feeds can be sent to Recommendations via .xml, .txt, or .tsv, and can use the attributes defined by Google. The results are searchable on the Google shopping pages.

NOTE
The POST method must be allowed on the server that is hosting the Google feed content.

Because Recommendations users already configure .xml or .txt feeds to send to Google either via URL or FTP, entity feeds accept that product data and use it to build the recommendations catalog. Specify where that feed exists and the recommendations server retrieves the data.

If you use Google Product Search for the entity feed upload, you still must have a product page mbox on the page if you want to show recommendations there or track product views for algorithm delivery based on views.

Google feeds do not support multiple values for a custom attribute.

The feed runs at the time that you save and activate it. It runs at the time that you save the feed, then every day an hour later.

The following is sample code for a Google Product Search feed .xml file:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<feed xmlns="https://www.w3.org/2005/Atom" xmlns:ns2="https://base.google.com/ns/1.0" xmlns:ns3="https://base.google.com/cns/1.0">
    <title>Product Feed</title>
    <link href="https://example.com"/>
    <updated>2017-12-13T08:45:04.918-08:00</updated>
    <author>
        <name>Product Feed Author</name>
    </author>
    <id>https://example.com</id>
    <entry>
        <title>RipCurl Watch with Titanium Dial</title>
        <description>Cutting edge Titanium with Round case</description>
        <ns2:id>na3452</ns2:id>
        <ns2:link>https://example.com/shop/en-us/na3452_RipCurl</ns2:link>
        <ns2:availability>in stock</ns2:availability>
        <ns2:condition>NEW</ns2:condition>
        <ns2:google_product_category>Watches &amp; Sport</ns2:google_product_category>
        <ns2:gtin>075380 01050 5</ns2:gtin>
        <ns2:image_link>https://example.com/s7/na3452_Viewer</ns2:image_link>
        <ns2:mobile_link>https://m.example.com/s7/na3452_Viewer</ns2:mobile_link>
        <ns2:mpn>71050</ns2:mpn>
        <ns2:price>425</ns2:price>
        <ns2:product_review_average>5.0</ns2:product_review_average>
        <ns2:product_review_count>30</ns2:product_review_count>
        <ns2:product_type>Shop by Category > Watches </ns2:product_type>
        <ns2:brand>RipCurl</ns2:brand>
        <ns2:sale_price>375</ns2:sale_price>
        <ns2:tax>
          <ns2:country>US</ns2:country>
          <ns2:region>CA</ns2:region>
          <ns2:rate>9.25</ns2:rate>
          <ns2:tax_ship>y</ns2:tax_ship>
        </ns2:tax>
        <ns2:is_bundle>N</ns2:is_bundle>
    </entry>
    <entry>
        <title>RipCurl Watch with Black Dial</title>
        <description>Cutting edge matte black with Round case</description>
        <ns2:id>na3453</ns2:id>
        <ns2:link>https://example.com/shop/en-us/na3453_RipCurl</ns2:link>
        <ns2:availability>in stock</ns2:availability>
        <ns2:condition>NEW</ns2:condition>
        <ns2:google_product_category>Watches &amp; Sport</ns2:google_product_category>
        <ns2:gtin>075380 013450 5</ns2:gtin>
        <ns2:image_link>https://example.com/s7/na3453_Viewer</ns2:image_link>
        <ns2:mobile_link>https://m.example.com/s7/na3453_Viewer</ns2:mobile_link>
        <ns2:mpn>71050</ns2:mpn>
        <ns2:price>275</ns2:price>
        <ns2:product_review_average>4.8</ns2:product_review_average>
        <ns2:product_review_count>23</ns2:product_review_count>
        <ns2:product_type>Shop by Category > Watches </ns2:product_type>
        <ns2:brand>RipCurl</ns2:brand>
        <ns2:sale_price>249</ns2:sale_price>
        <ns2:tax>
          <ns2:country>US</ns2:country>
          <ns2:region>CA</ns2:region>
          <ns2:rate>9.25</ns2:rate>
          <ns2:tax_ship>y</ns2:tax_ship>
        </ns2:tax>
        <ns2:is_bundle>N</ns2:is_bundle>
    </entry>
</feed>

The following is sample code for a Google Product Search feed .tsv file:

id    title    description    link    price    condition    availability    image_link    tax    shipping_weight    shipping    google_product_category    product_type    item_group_id    color    size    gender    age_group    pattern    brand    gtin    mpn
na3454    RipCurl Watch with Titanium Dial    Cutting edge titanium with round case    https://example.com/shop/en-us/na3454_RipCurl    425    new    in stock    https://example.com/s7/na3452_Viewer    US:CA:9.25:y    1.5 oz    US:::0.00 USD    Watches & Sport    Shop by Category > Watches    dz1    Black    44mm    male    adult    Solid    RipCurl    075380 01050 5    DZ1437
na3455    RipCurl Watch with Black Dial    Cutting edge matte black with round case    https://example.com/shop/en-us/na3455_RipCurl    275    new    in stock    https://example.com/s7/na3452_Viewer    US:CA:9.25:y    1.5 oz    US:::0.00 USD    Watches & Sport    Shop by Category > Watches    dz1    Black    44mm    male    adult    Solid    RipCurl    075340 01060 7    DZ1446

Analytics Product Classifications

The Adobe Analytics Product classification is the only classification available for recommendations. For more information about this classification file, see About classifications in the Analytics Components guide. It’s possible that not all the information you need for recommendations is available in your current implementation, so follow this user guide if you want to add to your classifications file.

IMPORTANT
Before importing entity data into Recommendations using Analytics product classifications, be aware that this is not the preferred method.
Be aware of the following caveats:
  • Updates to entity attributes incur an additional delay of up to 24 hours.
  • Target supports Product Classifications only. The Analytics product SKU must map to the same level as the Recommendations entity.id. Custom Analytics Classifications can be engineered using Adobe Consulting Services. Contact your Account Manager with questions.

Create Feed

Create a feed to insert information about your products or services into Recommendations.

  1. From within the Target interface, click Recommendations > Feeds > Create Feed.

  2. Specify a descriptive name for your feed.

  3. Select a Source Type.

    • CSV
    • Google Product Feed
    • Analytics Classifications

    For information about the CSV and Google Product Feed feed types, see Feeds Overview. You can also download a model CSV guide to help you format the feed correctly.

  4. (Conditional) If you selected CSV or Google Product Feed, specify the location where the feed can be accessed.

    • FTP: If you selected FTP, provide the FTP server information, the login credentials, the filename, and the FTP directory. You can use FTP with SSL (FTPS) for more secure uploads.

      Supported FTP server settings:

      • FTP and FTPS must be set to use Passive FTP.
      • For FTPS, configure the server to accept Explicit FTPS connections.
      • SFTP is not supported.
      • You can manually specify a port on which to initiate the connection (for example, ftp://ftp.yoursite.com:2121). If you do not specify a port, the default FTP or FTPS port is used.
    • URL: If you select URL, specify the URL.

  5. (Conditional) If you selected Analytics Classifications, choose the report suite from the drop-down list.

  6. Click the Next arrow to display the Schedule options.

  7. Select an update option:

    • Daily
    • Weekly
    • Every 2 Weeks
    • Never: Do not schedule an update. Choose this if you do not want this feed to run.
  8. Specify the time that you want your feed to run.

    This option is based on the time zone used in your browser. If you want to use a time in a different time zone, you must calculate that time according to your time zone.

  9. Click the Next arrow to display the Mapping options, then specify how you want to map your data to Target definitions.

  10. (Optional) If you want the feed to belong to an environment (host group), select the host group.

    By default the feed belongs to all host groups. This ensures that items in this feed are available in any environment. For more information, see Hosts.

  11. Click Save.

After you create or edit a feed, the feed runs immediately. The feed then updates according to the parameters that you set. It takes some time for the information to be available. First, the feed must sync, then it must be processed and indexed before it can be published and made available. The current status appears under Feed Status in the Feeds list. You can close Target before the process is complete and the process continues.

While indexing is in progress, products and feed headers appear before individual values have been indexed. This lets you search and see products so you can create collections, exclusions, designs, and activities before indexing has been completed.

When the Status says “Success,” it means that the file was found and it parsed correctly. The information is not available to use within Recommendations until the file is indexed, which can take some time, depending on the size of your file. If the process fails, it means that the file was not found. For example, you used an incorrect URL or your FTP information was incorrect, or that there was a parsing error.

Feed Statuses and Indicators

Information about the possible feed statuses and their indicators.

Feed Statuses

The following are possible statuses for a feed:

StatusDescription
SyncingFeed setup details are being saved to Target.
Sync FailedFeed setup details could not be saved to Target. Try again.
No Feed RunYou have created a feed but it has not been scheduled (the frequency is set to Never).
Scheduled at date and timeThe feed has not been run, but is scheduled to run at the specified date and time.
Waiting for DownloadTarget is preparing to download the feed file.
Downloading Feed FileTarget is downloading the feed file.
Importing ItemsTarget is importing items from the feed file.
Feed Imported Successfully at time

Target has imported the feed file into its content delivery system. Changes to item attributes have been made in the content delivery system and will soon be reflected in delivered recommendations. If you do not see the expected changes, try again and refresh the page containing recommendations.
Notes:

  • If changes to an item’s attributes result in an item being excluded from recommendations, the exclusion is immediately reflected. If an item is newly added, or changes to attributes result in an item being no longer excluded from recommendations, it is not reflected until the next algorithm update, which occurs within 24 hours.
  • When this status is displayed, updates might not yet be reflected in the Catalog Search UI. A separate status is listed in Catalog Search indicating the last time that the searchable catalog was updated.
Failed to IndexThe index operation failed. Try again.
Server Not FoundFTP or URL locations are invalid or otherwise unreachable.

To update a feed (for example, to make changes to your feed configuration or feed file), open the feed, make any desired changes, and click Save.

IMPORTANT
Uploaded entities expire after 61 days. This means that your feed file should be uploaded at least every 60 days to avoid a disruption to your recommendations activities. If an item is not included in a feed file (or other entity update method) at least once every 60 days, Target infers the item is no longer relevant and removes it from the catalog.

Feed Status Indicators

The following feed status indicators display in the Status column:

Status IndicatorDescription
Green status indicatorWhen a feed successfully finishes indexing, a green status dot indicates that the feed is in a successful state.
Yellow status indicatorWhen a feed or feed index is delayed by 25% of the feed frequency, a yellow status dot displays. For example, a yellow dot displays for a feed set to run daily if the index hasn’t completed six hours after the scheduled time. Note: Once the feed status is “Waiting for Index Queue,” the newly updated values are available in delivery and criteria processing.
White status indicatorWhen a feed is not scheduled, a white status dot indicates that the feed has not run yet.
Red status indicatorIf the feed fails to upload data to the server, a red status indicator is shown.

Consider the following examples:

Example 1:

  • Day one: daily feed processes at 9:00 a.m. PST.
  • Day two: it is 3:30 p.m. and the feed hasn’t run since yesterday at 9:00 a.m.

The status should be yellow because the index should have run roughly 6.5 hours ago. 6.5 hours +24 is 127% of the feed window.

Example 2:

  • January 1: monthly feed processes at 9:00 a.m. PST.
  • February 3: it is 10:00 a.m. and the feed hasn’t run for one month, one day, and one hour ago.

The status should be yellow because the index should have run roughly one day and one hour ago. Although this is only (31+(1/25))/30 = 1.03% of frequency setting, it surpassed the maximum of one-day delay.

Training videos

The following videos contain more information about the concepts discussed in this article.

Understanding feeds in Recommendations (3:01) Overview badge

This video contains the following information:

  • Understand the purpose of feeds
  • Understand the value of feeds
video poster

Create a feed (6:44) Tutorial badge

This video contains the following information:

  • Set up a feed
  • Know which type of feed to use
video poster

Target


Adobe Target Maturity Webinar Series

Adobe Customer Success Webinars

Tuesday, Feb 4, 4:00 PM UTC

Adobe Target innovations, including GenAI, and best practices on AI-powered personalization and experimentation at scale.

Register