Bloomreach

What Is Bloomreach?

Bloomreach is a customer engagement and personalization platform that helps businesses deliver targeted marketing, commerce, and customer experience campaigns across digital channels. The Bloomreach Tracking API supports collecting customer interactions and behavioral events for audience building, personalization, analytics, and campaign orchestration. This starter kit enables MetaRouter to send server-side customer and commerce events directly to Bloomreach using the Bloomreach Tracking API. The integration supports web, iOS, and Android event collection workflows through MetaRouter event forwarding and identity synchronization capabilities.


Product Type: Customer Data Platform

Integration Type: Starter Kit & ID Sync

Event Source Type: Web and/or Mobile App

Event Scope: Full-Funnel Events


Capabilities

  • Sends events to Bloomreach using the Tracking API
  • Supports the following event types: identify, page, order_completed, product_added, product_removed, product_viewed, checkout_step_completed
  • Supports web, iOS, and Android event sources
  • Automatically uppercases currency values before delivery
  • Defaults currency to USD when no currency is provided
  • Maps customer identifiers globally across all supported events
  • Supports Bloomreach ID sync workflows for attribution and customer recognition

Considerations

  • The BASE_URL value is organization-specific and may differ from the default api.exponea.com
  • The BASE_URL should contain only the API hostname without https:// or trailing slashes
  • Bloomreach processes events asynchronously, so successful responses indicate receipt rather than processing completion
  • The Bloomreach Sync must be configured before using the server-side starter kit
  • Public and private API authorization methods are supported
  • Public API access requires Events > Set permissions
  • The identify event maps traits into the Bloomreach properties object
  • The integration globally maps anonymousId to customer_ids.cookie
  • The integration globally maps userId to customer_ids.customer_id
  • Currency values are automatically converted to uppercase before delivery
  • If Load Bloomreach Tag From MetaRouter Script is enabled, the Bloomreach JavaScript tag loads automatically from the MetaRouter script
  • If Load Bloomreach Tag From MetaRouter Script is disabled, the Bloomreach JavaScript tag must already exist on the page before MetaRouter loads
  • The Track Sessions setting only works when the Bloomreach JavaScript tag is enabled
  • The Enable Experiments setting only works when the Bloomreach JavaScript tag is enabled
  • Enabling Fire On ReSync causes the ID sync to run again whenever an identify() call occurs
  • The integration appends Bloomreach sync status details into context.providers.bloomreach

Limitations

  • Event payloads must remain below 800 KB
  • Individual event property values must remain below 16 KB
  • Bloomreach enforces a rate limit of 6,000 requests per minute per IP
  • Requests exceeding the rate limit return HTTP 429 responses and events are discarded
  • The integration cannot recover discarded events caused by rate limiting

Identity Sync

  • Sync Available: Yes

  • Required for Starter Kit: Yes

  • Prerequisites: Bloomreach token, Bloomreach target URL, identify key configuration

  • Documentation: See Additional Bloomreach Documentation

Sync Details

  • Captures Bloomreach identifiers required for attribution and customer recognition
  • Supports loading the Bloomreach JavaScript tag through the MetaRouter script
  • Allows Bloomreach session tracking and experiment support
  • Can automatically re-trigger synchronization during identify events

Starter Kit Setup Guide

1. Deploy the Bloomreach Sync

  • To collect the sync values, you must implement a Bloomreach ID sync. Refer to the following documentation to complete the setup: Bloomreach – ID Sync Guide.

2. Gather Credentials

  • PROJECT_TOKEN — Found in Bloomreach under: Project settings > Access management > API
  • API_TOKEN — Found in Bloomreach under: Project settings > Access management > API
  • BASE_URL — Found in Bloomreach under: Project settings > Access management > API

3. Add a Bloomreach Integration

  • From the integration library, add a Bloomreach integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
PROJECT_TOKENBloomreach project identifier
API_TOKENAPI token with tracking permissions
BASE_URLBloomreach API hostname without protocol or trailing slash

4. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Bloomreach integrations typically require. You may add custom events, parameters, or mappings in accordance with Bloomreach’s API documentation.

5. Deploy to Pipeline

  • In the Pipelines tab, add your Bloomreach integration.

  • Select the correct integration revision

  • Click Add Integration to finalize deployment.


Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
customer_ids.cookieString: Anonymous browser identifier for customer matching.anonymousId
customer_ids.customer_idString: Authenticated customer identifier for customer matching.userId

Event Specific

Page

Output KeyDescriptionExpected Input
propertiesObject: Page event properties sent to Bloomreach.properties
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch
event_typeString: Bloomreach page event type.Enrichment – hardcoded value 'page'

Identify

Output KeyDescriptionExpected Input
propertiesObject: Customer profile traits sent to Bloomreach.traits
update_timestampInteger: Profile update timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Order Completed

Output KeyDescriptionExpected Input
event_typeString: Bloomreach purchase event type.Enrichment – hardcoded value 'purchase'
properties.purchase_idString: Unique purchase identifier.properties.order_id
properties.product_listArray: Product objects associated with the order.properties.products
properties.product_idsArray: Product IDs extracted from purchased items.Expression – extract product_id values from products
properties.total_priceFloat: Total order value.properties.total
properties.local_currencyString: Uppercased transaction currency.properties.currency
properties.total_quantityInteger: Sum of product quantities in the order.Expression – sum product quantities
properties.shipping_costFloat: Shipping cost for the order.properties.shipping
properties.tax_valueFloat: Tax amount for the order.properties.tax
properties.voucher_codeString: Coupon or voucher code applied to the order.properties.coupon
properties.locationString: URL where the purchase occurred.context.page.url
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Product Added

Output KeyDescriptionExpected Input
event_typeString: Bloomreach cart update event type.Enrichment – hardcoded value 'cart_update'
properties.actionString: Cart action type.Enrichment – hardcoded value 'add'
properties.page_typeString: Bloomreach page classification.Enrichment – hardcoded value 'product_added'
properties.product_idString: Product identifier.properties.product_id
properties.titleString: Product title.properties.name
properties.brandString: Product brand name.properties.brand
properties.priceFloat: Product price.properties.price
properties.category_1String: Product category.properties.category
properties.local_currencyString: Uppercased transaction currency.properties.currency
properties.locationString: URL where the event occurred.context.page.url
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Product Removed

Output KeyDescriptionExpected Input
event_typeString: Bloomreach cart update event type.Enrichment – hardcoded value 'cart_update'
properties.actionString: Cart action type.Enrichment – hardcoded value 'remove'
properties.page_typeString: Bloomreach page classification.Enrichment – hardcoded value 'product_removed'
properties.product_idString: Product identifier.properties.product_id
properties.titleString: Product title.properties.name
properties.brandString: Product brand name.properties.brand
properties.priceFloat: Product price.properties.price
properties.category_1String: Product category.properties.category
properties.local_currencyString: Uppercased transaction currency.properties.currency
properties.locationString: URL where the event occurred.context.page.url
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Checkout Step Completed

Output KeyDescriptionExpected Input
event_typeString: Bloomreach checkout event type.Enrichment – hardcoded value 'checkout'
properties.product_listArray: Product objects associated with checkout.properties.products
properties.product_idsArray: Product IDs extracted from checkout items.Expression – extract product_id values from products
properties.total_priceFloat: Checkout total value.properties.value
properties.local_currencyString: Uppercased transaction currency.properties.currency
properties.total_quantityInteger: Sum of checkout product quantities.Expression – sum product quantities
properties.shipping_costFloat: Checkout shipping cost.properties.shipping
properties.tax_valueFloat: Checkout tax amount.properties.tax
properties.voucher_codeString: Coupon or voucher code applied at checkout.properties.coupon
properties.locationString: URL where checkout occurred.context.page.url
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Product Viewed

Output KeyDescriptionExpected Input
event_typeString: Bloomreach product view event type.Enrichment – hardcoded value 'view_item'
properties.product_idString: Product identifier.properties.product_id
properties.titleString: Product title.properties.name
properties.brandString: Product brand name.properties.brand
properties.priceFloat: Product price.properties.price
properties.category_1String: Product category.properties.category
properties.local_currencyString: Uppercased transaction currency.properties.currency
properties.locationString: URL where the event occurred.context.page.url
timestampInteger: Event timestamp in Unix epoch seconds.Expression – convert RFC3339 timestamp to Unix epoch

Required & Recommended Identifiers

These identifiers must be mapped to Bloomreach in order for successful user matching to occur. Without these IDs, any events sent to Bloomreach may not be accurately reflected in reporting.

AttributeExampleSync Injector Required?
customer_ids.cookie Requiredanon_123456789Yes
customer_ids.customer_id Recommendedcustomer_987654321No
PROJECT_TOKEN Requiredmy-project-tokenNo
API_TOKEN Requiredmy-api-tokenNo

Integration Validation

  • Trigger a test event through the Bloomreach integration.

  • In Bloomreach, verify the event appears on the associated customer profile or within event activity views.

  • Confirm expected event properties and customer identifiers are populated correctly.

  • Validate that no authentication or rate limit errors are occurring during event delivery.


Additional Bloomreach Documentation