Skip to main content

Recommendations

Recommendations

Manage recommendation widgets, strategy selection, previews, analytics, and runtime tracking.

Audience: Merchandising and personalization teams using recommendation placements across site pages.

Critical: Public storefront delivery uses /api/v1/public/sites/:siteKey/recommendations and event ingestion uses dedicated recommendation track endpoints.

Who This Page Is For

Use this page when you need an end-to-end operational contract for recommendation widget creation, preview, lifecycle operations, and analytics-safe event tracking.

Quick Start (2-5 Minutes)

1

Review supported strategies

Fetch current strategy and platform options before widget creation.

GET /api/v1/recommendations/strategies
GET /api/v1/recommendations/platforms
2

Create recommendation widget

Create site-scoped widget with strategy and display settings.

POST /api/v1/recommendations/site/:siteId
3

Preview output products

Run preview call to validate strategy output before activating.

POST /api/v1/recommendations/:id/site/:siteId/preview
4

Activate in site scope

Turn widget on/off without deleting the configuration.

PUT /api/v1/recommendations/:id/site/:siteId/toggle-active
5

Track runtime interactions

Send recommendation event and behavior signals from storefront runtime.

POST /api/v1/public/sites/:siteKey/recommendations/track/event
POST /api/v1/public/sites/:siteKey/recommendations/track/behavior

Core endpoints

GET    /api/v1/recommendations/strategies
GET    /api/v1/recommendations/platforms
GET    /api/v1/recommendations
GET    /api/v1/recommendations/site/:siteId
GET    /api/v1/recommendations/:id
GET    /api/v1/recommendations/:id/site/:siteId
POST   /api/v1/recommendations/site/:siteId
PUT    /api/v1/recommendations/:id
PUT    /api/v1/recommendations/:id/site/:siteId
PATCH  /api/v1/recommendations/:id
POST   /api/v1/recommendations/:id/site/:siteId/preview
GET    /api/v1/recommendations/:id/site/:siteId/analytics
POST   /api/v1/recommendations/:id/duplicate
POST   /api/v1/recommendations/:id/site/:siteId/duplicate
DELETE /api/v1/recommendations/:id
DELETE /api/v1/recommendations/:id/site/:siteId
PUT    /api/v1/recommendations/:id/site/:siteId/toggle-active
POST   /api/v1/recommendations/site/:siteId/track/event
POST   /api/v1/recommendations/site/:siteId/track/behavior
GET    /api/v1/public/sites/:siteKey/recommendations
POST   /api/v1/public/sites/:siteKey/recommendations/:widgetId/products
POST   /api/v1/public/sites/:siteKey/recommendations/track/event
POST   /api/v1/public/sites/:siteKey/recommendations/track/behavior

Required Fields / Minimum Payload

FieldRequiredTypeUsed by eventsDescription
siteIdRequireduuidCreate/list scopeRecommendation ownership and security boundary.
nameRequiredstringCreate/updateOperational widget name in dashboard and analytics.
strategyRequiredRecommendationStrategyRanking logicSelects recommendation retrieval behavior (bestsellers, viewed_together, ai_personalized, etc.).
productsToShowOptionalnumberRenderingControls item count delivered to placement.
pageTargetingJsonOptionalobjectEligibilityInclude/exclude URLs and page-type matching.
segmentTargetingMode + segmentIdsConditionalstring + uuid[]Audience gatingInclude/exclude segments for recommendation delivery.

Create recommendation widget (minimal example)

{
"name": "Product Page Similar Items",
"strategy": "similar_products",
"productsToShow": 8,
"displayType": "slider",
"pageTargetingJson": {
  "includeUrls": ["/products/*"],
  "showOnAllPages": false
}
}

Event or Endpoint Decision Matrix

ScenarioUse ThisWhy
Get organization-level inventoryGET /api/v1/recommendationsGlobal view for operations and audits.
Operate within one siteGET /api/v1/recommendations/site/:siteIdSimplifies site-specific rollout and cleanup.
Validate recommendation output before launchPOST /api/v1/recommendations/:id/site/:siteId/previewPrevents low-quality live placements.
Track click/impression/cart behavior from private admin flowPOST /api/v1/recommendations/site/:siteId/track/event or /track/behaviorSupports authenticated internal tools or testing utilities.
Track storefront runtime behaviorPOST /api/v1/public/sites/:siteKey/recommendations/track/event and /track/behaviorPublic ingestion contract used by production widget script.

Common Errors and Fixes

Preview works but storefront shows empty products

Cause: Page targeting rules or trigger settings prevent runtime placement from requesting products.

Fix: Validate pageTargetingJson, trigger config, and public products endpoint call path.

Widget not toggling in site context

Cause: Wrong siteId for the widget or mismatched legacy route usage.

Fix: Use site-scoped toggle endpoint with correct widget ID and site ID pair.

Analytics appears incomplete

Cause: Runtime events not sent consistently to track/event and track/behavior endpoints.

Fix: Ensure impression/click/add-to-cart/purchase signals are emitted from storefront layer.

Integration endpoint returns provider unsupported

Cause: Provider name mismatch in external forwarding setup.

Fix: Use canonical provider names (ga4, meta, gads/google_ads).

Production Checklist

  • Strategy is explicitly chosen and documented per widget.Required
  • Preview output is reviewed before activating each widget.Required
  • Site-scoped toggle flow is used for controlled rollouts.Required
  • Runtime tracking events are wired to public recommendation tracking endpoints.Required
  • Per-widget analytics is reviewed after launch for quality tuning.Required

Next Steps