promotion_selected

Every time a promotion is clicked.

CODE
next.analytics.on('promotion_selected', (event) => {});

Triggered by promotion.clicked.

Data

Present: always; optional when it may be missing; campaign once the campaign is loaded; priced once the server priced the cart.

FieldTypePresent
idstringalwaysexitIntent({ id }) or data-next-promotion; exit_intent for the exit-intent popup by default.
type"exit_intent" | "banner"alwaysexit_intent for the exit-intent popup, banner for a marked element.
namestringoptionalexitIntent({ name }) or data-next-promotion-name, when set.
creativestringoptionalThe popup's template name or image URL, or data-next-promotion-creative.
actionstringoptionalThe template button's data-exit-intent-action, such as apply-coupon.
coupon_codestringoptionalThe button's data-coupon-code.

Example

The envelope next.analytics.on hands out, with data inside. See How analytics works for its fields.

CODE
{
  "event_id": "3f2b8c1d9e7a4b6c8d5e2f1a0b9c8d7e",
  "event_type": "promotion_selected",
  "object": "promotion",
  "data": {
    "id": "exit_intent",
    "type": "exit_intent",
    "name": "Exit offer",
    "creative": "exit-offer",
    "action": "apply-coupon",
    "coupon_code": "SAVE10"
  },
  "created_at": "2026-11-04T08:30:00.000Z",
  "session_id": "0b8f3c2d1e4a4f6b9c7d5e3f2a1b0c9d",
  "sdk_version": "0.5.0",
  "context": {
    "page_location": "https://shop.test/checkout/",
    "page_title": "Olympus Earbuds",
    "page_referrer": "",
    "campaign": {
      "id": 1310,
      "name": "Olympus",
      "currency": "USD",
      "language": "en"
    },
    "session_id": "0b8f3c2d1e4a4f6b9c7d5e3f2a1b0c9d",
    "attribution": {
      "funnel": "Olympus"
    },
    "browser": {
      "user_agent": "Mozilla/5.0 …",
      "language": "en-US",
      "device_type": "desktop"
    }
  }
}

Sent to