Yes! However, you'll want to use only one method (API or JS) to handle each of the three components of the integration - Inventory, Model requests for recommendations and Activity tracking). In general, we recommend using our Javascript to handle the Activity tracking to ensure we are getting all of the information our models need to optimize, and to save on development time. Some common hybrid setups are:



  1. Inventory - API
  2. Model - API
  3. Activity - JS

  1. Inventory - JS
  2. Model - API
  3. Activity - JS

  1. Inventory - API
  2. Model - JS
  3. Activty - JS


Inventory

It is especially important to use only one method for reporting Inventory to us, as our Javascript inventory collection updates in close to real time. Each update overwrites the previous file for that item completely, so if you send extra data via the API, it would be wiped out the next time our Javascript is fired on the page and collects the item again.


If you would like to use the API to manage your inventory, but still get the benefits of our JS for requesting recommendations and tracking activity, you'll need to disable Inventory collection in the beacon.


Model Requests

When you request recommendations via the API, you'll need to take care of rendering them in the UI rather than using our $p("render") JS function. You'll also need to extract certain values from LiftIgniter cookies to pass to us in your request to ensure we're personalizing for the correct user. This article provides more details on the user cookies we set.


Activity Tracking

We do strongly recommend allowing tracking to be handled via our Javascript SDK if possible. For apps and other integrations where Javascript cannot be used, please reach out to our Support team to review the actions available in your app and determine how they correspond to LiftIgniter activity types. We'll help you establish what counts as a pageview for an item, and when to trigger widget_shown, widget_visible, widget_click, engaged and conversion events.