Crownpeak
  • Product Discovery Developer Guide
  • 🛒Item catalog management
    • What is the Items API?
    • How to work with Items
      • Item Schema
        • Attributes
        • Nested Item Schemas
        • Using the Item Schema API
        • DefaultLocale API
        • Onboarding on/migrating to Fredhopper
        • List of Reserved Attributes
      • Category Tree
        • Using the Category Tree API
        • Onboarding on XO
      • Item Catalog
        • Using the Catalog API
      • Items
        • Using the streaming Items API
        • Using the batch Items API
    • Step by Step guide
      • Step by step guide for Fredhopper customers
    • Feedback
      • Using the Feedback API
    • Authorization to APIs
    • Troubleshooting API errors
  • 🎯XO Recommendations
    • Introduction
    • Using the Recommendations API
    • Setting up the Chrome extension
    • Micro-segmentation
    • XO Legacy APIs
  • 🔎XO Search
    • Introduction
    • Getting started
    • API Reference
      • Search API
      • Autocomplete API (Beta)
      • Product Suggest API
    • API Parameters
      • Search
      • Pagination
      • Faceting
      • Sorting
      • Grouping
      • Filtering
      • Disable features
      • Response mask
      • Context
    • Configuration limitation
  • 🧪A/B testing
    • Fredhopper A/B testing
      • Integration steps for a non-caching solution
      • Integration steps for a caching solution
        • Java SDK Integration
          • Setup
          • Retrieve running A/B tests - Java SDK
          • Filter and request variant - Java SDK
          • Extending the SDK
        • Manual A/B tests integration
          • Retrieve running A/B tests
          • Filter out irrelevant A/B tests
          • Assign variants to user
          • Request variant for page
        • Limitations and Best Practices
  • 📚Resources
    • Glossary
    • Best Practices
      • Tracker Best Practices
      • Items API Best Practices
      • Fredhopper Data Configuration Best Practices
      • Fredhopper Query Response Best Practices
      • Fredhopper Merchandising Studio Best Practices
    • Privacy Notice
  • Archived Pages
    • FHR Tracking plan
    • XO Tracking plan
    • The Tracking API and JS Library
      • What to Track
        • Generic Actions
          • View
          • Click
          • Add to Cart
          • Remove from Cart
          • Purchase
        • Custom Actions
      • Initializing the JavaScript Library
      • REST API Technical Documentation
Powered by GitBook
On this page
  • Polling Frequency/Caching Duration
  • Trigger limitations
  • A/B tests on the homepage
  • A/B tests on Product Detail Pages
  • Stick to the SDK and default implementations if possible
  1. A/B testing
  2. Fredhopper A/B testing
  3. Integration steps for a caching solution

Limitations and Best Practices

The FHR A/B testing feature is a powerful tool, but there are a few guidelines and limitations to follow in order to be able to make the most out of it.

Polling Frequency/Caching Duration

It is best to cache the running A/B tests response around as long as you cache your regular FHR queries. If your usual expiration time is 20 minutes, you can cache the running A/B tests response just as long. If you want to have more up to date data or do no caching at all, you can stick to the default suggested minimum time of 5 minutes.

Trigger limitations

Unfortunately, not all triggers which are available for non A/B test entities, such as campaigns, can be used for A/B testing due to filtering limitations. Because of this, the list of available triggers for A/B tests will be slightly smaller. The available triggers are:

  • Universe

  • Locale

  • User Location

  • Navigation Steps

  • Query Type

  • Custom triggers:

    • Text - full support

    • Number - full support

    • Date - limited support: can be added, but will not be considered for filtering i.e. the trigger will not appear as part of the filters in the A/B test in the response when getting running A/B tests. However, this will still allow you to setup date/time triggers.

Hint: While the Keyword trigger is not supported, you can still add a search query as a user location, thus making use of search words as triggers.

A/B tests on the homepage

One other limitation is for setting up triggers on the homepage. When requesting the homepage in FHR, the fh_location field can be omitted, but this will cause issues. If you omit it, the response will be defaulted to a location for home with the default universe and locale set up. This makes it impossible to run filtering on the running A/B tests, so it is advisable that you always set the fh_location, including a minimum of //<universe>/<locale>, and check it against the running A/B tests when requesting the homepage.

Otherwise, the filtering wouldn't be able to tell if an A/B test can be run, therefore the A/B tests will not trigger for the homepage.

A/B tests on Product Detail Pages

Similarly to the homepage situation, you can omit the fh_location property for PDPs(Product Detail Pages). This again causes issues, as without it we're not able to test for universe and locale, which would make filtering impossible. So in order for filtering to work, you have to supply an fh_location including at least the universe and locale in order to make proper use of triggers on PDPs. This could be done by ensuring that the FHR query request for a PDP is set by convention to include an fh_location of //<universe>/<locale>.

Stick to the SDK and default implementations if possible

We've put effort in making the integration as seamless as possible through the SDK. The default implementations are meant to be the best way to go. While we've added the ability for custom implementations of certain aspects, we strongly advise that you adhere to the adhere to the default implementation as much as possible. We cannot guarantee that we can offer support for custom implementations of the SDK features such as the RunningAbTestsFetcher or AbTestsCache.

PreviousRequest variant for pageNextGlossary

Last updated 3 years ago

🧪