List attributes and table attributes

  • Updated
  • Optimizely Web Experimentation
  • Optimizely Personalization

List attributes

  • Use when you defined a group of users in an external system and want to target that audience with an experience.
  • Often better suited to integrations with other vendors, where it can be difficult to understand what has changed since the last time data was uploaded.  
  • List attributes do not rely on how you define your audiences. Optimizely Web Experimentation receives a list of IDs for visitors who qualify for these audiences and instructions on where to check for a matching ID.
  • Uploading fresh data to an existing list overwrites the previous data contained in the list.
  • Max file size – unlimited
  • Max attributes per file – 1
  • Key types supported – Cookie, query parameter, global JS variable, ZIP code
  • Upload methods – Bulk: In-browser, Amazon S3, HTTP PATCH
  • Update type – Replace (full list overwrite)
  • Supported campaign types – Experiments and personalization campaigns

Table attributes

  • Use when you want to target multiple audiences using a combination of attributes.
  • Usually better suited to integrations with owned datasources, where it is easier to understand which records have changed since the last time data was uploaded.
  • You can combine conditions that check the attributes' values together to create entirely new audiences that are not defined elsewhere. Because Optimizely Web Experimentation has direct access to these underlying values and the definitions of Optimizely Web Experimentation audiences, it can determine a visitor’s membership in the audience.
  • Uploading fresh data to an existing table appends to previous data contained in the table. Only values for rows that existed in the table previously are overwritten. Any rows that are not present in the fresh data remain unchanged in the table (in other words, failing to provide values for a row will not delete the row).
  • Max file size – unlimited
  • Max attributes per file – 255
  • Key types supported – Cookie, query parameter, Global JS variable, Optimizely Web Experimentation End User ID
  • Upload methods – Bulk: In-browser, Amazon S3Single-record: HTTP POST
  • Update type – Upsert (insert new rows, update existing rows)
  • Supported campaign types – Experiments and personalization campaigns

Suppose you want to target users who belong to a list in your email marketing platform. Users can qualify or disqualify for the list in real-time. You can only see the current state of the list because you cannot see past revisions, or understand which users might have qualified for the list in the past but currently do not qualify. You upload data to Optimizely Web Experimentation once each day, and you want to make sure that only users who are currently in the email list are targeted.

List attributes are better in this case because you need to upload only the current list. Optimizely Web Experimentation overwrites whatever data was previously uploaded, ensuring that users who no longer qualify for the list are not targeted. (If you use a table attribute, you have to keep track of which users were disqualified since the last update and explicitly overwrite your data.)