Custom events reference
When you build a custom block to replace a drop-in, that block no longer automatically emits the Adobe Client Data Layer (ACDL) events the drop-in would have sent. To keep analytics, personalization, Live Search, Product Recommendations, and Adobe Experience Platform (AEP) forwarding working correctly, your custom implementation must push the equivalent events to window.adobeDataLayer at the same points in the user journey.
This page lists every ACDL event emitted by the default drop-in blocks, grouped by the script or block that emits it, along with the required data layer contexts each event depends on.
Events overview
Section titled “Events overview”| Event | Block / Script | Trigger | Required Contexts |
|---|---|---|---|
| page-view | Scripts | Page load, eager phase | pageContext, shoppingCartContext (seed) |
| (delayed analytics init) | Scripts | Page load, delayed phase (gated on analytics config + consent) | storefrontInstanceContext, shopperContext, eventForwardingContext, aepContext |
| product-page-view | storefront-pdp | Page load, after product data is fetched | productContext, channelContext |
| add-to-cart | storefront-cart | User adds a product to cart, after mutation succeeds | shoppingCartContext, productContext, changedProductsContext, channelContext |
| remove-from-cart | storefront-cart | User removes or reduces quantity of a cart item, after mutation succeeds | shoppingCartContext, productContext, changedProductsContext, channelContext |
| open-cart | storefront-cart | User’s first add-to-cart when the cart was previously empty | shoppingCartContext, changedProductsContext, channelContext |
| shopping-cart-view | storefront-cart | User opens the cart or mini-cart panel | shoppingCartContext, channelContext |
| initiate-checkout | storefront-cart | User clicks “Proceed to Checkout” | shoppingCartContext, channelContext |
| sign-in | storefront-auth | User submits the login form successfully | accountContext, channelContext |
| sign-out | storefront-auth | User clicks the logout button | channelContext |
| create-account | storefront-auth | User submits the account creation form successfully | accountContext, channelContext |
| place-order | storefront-order | User completes order placement successfully | None; reads existing ACDL state at emit time |
| recs-api-request-sent | storefront-recommendations | Page load, when the recommendations API request fires | None |
| recs-api-response-received | storefront-recommendations | Page load, when the recommendations API response returns | recommendationsContext |
| recs-unit-impression-render | storefront-recommendations | Page load, when a recommendation unit mounts into the DOM | recommendationsContext |
| recs-unit-view | storefront-recommendations | When a recommendation unit scrolls into the viewport | recommendationsContext |
| recs-item-click | storefront-recommendations | User clicks a recommendation product | recommendationsContext |
| recs-item-add-to-cart-click | storefront-recommendations | User clicks Add to Cart on a recommendation product | recommendationsContext |
| search-request-sent | storefront-product-discovery | Search API call is made (on page load for PLP, or on user typing in search) | searchInputContext, channelContext |
| search-response-received | storefront-product-discovery | Search API response returns | searchResultsContext, channelContext |
| search-results-view | storefront-product-discovery | Page load, when search results finish rendering | channelContext |
| search-product-click | storefront-product-discovery | User clicks a search result product | channelContext |
| category-results-view | storefront-product-discovery | Page load, when category results finish rendering | channelContext |
Scripts (prerequisites)
Section titled “Scripts (prerequisites)”These events and contexts are seeded by the storefront’s core scripts before any block-level instrumentation runs. Custom blocks depend on these contexts being present in the ACDL.
page-view
Section titled “page-view”Block / Script: Scripts
Trigger: Page load, eager phase
Fires as soon as the page loads, seeding the data layer with the initial page and cart state that later events build on.
Required contexts:
pageContextshoppingCartContext(seed)
Delayed phase initialization
Section titled “Delayed phase initialization”Block / Script: Scripts
Trigger: Page load, delayed phase (gated on analytics config + consent)
No event is emitted at this step. Instead, the delayed phase pushes the contexts required for AEP event forwarding. This only runs when analytics configuration and user consent allow it.
Required contexts:
storefrontInstanceContextshopperContexteventForwardingContextaepContext
storefront-pdp
Section titled “storefront-pdp”product-page-view
Section titled “product-page-view”Trigger: Page load, after product data is fetched
Required contexts:
productContextchannelContext
storefront-cart
Section titled “storefront-cart”add-to-cart
Section titled “add-to-cart”Trigger: User adds a product to cart, after the mutation succeeds
Required contexts:
shoppingCartContextproductContextchangedProductsContextchannelContext
remove-from-cart
Section titled “remove-from-cart”Trigger: User removes or reduces the quantity of a cart item, after the mutation succeeds
Required contexts:
shoppingCartContextproductContextchangedProductsContextchannelContext
open-cart
Section titled “open-cart”Trigger: User’s first add-to-cart when the cart was previously empty
Required contexts:
shoppingCartContextchangedProductsContextchannelContext
shopping-cart-view
Section titled “shopping-cart-view”Trigger: User opens the cart or mini-cart panel
Required contexts:
shoppingCartContextchannelContext
initiate-checkout
Section titled “initiate-checkout”Trigger: User clicks “Proceed to Checkout”
Required contexts:
shoppingCartContextchannelContext
storefront-auth
Section titled “storefront-auth”sign-in
Section titled “sign-in”Trigger: User submits the login form successfully
Required contexts:
accountContextchannelContext
sign-out
Section titled “sign-out”Trigger: User clicks the logout button
Required contexts:
channelContext
create-account
Section titled “create-account”Trigger: User submits the account creation form successfully
Required contexts:
accountContextchannelContext
storefront-order
Section titled “storefront-order”place-order
Section titled “place-order”Trigger: User completes order placement successfully
Required contexts: None. This event reads existing ACDL state at emit time instead of requiring new contexts to be pushed.
storefront-recommendations
Section titled “storefront-recommendations”recs-api-request-sent
Section titled “recs-api-request-sent”Trigger: Page load, when the recommendations API request fires
Required contexts: None
recs-api-response-received
Section titled “recs-api-response-received”Trigger: Page load, when the recommendations API response returns
Required contexts:
recommendationsContext
recs-unit-impression-render
Section titled “recs-unit-impression-render”Trigger: Page load, when a recommendation unit mounts into the DOM
Required contexts:
recommendationsContext
recs-unit-view
Section titled “recs-unit-view”Trigger: When a recommendation unit scrolls into the viewport
Required contexts:
recommendationsContext
recs-item-click
Section titled “recs-item-click”Trigger: User clicks a recommendation product
Required contexts:
recommendationsContext
recs-item-add-to-cart-click
Section titled “recs-item-add-to-cart-click”Trigger: User clicks Add to Cart on a recommendation product
Required contexts:
recommendationsContext
storefront-product-discovery
Section titled “storefront-product-discovery”search-request-sent
Section titled “search-request-sent”Trigger: A search API call is made (on page load for PLP, or on user typing in search)
Required contexts:
searchInputContextchannelContext
search-response-received
Section titled “search-response-received”Trigger: The search API response returns
Required contexts:
searchResultsContextchannelContext
search-results-view
Section titled “search-results-view”Trigger: Page load, when search results finish rendering
Required contexts:
channelContext
search-product-click
Section titled “search-product-click”Trigger: User clicks a search result product
Required contexts:
channelContext
category-results-view
Section titled “category-results-view”Trigger: Page load, when category results finish rendering
Required contexts:
channelContext
channelContextis only required when instrumenting events for AEP collection.- These events are pushed to the ACDL (
window.adobeDataLayer), not the drop-in event bus (@dropins/tools/event-bus.js). See Events for the distinction between the two systems.