# Bambuser Developer Documentation > Technical documentation for integrating Bambuser video commerce products: Live Shopping, Shoppable Video, Video Consultation, Chat, and App Framework. Covers player embed code, cart integration, product data hydration, event tracking, analytics, Shopify integration, SSO, and REST APIs. This file contains links to documentation sections following the llmstxt.org standard. If you are an AI coding agent working on a Bambuser integration, install the official Agent Skill first — it carries the durable concepts and fetches these pages on demand: `npx skills add bambuser/bambuser-agent-skills` (Apache-2.0, https://github.com/bambuser/bambuser-agent-skills — overview at https://bambuser.com/docs/ai-agent-skills/) ## Live Shopping - [Access analytics data](https://bambuser.com/docs/live/access-analytics-data.md): Get Live Shopping analytics via bambuser-liveshop-tracking-point window event, GTM dataLayer, BamHub Stats CSV export, or the Live Shopping REST API. - [Player Integration with Native SDK for Android](https://bambuser.com/docs/live/android-native-sdk-integration.md): Pointer page for the native Android Player SDK; access granted on request, links to the Android Social Commerce SDK integration guide. - [Create a custom channel layout](https://bambuser.com/docs/live/create-custom-channel-layout.md): Build a custom channel layout using the Channels REST API (GET /v1/channels/{channelId}, READ_CHANNELS scope) for featured, scheduled, archived pla... - [Cart integration](https://bambuser.com/docs/live/cart-integration.md): In-player cart: PROVIDE_PRODUCT_DATA, ADD_TO_CART, UPDATE_ITEM_IN_CART, CHECKOUT, SYNC_CART_STATE, updateProduct; Product Feed raw field on cart ev... - [Channel](https://bambuser.com/docs/live/channel.md): Embed the no-code Channel widget for featured/upcoming/ended shows via data-bambuser-liveshopping-widget=channel, localization, multiple channels, ... - [Conversion tracking](https://bambuser.com/docs/live/conversion-tracking.md): Legacy Conversion Tracker reference using window._bambuser.collect, GTM template, and _bamls_* cookies; superseded by Shopper Events Tracking. - [Product data scraping](https://bambuser.com/docs/live/data-scraping.md): How the product scraper reads PDPs via Schema.org JSON-LD, OpenGraph og: tags, HTML; user-agent BambuserLiveShopping/1.0 and static IPs to whitelist. - [Floating Action Button (FAB)](https://bambuser.com/docs/live/fab-integration.md): Set up the Floating Action Button widget: embed.js snippet, polling intervals, __bfwOffsX/Y position, __bfwl localization, cookies, multiple FABs. - [Frequently Asked Questions](https://bambuser.com/docs/live/faq.md): Live Shopping FAQ: show moderation, BamHub, player embedding, GTM, in-show chat, mobile broadcasting, streaming latency, upload speed, Magic Link l... - [Initial setup](https://bambuser.com/docs/live/initial-setup.md): Get started embedding a show: BamHub login, create show, embed snippet, CTA via node on initBambuserLiveShopping, autoplay, onBambuserLiveShoppingR... - [Inline Player Setup](https://bambuser.com/docs/live/inline-player-setup.md): Embed a show inline with the web component; embed snippet, 320x320 min size, config; Miniplayer not supported inline. - [Player Integration with Native SDK for iOS](https://bambuser.com/docs/live/ios-native-sdk-integration.md): Pointer page for the native iOS Player SDK; access granted on request, links to the iOS Social Commerce SDK guide and Swift Package Manager install. - [Migrate from Legacy Conversion Tracking to Enhanced Tracking](https://bambuser.com/docs/live/migrate-from-legacy-conversion-tracking.md): Migrate from window._bambuser.collect to _bambuser.track('purchase') with transaction/products; enable _bamls_ltce cookie, multi-market, no dataLay... - [Miniplayer](https://bambuser.com/docs/live/miniplayer.md): Enable/customize the Miniplayer via player.configure dismiss MINIMIZE, Manual nav mode for SPAs (NAVIGATE_BEHIND_TO), Top vs Iframe context, surf i... - [Miniplayer compatibility](https://bambuser.com/docs/live/miniplayer-compatibility.md): Fix Miniplayer iframe blockers: X-Frame-Options DENY, CSP frame-ancestors none; use SAMEORIGIN/'self', SPA exemption, IFRAME vs MANUAL nav modes. - [Mobile SDK FAQ](https://bambuser.com/docs/live/mobile-sdk-faq.md): Common client questions about the Bambuser Live Shopping mobile SDKs (iOS, Android, React Native) — setup, player state, cart integration, delegate... - [Multi-market products](https://bambuser.com/docs/live/multi-market-products.md): Localize product data per market (title, price, currency, PDP URL) via the PROVIDE_PRODUCT_DATA event handler when selling across multiple markets. - [Live](https://bambuser.com/docs/live/overview.md): Live Shopping docs landing: Live Video Player tour, integration journey, and copy-paste HTML/JS boilerplate with embed, Miniplayer, cart event hand... - [Shows on Product Pages](https://bambuser.com/docs/live/shows-on-pdp.md): Embed recorded shows on PDPs with deeplinks via READ_PRODUCTS key and REST endpoints /products/highlighted and /by-references for showId and deeplink. - [Player API reference](https://bambuser.com/docs/live/player-api-reference.md): Complete Bambuser Live Player API reference - configuration options, events, methods, and constants for Web, Swift, and Kotlin. - [Player metrics](https://bambuser.com/docs/live/player-metrics.md): Catalog of player analytics events via bambuser-liveshop-tracking-point or dataLayer: lifecycle on-load/on-play/on-stop and on-interaction interact... - [Add to wishlist](https://bambuser.com/docs/live/mobile-sdk-integration-android/add-to-wishlist.md): Android SDK wishlist via BambuserVideoPlayerDelegate: handle provide-wishlist-status, add/remove-from-wishlist, open-wishlist(-login); Kotlin examp... - [Architecture](https://bambuser.com/docs/live/mobile-sdk-integration-android/architecture.md): Architecture of the Bambuser Android Native SDK: native video player for live streaming and picture-in-picture, with shoppable elements via a WebView. - [Audio Control](https://bambuser.com/docs/live/mobile-sdk-integration-android/audio-control.md): Control audio in the Android player with mute/unmute invoke functions via viewActions; hide the volume button with the ui.hideVolumeButton config f... - [Captions](https://bambuser.com/docs/live/mobile-sdk-integration-android/captions.md): Manage Android player captions: showCaptions/hideCaptions invoke, getAvailableCaptions, selectCaptionTrack, hide button via ui.hideClosedCaptionsBu... - [Cart integration](https://bambuser.com/docs/live/mobile-sdk-integration-android/cart-integration.md): Android SDK cart integration via BambuserVideoPlayerDelegate: should-add/update-item-to-cart, should-sync-cart-state, notifyView payloads, Bambuser... - [Configuration and Functions](https://bambuser.com/docs/live/mobile-sdk-integration-android/configuration-and-functions.md): Android SDK config reference: BambuserSDK init US/EU, BambuserVideoConfiguration, GetLiveView, button configs, UI hide flags, tracking, autoplay, v... - [Delegate Protocol](https://bambuser.com/docs/live/mobile-sdk-integration-android/delegate-protocol.md): Android SDK BambuserVideoPlayerDelegate: callbacks onNewEventReceived/onErrorOccurred/onVideoStatusChanged/onVideoProgress, BambuserVideoState, Vie... - [Installation](https://bambuser.com/docs/live/mobile-sdk-integration-android/installation.md): Install the Bambuser Commerce SDK for Android: Android 8+ (API 26), Compose BOM 2025.02.00, repsy.io Maven repo, com.bambuser:commerce-sdk Gradle d... - [Preloading](https://bambuser.com/docs/live/mobile-sdk-integration-android/preloading.md): Video preloading in the Bambuser Android Native SDK: preloading is on by default to cut startup time; disable via the preload configuration flag se... - [Product highlights](https://bambuser.com/docs/live/mobile-sdk-integration-android/product-highlights.md): Android SDK product highlights: should-update-product-highlight products payload, custom product view/list events, product hydration. - [Product hydration](https://bambuser.com/docs/live/mobile-sdk-integration-android/product-hydration.md): Supply product data to the Android live player at runtime: provide-product-data event, updateProductWithData invoke, currency/locale, product/size ... - [Promoted Shows](https://bambuser.com/docs/live/mobile-sdk-integration-android/promoted-shows.md): Control the promoted shows carousel in the Android player via the ui.hidePromotedShows configuration flag; show/hide examples and a minimal player ... - [Setup](https://bambuser.com/docs/live/mobile-sdk-integration-android/setup.md): Initialize the Android SDK and play a live show: BambuserSDK init US/EU in Application class, GetLiveView, BambuserVideoAsset.Live, PlayerActions, ... - [Tracking](https://bambuser.com/docs/live/mobile-sdk-integration-android/tracking.md): Attribute purchases on Android via BambuserSDK.track suspend function: transaction and product payload fields; works without an active session, 30-... - [Add to wishlist](https://bambuser.com/docs/live/mobile-sdk-integration-ios/add-to-wishlist.md): iOS SDK wishlist via BambuserVideoPlayerDelegate: handle provide-wishlist-status, add/remove-from-wishlist, open-wishlist(-login); Swift, callbackKey. - [Architecture](https://bambuser.com/docs/live/mobile-sdk-integration-ios/architecture.md): Architecture of the Bambuser iOS Native SDK: native video player for live streaming and picture-in-picture, with shoppable interactive elements via... - [Audio Control](https://bambuser.com/docs/live/mobile-sdk-integration-ios/audio-control.md): Control audio in the iOS player with mute/unmute invoke functions via playerView; hide the volume button with the ui.hideVolumeButton config flag. - [Captions](https://bambuser.com/docs/live/mobile-sdk-integration-ios/captions.md): Manage iOS player captions: showCaptions/hideCaptions invoke, getAvailableCaptions, selectCaptionTrack, hide button via ui.hideClosedCaptionsButton... - [Cart integration](https://bambuser.com/docs/live/mobile-sdk-integration-ios/cart-integration.md): iOS SDK cart integration via BambuserVideoPlayerDelegate: should-add/update-item-to-cart, should-sync-cart-state, playerView.notify payloads, Bambu... - [Configuration and Functions](https://bambuser.com/docs/live/mobile-sdk-integration-ios/configuration-and-functions.md): iOS SDK config reference: button configs (dismiss/product/checkout/actionCard), UI hide flags, tracking, autoplay, videoScaleMode, full BambuserVid... - [Delegate Protocol](https://bambuser.com/docs/live/mobile-sdk-integration-ios/delegate-protocol.md): iOS SDK BambuserVideoPlayerDelegate: callbacks onNewEventReceived/onError/onVideoStatusChanged/onVideoProgress/onThumbnailTapped, video state, PiP ... - [Installation](https://bambuser.com/docs/live/mobile-sdk-integration-ios/installation.md): Install the Bambuser Commerce SDK for iOS: Xcode 16+, Swift 5, iOS 15.6+; Swift Package Manager from bambuser-commerce-sdk-ios or manual xcframewor... - [Preloading](https://bambuser.com/docs/live/mobile-sdk-integration-ios/preloading.md): Preloading is a Shoppable Video feature and does not apply to live video on iOS; live streams start via the autoplay config flag or playerView.play(). - [Product highlights](https://bambuser.com/docs/live/mobile-sdk-integration-ios/product-highlights.md): iOS SDK product highlights: should-update-product-highlight products payload, custom product view/list events, product hydration. - [Product hydration](https://bambuser.com/docs/live/mobile-sdk-integration-ios/product-hydration.md): Supply product data to the iOS live player at runtime: provide-product-data, updateProductWithData invoke (raw or HydratedProduct builder), currenc... - [Promoted Shows](https://bambuser.com/docs/live/mobile-sdk-integration-ios/promoted-shows.md): Control the promoted shows carousel in the iOS player via the ui.hidePromotedShows configuration flag; Swift show/hide examples and a minimal playe... - [Setup](https://bambuser.com/docs/live/mobile-sdk-integration-ios/setup.md): Initialize the iOS SDK and play a live show: BambuserVideoPlayer(.US/.EU), createPlayerView with BambuserVideoConfiguration, play()/pause(), curren... - [Tracking](https://bambuser.com/docs/live/mobile-sdk-integration-ios/tracking.md): Attribute purchases on iOS via the BambuserSDK.track async function: purchase payload with transaction and products dictionaries; attributed sales ... - [Product import for multiple domains](https://bambuser.com/docs/live/product-import-multiple-domains.md): Redirect page for product import across multiple domains; redirects to the Multi-market products guide. - [Purchase tracking](https://bambuser.com/docs/live/purchase-tracking.md): Redirect page for purchase tracking; redirects to the Shopper Events Tracking guide. - [Add to wishlist](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/add-to-wishlist.md): React Native wishlist integration via onEvent on BambuserVideoView: provide-wishlist-status, add/remove-from-wishlist, open-wishlist(-login); invok... - [Audio Control](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/audio-control.md): Control audio in the React Native player with the mute()/unMute() ref methods on BambuserVideoView; hide the volume button via ui.hideVolumeButton ... - [Captions](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/captions.md): Manage React Native player captions: showCaptions/hideCaptions invoke, getAvailableCaptions, selectCaptionTrack, ui.hideClosedCaptionsButton config... - [Cart integration](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/cart-integration.md): React Native cart integration via onEvent and notify on BambuserVideoView: should-add/update-item-to-cart, should-sync-cart-state, TS; BambuserSDK.... - [Configuration and Functions](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/configuration-and-functions.md): React Native config reference: configuration prop on BambuserVideoView, button configs, UI flags, tracking, autoplay/currency/locale, videoScaleMod... - [Events](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/events.md): React Native BambuserVideoView callback props: onStatus, onProgress, onError, onEvent, onPiPStateChanged, onThumbnailTapped; iOS vs Android payload... - [Installation](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/installation.md): Install @bambuser/react-native-commerce-sdk: RN >=0.72, iOS >=15.6, Xcode >=26, Android minSdk 26; pod install -ObjC, Maven, PiP manifest, smoke test. - [Overview](https://bambuser.com/docs/live/react-native-overview.md): Overview of @bambuser/react-native-commerce-sdk for live video shopping on iOS/Android: native-core + bridge architecture, feature matrix, v1 scope... - [Player API](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/player-api.md): React Native BambuserVideoView ref API: play/pause/mute/unMute, startPiP/stopPiP/setPiPEnabled, invoke/notify bridge, getCurrentPlayerState, cleanup. - [Product highlights](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/product-highlights.md): React Native SDK product highlights: should-update-product-highlight products payload, custom product view/list events, product hydration. - [Product hydration](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/product-hydration.md): Supply product data to the RN live player at runtime: provide-product-data with iOS/Android normalization, updateProductWithData invoke, currency/l... - [Promoted Shows](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/promoted-shows.md): Control the promoted shows carousel in the RN player via the ui.hidePromotedShows config prop; show/hide and minimal player examples, memoize the c... - [Setup](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/setup.md): Mount and configure the RN BambuserVideoView: props id/server/mode/events/configuration, memoization, safe-area edges, exported TypeScript types. - [Tracking](https://bambuser.com/docs/live/mobile-sdk-integration-react-native/tracking.md): Attribute purchases from React Native via BambuserSDK.track: instantiate with server region US/EU, purchase payload with transaction/products; no v... - [REST API Statistics v2 - Customer Migration Guide](https://bambuser.com/docs/live/rest-api-statistics-v2-migration.md): Migrate to the updated REST API Statistics metrics: redefined views and viewers, new impressions and unique_impressions fields, and reduced interac... - [Custom tracking tags](https://bambuser.com/docs/live/custom-tracking-tags.md): Attach session-level tracking tags via player.configure trackingTags key/value, sent once via on-configuration; limits max 20 tags, no PII for GDPR. - [Email template — Request CSP change from Shopify](https://bambuser.com/docs/live/shopify-csp-request.md): Email templates for Shopify Plus Support to change CSP frame-ancestors from 'none' to 'self' so the Miniplayer and Video Consultation co-browsing c... - [Shopify + LiveShopping](https://bambuser.com/docs/live/shopify-guide.md): Integrate Live Shopping into Shopify: embed shows, Player API cart events, Shopper Events Tracking via Custom Pixel or theme.liquid, Miniplayer CSP... - [Track Shopper Events](https://bambuser.com/docs/live/shopper-events-tracking.md): Set up Shopper Events Tracking: cookies _bamls_lcte/usid/seid, paths window._bambuser.track, GTM template, Shopify Custom Pixel, transaction/produc... - [Use a SAML provider](https://bambuser.com/docs/live/custom-saml.md): SAML 2.0 SSO setup for the Virtual Commerce dashboard: entity ID bambuser_saml_service_provider, US/EU ACS URLs, claim mapping, X.509, SCIM provisi... - [Microsoft Azure App](https://bambuser.com/docs/live/microsoft-sso.md): Set up the native OIDC-based Microsoft Azure SSO app for the Virtual Commerce dashboard: install app, share Tenant ID, JIT provisioning, role assig... - [Integrate your Single-Sign-On](https://bambuser.com/docs/live/sso-overview.md): Overview of the three SSO options for the Virtual Commerce dashboard: SAML via Okta, native Microsoft Azure App (OIDC), and Custom SAML for other I... - [Set up SAML SSO with Microsoft Azure](https://bambuser.com/docs/live/saml-azure.md): Configure SAML 2.0 SSO with Azure AD: non-gallery Enterprise app, entity ID bambuser_saml_service_provider, US/EU reply URLs, claim mapping, group ... - [Set up SAML SSO using Okta](https://bambuser.com/docs/live/saml-okta.md): Configure SAML 2.0 SSO with Okta: app integration, audience URI bambuser_saml_service_provider, US/EU ACS URLs, attribute statements, groups, SP-in... - [Track Shopper Events](https://bambuser.com/docs/live/shopper-events-tracking-live-verification.md): Verify Shopper Events Tracking: place a test order, use DevTools Network tab to confirm a successful /events request with purchase payload; transac... - [We have Cart Integration, but we can only see one dropdown with combined variations](https://bambuser.com/docs/live/troubleshooting/combined-variations-dropdown.md): Fix product variations squished into one dropdown; use the variationFactory and sizeFactory chain in PROVIDE_PRODUCT_DATA to nest sizes under colors. - [We have Cart Integration, but clicking on the products minimizes the player or opens the product in a new tab](https://bambuser.com/docs/live/troubleshooting/product-acts-as-link.md): Fix product clicks minimizing player or opening new tab: invalid references, events outside onBambuserLiveShoppingReady, failed hydration, missing ... - [Why Is My Bambuser Channel Not Displaying Videos on My Website?](https://bambuser.com/docs/live/troubleshooting/channels-videos-not-displaying.md): Fix empty Channel widget: no shows assigned in BamHub, mismatched data-channel-id, missing embed snippet, or browser/CDN caching; DevTools checklist. - [We integrated Conversion Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/live/troubleshooting/conversion-tracker-no-data.md): Fix legacy Conversion Tracker test order missing from Stats: test show, wrong region bambuser.min.js, sync delay, missing _bamls_* cookies, CSP, /e... - [FAB Not Appearing on Our Website](https://bambuser.com/docs/live/troubleshooting/fab-not-appearing.md): Fix FAB not showing: unpublished in BamHub, no associated Live/Recorded show, missing embed code or blocked by cookie banner, wrong widget ID; DevT... - [Player does not have all features enabled when triggering it through FAB](https://bambuser.com/docs/live/troubleshooting/fab-triggers-faulty-player-configuration.md): Fix Miniplayer/Cart Integration missing when player launched via FAB: player loads config from the destination page, so add config there or redirec... - [When the player minimizes, the website crashes in the background](https://bambuser.com/docs/live/troubleshooting/miniplayer-crash.md): Fix site crash when player minimizes into overlay iframe: cross-origin navigation (use target=_blank/_top) and strict CSP frame-ancestors none/X-Fr... - [Troubleshooting Google Analytics Events in the Miniplayer](https://bambuser.com/docs/live/troubleshooting/miniplayer-iframe-context.md): Fix missing GA dataLayer events during Miniplayer: they fire in the livecommerce-surf iframe context; DevTools steps to switch console from top to ... - [Our website has different domain/subdomain for different parts. Would Miniplayer work?](https://bambuser.com/docs/live/troubleshooting/miniplayer-different-origins.md): Fix cross-origin frame access errors in Miniplayer across multiple domains/subdomains: CSP frame-ancestors 'self' workaround; address bar won't cha... - [Why Is the URL in the Address Bar Not Changing?](https://bambuser.com/docs/live/troubleshooting/miniplayer-url.md): Fix address bar not updating during Miniplayer: SPA default iframe nav (switch to MANUAL + NAVIGATE_BEHIND_TO) or cross-origin multi-page (target=_... - [Why Are Product Images, Names, or Prices Not Matching the Dashboard?](https://bambuser.com/docs/live/troubleshooting/product-data-overrides.md): Fix product images/names/prices not matching BamHub: Product Hydration via PROVIDE_PRODUCT_DATA and player.updateProduct overrides BamHub; update b... - [Thumbnail Image URL Scraped Correctly, But Image is Blank/ White](https://bambuser.com/docs/live/troubleshooting/product-scraper-blank-image.md): Fix blank/white scraped thumbnail caused by a CDN (Akamai) blocking the Image Transformer; whitelist BambuserLiveShopping/1.0 user-agent or static ... - [Troubleshooting Bambuser Product Scraper Issues](https://bambuser.com/docs/live/troubleshooting/product-scraper-troubleshooting.md): Fix product scraper failures: inaccessible/region-blocked URLs, missing structured data, CSP/firewall, frontend-only metadata, cached edits; whitel... - [Resolving Show Not Found Error](https://bambuser.com/docs/live/troubleshooting/show-not-found.md): Fix 'Show Not Found' error: regional mismatch between BamHub login and embed script URL (lcx vs lcx-eu), or an invalid/mistyped Show ID in the embe... - [We integrated Shopper Events Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/live/troubleshooting/tracker-no-data.md): Fix Shopper Events Tracker test order missing from Stats: test show, wrong region URL, sync delay, missing _bamls_* cookies, failed /events purchas... - [Player Integration in Android WebView](https://bambuser.com/docs/live/webview-integration-android.md): Embed the web player in an Android WebView (instead of native SDK): host an embed page with a JS bridge; sample Kotlin project bambuser-lvs-webview... - [Integrate the player on iOS apps](https://bambuser.com/docs/live/webview-integration-ios.md): Embed the web player in an iOS WKWebView (instead of native SDK): host an embed page with a JS bridge; sample Swift project bambuser-lvs-webview-ex... - [Widget API reference](https://bambuser.com/docs/live/widget-api-reference.md): Widget API reference via onBambuserWidgetReady: widget object Channel events PRESENT/PLAY/SHARE, FAB events, widget.on listener, setTrackingTags, p... - [Wishlist integration](https://bambuser.com/docs/live/wishlist-integration.md): Wishlist: PROVIDE_WISHLIST_STATUS, ADD/REMOVE_FROM_WISHLIST, OPEN_WISHLIST, updateWishlistStatus; login/more-info-required; Product Feed raw field ... ## Shoppable Video - [Integration guide](https://bambuser.com/docs/shoppable-video/bam-playlist-integration.md): Embed Shoppable Video via the web component: embed script, org-id, video-ids, autoplay, mode, player-fit, focus-mode, query, CSS vars. - [Optimizing site speed](https://bambuser.com/docs/shoppable-video/optimizing-site-speed.md): Shoppable Video page speed and Lighthouse: async non-blocking load, above/below-the-fold placement, GTM, preventing layout shift (CLS) with min-hei... - [Cart and product data integration](https://bambuser.com/docs/shoppable-video/cart-integration.md): In-player add-to-cart and product hydration: onBambuserLiveShoppingReady, ADD_TO_CART, UPDATE_ITEM_IN_CART, CHECKOUT, PROVIDE_PRODUCT_DATA, Product... - [Conversion tracking](https://bambuser.com/docs/shoppable-video/conversion-tracking.md): Deprecated legacy Conversion Tracker reference: _bamls_* cookies, window._bambuser.track('purchase'), GTM template, subdomain checkout, /metric ver... - [Product data scraping](https://bambuser.com/docs/shoppable-video/data-scraping.md): Product scraper priority (Schema.org JSON-LD, Microdata, OpenGraph, HTML) and how to whitelist Bambuser scraper/Image Transformer by User-Agent or ... - [Distributing videos](https://bambuser.com/docs/shoppable-video/distributing-videos.md): Three ways to assign videos to : curated BamHub playlists, automatic PDP matching (query="tag:"/"sku:"), and static video-ids attribute. - [Examples](https://bambuser.com/docs/shoppable-video/bam-playlist-examples.md): Copyable live examples: autoplay modes, grid/row layouts, focus modes, product card styles, CSS styling, stories preview, scroll con... - [Architecture](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/architecture.md): How BambuserSDK, GetLShoppableVideoView Composable, BambuserVideoAsset, and getShoppableVideoPlayerCollection fit together in the Android SDK. - [Cart Integration](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/cart-integration.md): Handle should-add-item-to-cart and should-update-item-in-cart events in the Android SDK. Extract SKU, quantity, and callbackKey, then call viewActi... - [Configuration and Functions](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/configuration-and-functions.md): Full reference for the BambuserVideoConfiguration map on Android: thumbnail block, previewConfig settings string, playerConfig buttons, currency, p... - [Delegate Protocol](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/delegate-protocol.md): BambuserVideoPlayerDelegate interface: onNewEventReceived, onErrorOccurred, onVideoStatusChanged, onVideoProgress, ViewActions, PlayerActions, and ... - [Installation](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/installation.md): Install the Bambuser Shoppable Video Android SDK via Maven. Requires Android API 26+, Kotlin 2.0+, Compose BOM 2025.02.00, and Android 36 target. - [Preloading](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/preloading.md): Use 'preload: true' in the Android SDK configuration to pre-render the Shoppable Video player in carousels and feeds. Lifecycle and Compose conside... - [Product Hydration](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/product-hydration.md): Handle the provide-product-data event in the Android SDK. Extract product refs from the payload and respond with enriched variant, price, and stock... - [Setup](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/setup.md): Initialize BambuserSDK in your Application class, then load shoppable videos by single ID, BamHub playlist, or product SKU using Jetpack Compose. - [Conversion Tracking](https://bambuser.com/docs/shoppable-video/mobileSDK/android/mobile-sdk/android/tracking.md): Send purchase and conversion events to Bambuser Analytics from Android using BambuserSDK.track(). Includes full purchase payload with products, sub... - [Android Integration guide](https://bambuser.com/docs/shoppable-video/mobileSDK/sdk-android-integration.md): Deprecated: see Android SDK sidebar section for installation, setup, delegate protocol, configuration, cart integration, product hydration, trackin... - [Appearances](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/appearances.md): Shoppable Video iOS layouts driven by a BamHub appearance: attachShoppableView, grid/row/story/FAB modes, focusMode, autoplay, sizing keys, delegate. - [Architecture](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/architecture.md): Shoppable Video iOS SDK architecture: BambuserVideoPlayer factory, three loading modes (playlist/SKU/videoId), BambuserPlayerCollection pagination,... - [Cart Integration](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/cart-integration.md): Sync the Shoppable Video iOS player cart with your native app: handle should-add-item-to-cart and should-update-item-in-cart events, respond via pl... - [Configuration and Functions](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/configuration-and-functions.md): Shoppable Video iOS SDK configuration reference: thumbnail block, previewConfig, playerConfig buttons/currency/locale, preload, videoScaleMode, res... - [Delegate Protocol](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/delegate-protocol.md): BambuserVideoPlayerDelegate for Shoppable Video iOS: all 5 callback methods, BambuserVideoState table, error handling pattern, onVideoProgress and ... - [Installation](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/installation.md): Install the Bambuser Shoppable Video iOS SDK via Swift Package Manager or xcframework. Requires Xcode 26+, Swift 6 toolchain, iOS 26+. - [Picture-in-Picture](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/picture-in-picture.md): Enable Picture-in-Picture for the Shoppable Video iOS player: pipController.isEnabled, start/stop, BambuserPictureInPictureDelegate, all PlayerPipS... - [Preloading](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/preloading.md): Preload Shoppable Video iOS players before user interaction using the preload config key or playerView.preload(). Reduce perceived latency in feeds... - [Product Hydration](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/product-hydration.md): Supply live product data to the Shoppable Video iOS player: handle provide-product-data, call updateProductWithData via invoke, product/variation/s... - [Setup](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/setup.md): Initialize BambuserVideoPlayer for Shoppable Video iOS: all three loading modes (playlist, SKU, videoId), embed BambuserPlayerView, set delegate, c... - [Conversion Tracking](https://bambuser.com/docs/shoppable-video/mobileSDK/ios/mobile-sdk/ios/tracking.md): Report purchase conversions from the Shoppable Video iOS SDK to Bambuser Analytics via BambuserSDK.track(event:with:). Includes full purchase paylo... - [iOS Integration guide](https://bambuser.com/docs/shoppable-video/mobileSDK/sdk-iOS-integration.md): Deprecated: see iOS SDK sidebar section for installation, setup, delegate protocol, configuration, cart integration, product hydration, tracking, p... - [Configuration API Reference](https://bambuser.com/docs/shoppable-video/mobileSDK/sdk-preview-config.md): Swift/Kotlin/React Native SDK configuration reference: thumbnail, previewConfig (settings, productAction, closedCaptions), and playerConfig (button... - [Cart Integration](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/cart-integration.md): Sync the Shoppable Video React Native player cart with your app: should-add/update-item-to-cart via onEvent, notify responses, BambuserSDK.track co... - [Configuration and Functions](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/configuration-and-functions.md): Shoppable Video React Native configuration reference: preload, thumbnail, previewConfig, playerConfig, videoScaleMode fit/fill, setMode and resetPl... - [Installation](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/installation.md): Install @bambuser/react-native-commerce-sdk: RN >=0.72, iOS >=15.6, Android minSdk 26; pod install with -ObjC, Bambuser Maven repo, and Compose plu... - [Overview](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/overview.md): Overview of @bambuser/react-native-commerce-sdk for Shoppable Video: collection-based loading flow, feature matrix, and links to the integration gu... - [Player API](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/player-api.md): React Native Shoppable Video API: BambuserVideoView props incl. videoScaleMode, ref methods, events, BambuserSDK fetchShoppableCollection/track, in... - [Product Hydration](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/product-hydration.md): Supply live product data to the Shoppable Video React Native player: handle provide-product-data via onEvent, call updateProductWithData through in... - [Setup](https://bambuser.com/docs/shoppable-video/mobileSDK/react-native/mobile-sdk/react-native/setup.md): Set up Shoppable Video in React Native: BamHub placement, fetchShoppableCollection by playlist, SKU, or group, render BambuserVideoView feed, mode ... - [Mobile SDK FAQ](https://bambuser.com/docs/shoppable-video/mobile-sdk-faq.md): Common client questions about the Bambuser Shoppable Video mobile SDKs (iOS, Android, React Native) — playlist loading, thumbnail, PiP, cart integr... - [Shoppable Video](https://bambuser.com/docs/shoppable-video/overview.md): Overview of Shoppable Video: on-demand short-form shoppable videos via the single HTML web component, with links to integration and ... - [Shopify + Shoppable Video](https://bambuser.com/docs/shoppable-video/shopify-guide.md): Shopify Shoppable Video setup: Cart Integration via Ajax APIs (/cart/add.js, /cart.js), code placement options, and Custom Pixel Shopper Events Tra... - [Track Shopper Events](https://bambuser.com/docs/shoppable-video/shopper-events-tracking.md): Shopper Events Tracking setup for attribution: cookies (_bamls_lcte, _bamls_usid, _bamls_seid), JS window._bambuser.track, GTM, Shopify Pixel, even... - [Track Shopper Events](https://bambuser.com/docs/shoppable-video/shopper-events-tracking-vod-verification.md): Checklist to verify Shopper Events Tracking: place test order, DevTools Network tab filter for events, confirm /events payload; FAQ on cookies, tra... - [My videos are not automatically appearing on PDPs (SKU-based distribution)](https://bambuser.com/docs/shoppable-video/troubleshooting/video-distribution-requirements.md): Troubleshoot SKU-based automatic distribution on PDPs: scraped Product Reference, BamHub match, video link, query="none" check, explicit query="sku... - [We have Cart Integration, but we can only see one dropdown with combined variations](https://bambuser.com/docs/shoppable-video/troubleshooting/combined-variations-dropdown.md): Fix merged variation dropdown in player PDP: needs hierarchical sizes-under-colors via variationFactory/sizeFactory in PROVIDE_PRODUCT_DATA (flat S... - [We integrated Conversion Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/shoppable-video/troubleshooting/conversion-tracker-no-data.md): Legacy Conversion Tracker no-data checklist: Global/EU URL, CSV delay, script load order, first-party cookies, /events or /metric call, CSP allow-l... - [Why Are Product Images, Names, or Prices Not Matching the Dashboard?](https://bambuser.com/docs/shoppable-video/troubleshooting/product-data-overrides.md): Player product images/names/prices not matching Dashboard: Cart Integration PROVIDE_PRODUCT_DATA overrides it; verify Product Hydration, update bac... - [Thumbnail Image URL Scraped Correctly, But Image is Blank/ White](https://bambuser.com/docs/shoppable-video/troubleshooting/product-scraper-blank-image.md): Blank/white scraped thumbnails: CDN/Akamai blocking Image Transformer; whitelist User-Agent BambuserLiveShopping/1.0 or static IPs, enable useImage... - [Troubleshooting Bambuser Product Scraper Issues](https://bambuser.com/docs/shoppable-video/troubleshooting/product-scraper-troubleshooting.md): Diagnose Product Scraper issues in BamHub: inaccessible US-IP URLs, empty fields (add JSON-LD), CSP/firewall blocks, dynamic metadata, blank thumbn... - [Shoppable Videos Not Appearing on My Website](https://bambuser.com/docs/shoppable-video/troubleshooting/shoppable-videos-not-appearing.md): No Shoppable Videos showing: wrong Global/EU embed script, empty playlist, mismatched component ID, page URL mismatch, player-fit="fill-parent" con... - [We integrated Shopper Events Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/shoppable-video/troubleshooting/tracker-no-data.md): Shopper Events Tracker no-data checklist: Global/EU URL, CSV delay, script load order, first-party cookies, /events payload, CSP allow-list, migrat... - [Unwanted videos appearing on our PDPs](https://bambuser.com/docs/shoppable-video/troubleshooting/unwanted-videos-on-pdps.md): Unwanted videos on PDPs from automatic SKU matching: add query="none" to to disable it while still assigning videos via video-ids. - [Shoppable Videos Not Appearing because my Website Using Background Redirects](https://bambuser.com/docs/shoppable-video/troubleshooting/background-redirects.md): Background redirects break playlist lookup: URL resolution order (canonical link, og:url, address bar); inspect the distribution network request fo... - [Wrong Shoppable Videos Appearing](https://bambuser.com/docs/shoppable-video/troubleshooting/wrong-shoppable-videos-appearing.md): Wrong videos appearing: placement matched by Page URL + Component ID (component-id or playlist-auto-id-N); use BamHub Placements to find the winnin... - [Video PDP using Shoppable Video](https://bambuser.com/docs/shoppable-video/video-pdp.md): Build a full-screen Video PDP with start-focused="true" (static or URL query), choose distribution, redirect on close event, use a black-background... - [Player API Reference](https://bambuser.com/docs/shoppable-video/vod-player-api-reference.md): Shoppable Video Player API reference: player object, constants (BUTTON, EVENT), config (currency, locale, floatingPlayer), methods (on, configure, ... - [Wishlist integration](https://bambuser.com/docs/shoppable-video/wishlist-integration.md): In-player wishlist: enable in theme editor, handle ADD_TO_WISHLIST, REMOVE_FROM_WISHLIST, PROVIDE_WISHLIST_STATUS, OPEN_WISHLIST, player.updateWish... ## Video Consultation - [Access Bambuser Analytic Data](https://bambuser.com/docs/video-consultation/access-bambuser-analytic-data.md): Four ways to pull Video Consultation analytics: dataLayer widget events, Call Stats REST API, call-ended webhook, CSV export, with full CSV column ... - [Call Summary Email](https://bambuser.com/docs/video-consultation/call-summary-email-integration.md): Webhook for call-summary topic to send custom follow-up email/SMS after a one-to-one call ends; covers endpoint setup, BamHub subscription, JSON pa... - [Calls Widget](https://bambuser.com/docs/video-consultation/call-widget.md): Redirect page for the Calls Widget; points to the one-to-one Video Consultation documentation. - [Calls Widget API Reference](https://bambuser.com/docs/video-consultation/calls-widget-api-reference.md): Full Calls Widget API reference: BambuserOneToOneEmbed config, Overlay Widget options, queue/product/cart events, instance methods, and constants. - [Cart integration](https://bambuser.com/docs/video-consultation/cart-integration.md): Sync the Calls Widget virtual cart with your native cart via should-add-item-to-cart, should-update-item-in-cart, goto-checkout events; GA4 affilia... - [Cobrowsing](https://bambuser.com/docs/video-consultation/cobrowsing.md): Cobrowsing iframe lets agent and shopper browse together: requirements, agent Chrome/Edge extension, scraping, cart sync via provide-product-data o... - [Commission Tracking](https://bambuser.com/docs/video-consultation/commission-tracking.md): Attribute one-to-one calls to a sales agent for commission: separate accounts via /v1/users REST endpoint, or shared account with tracking_tag. - [Control Widget Visibility](https://bambuser.com/docs/video-consultation/control-widget-visibility.md): Show, hide, or grey out the Calls Widget drop-in and Overlay Widget using agents-online and queue-is-open/closed events, updateElement, dropInEnabled. - [Conversion Tracking](https://bambuser.com/docs/video-consultation/conversion-tracking.md): Legacy Video Consultation conversion tracking: bambuser.min.js, _bambuser.track('purchase'), _bamls_* cookies, GTM template, /metric. Use Shopper E... - [Send booking email from another system](https://bambuser.com/docs/video-consultation/custom-booking-emails.md): Replace default bookings@bambuser.net emails via webhook on the appointment topic; handle confirmation, cancellation, rescheduled; bambuserConnectI... - [Customer data with GTM](https://bambuser.com/docs/video-consultation/gtm-customer-data.md): Pass dynamic customer data into the Calls Widget via the Bambuser GTM template using a Custom JavaScript variable; built-in or custom keys. - [Product data scraping](https://bambuser.com/docs/video-consultation/data-scraping.md): How the Bambuser scraper extracts PDP product data (Schema.org JSON-LD, Microdata, OpenGraph, HTML); whitelist BambuserLiveShopping/1.0 user-agent ... - [Miniplayer](https://bambuser.com/docs/video-consultation/floating-player.md): Keep a one-to-one call alive as a floating overlay during native checkout via oneToOneEmbed.floatAbove(url); iframe requirements, top vs iframe con... - [How To Integrate Appointedd Solution As a Booking System](https://bambuser.com/docs/video-consultation/how-to-integrate-appointedd-solution-as-a-booking-system.md): Use Appointedd as the booking system for Video Consultation: resources/services, microsite embed, bambuserConnectId link, appointeddWebhook, API key. - [How To Integrate Booxi Solution As a Booking System](https://bambuser.com/docs/video-consultation/how-to-integrate-booxi-solution-as-a-booking-system.md): Use Booxi as the booking system for Video Consultation: personnel/services, bambuserConnectId links, webhook endpoints, API key, agent staff ID lin... - [How To Integrate Qudini Solution As a Booking System](https://bambuser.com/docs/video-consultation/how-to-integrate-qudini-solution-as-a-booking-system.md): Redirect page for Qudini booking system integration; points to the general Connect Booking System guide for Video Consultation. - [Connect Booking System](https://bambuser.com/docs/video-consultation/how-to-integrate-your-booking-system.md): Three ways to connect a booking system to Video Consultation: native bookings, Appointedd/Booxi, or custom via Connect Links REST API and externalI... - [Initial Setup](https://bambuser.com/docs/video-consultation/initial-setup.md): Embed the Calls Widget: choosing embed.js (global/EU), four ways to start a call, minimum BambuserOneToOneEmbed setup with orgId, triggers, queue, ... - [Install with Google Tag Manager](https://bambuser.com/docs/video-consultation/install-one-to-one-with-gtm.md): Install the Calls Widget via the Bambuser GTM template: configure orgId/themeId/queueId/locale, Overlay Widget variant, interceptors, Consent Mode. - [Configure Displayed Services](https://bambuser.com/docs/video-consultation/configure-displayed-services.md): Choose which bookable services appear in the Calls Widget via the bookingServiceIds array or the ?bambuserBookingServiceIds URL param; finding IDs ... - [Microsoft SSO](https://bambuser.com/docs/video-consultation/microsoft-sso.md): Native Microsoft Azure OIDC SSO app for the Virtual Commerce dashboard: install app, share Tenant ID, JIT provisioning, assign Azure AD users/groups. - [Iframe Compatibility & Handling Navigation](https://bambuser.com/docs/video-consultation/miniplayer-compatibility.md): Check if your site can host iframe features (Cobrowsing, Miniplayer, Minimized Widget): X-Frame-Options/CSP frame-ancestors blockers, SPA MANUAL mode. - [Android SDK — Architecture](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/architecture.md): How the Android Calls-shopper SDK stacks a controller, JS bridge, and Compose overlay on top of a single Android WebView hosting the video call embed. - [Android SDK — Cart Integration](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/cart-integration.md): Route the agent's add-to-cart and update-cart intents to your app's own cart via shouldAddToCart and shouldUpdateCart handlers on BambuserCallHandl... - [Android SDK — Co-browse](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/co-browse.md): Enable or disable co-browsing during a video call. Route navigate-to events into your Compose navigation and echo product page visits back to the w... - [Android SDK — Customer Events](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/customer-events.md): Report shopper-driven cart and product events during a call via notifyCustomerEvent — the mobile replacement for browser dataLayer interceptions. - [Android SDK — Installation](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/installation.md): Add calls-shopper-sdk-android to your Gradle project via Repsy Maven, declare CAMERA and RECORD_AUDIO permissions, and enable hardware acceleration. - [Android SDK — Integration](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/integration.md): Mount BambuserCallOverlay in a Compose app — create the controller, wire delegate + handlers including RenderProcessGone, drop the overlay into a B... - [Android SDK — Multi-Activity retention](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/multi-activity-retention.md): Keep a live call running when the shopper navigates between Activities. Opt-in retainWebViewAcrossActivities flag plus an Application-scoped single... - [Android SDK — Picture-in-Picture](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/picture-in-picture.md): Configure the floating mini-player, enter and exit PiP programmatically, control PiP frame size, and observe presentation changes from the widget. - [Android SDK — Provide Product Data](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/provide-product-data.md): Return product details when the agent adds a product to the shared view. Implement provideProductData and reply with a BambuserFactorySpec chain. - [Android SDK — Provide Search Data](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/provide-search-data.md): Return search results when the agent searches the catalogue. Implement provideSearchData, page the results, and reply with a BambuserFactorySpec. - [Android SDK — Shopper Events Tracking](https://bambuser.com/docs/video-consultation/mobileSDK/android/mobile-sdk/android/purchase-tracking.md): Attribute shopper events (purchase, add-to-cart, refund, product-view, wishlist) to Bambuser Video Consultation sessions from a native Android app. - [iOS SDK — Architecture](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/architecture.md): How the iOS Calls-shopper SDK layers a native controller, JS bridge, and overlay on top of a single WKWebView hosting the video call embed. - [iOS SDK — Cart Integration](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/cart-integration.md): Route the agent's add-to-cart and update-cart intents to your app's own cart via shouldAddToCart and shouldUpdateCart handlers on BambuserCallHandl... - [iOS SDK — Co-browse](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/co-browse.md): Enable or disable co-browsing during a video call. Route navigate-to events from the agent into your app's navigation stack and echo product page v... - [iOS SDK — Customer Events](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/customer-events.md): Report shopper-driven cart and product events during a call via notifyCustomerEvent — the mobile replacement for browser dataLayer interceptions. - [iOS SDK — Installation](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/installation.md): Add BambuserCalls-shopper to your iOS app via Swift Package Manager. Prerequisites, minimum iOS version, camera and microphone entitlements. - [iOS SDK — Integration with SwiftUI](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/integration-swiftui.md): Mount BambuserCallOverlay in SwiftUI: create the controller, wire delegate and handlers, change locale at runtime, handle errors and audio interrup... - [iOS SDK — Integration with UIKit](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/integration-uikit.md): Mount the iOS SDK in UIKit via BambuserCallHostView or BambuserCallWindowPresenter; wire handlers, change locale, handle errors and audio interrupt... - [iOS SDK — Picture-in-Picture](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/picture-in-picture.md): Configure the floating mini-player, enter and exit PiP programmatically, control PiP frame size, and observe presentation changes from the widget. - [iOS SDK — Pin Widget](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/pin-widget.md): Standalone floating pin overlay that renders either the Bambuser widget's Overlay Widget or a custom SwiftUI card. Independent of BambuserCallContr... - [iOS SDK — Provide Product Data](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/provide-product-data.md): Return product details when the agent adds a product to the shared view. Implement the provideProductData handler and build a BambuserFactorySpec r... - [iOS SDK — Provide Search Data](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/provide-search-data.md): Return search results when the agent searches the catalogue. Implement provideSearchData, page the results, and reply with a BambuserFactorySpec. - [iOS SDK — Shopper Events Tracking](https://bambuser.com/docs/video-consultation/mobileSDK/ios/mobile-sdk/ios/purchase-tracking.md): Attribute shopper events (purchase, add-to-cart, refund, product-view, wishlist) to Bambuser Video Consultation sessions from a native iOS app. - [Using the Video Consultation App](https://bambuser.com/docs/video-consultation/using-the-app.md): Pointer page for agents using the Bambuser Video Consultation mobile app (iOS and Android); full how-to lives in the Bambuser Knowledge Base. - [Using the Dashboard](https://bambuser.com/docs/video-consultation/using-the-dashboard.md): Pointer page for admins and agents managing one-to-one queues, bookings, and settings in the Bambuser workspace (BamHub); full how-to in the Knowle... - [Overlay Widget](https://bambuser.com/docs/video-consultation/overlay-widget.md): Overlay Widget (OLW) on-page call prompt: Video, Side dock, Avatar variants, smart trigger, smartVariantOverride, popupTimeoutSeconds, getOverlayOf... - [Video Consultation](https://bambuser.com/docs/video-consultation/overview.md): Video Consultation overview: JavaScript Calls Widget for one-to-one video calls, drop-ins/bookings/connect links, agent tools, copy-paste boilerplate. - [Present Customer Data to Agent](https://bambuser.com/docs/video-consultation/present-customer-data-to-agent.md): Pass a data object (or async Promise) to BambuserOneToOneEmbed to show shopper context to the agent; recognized keys, updateData, 28-day retention. - [Provide Product Data](https://bambuser.com/docs/video-consultation/provide-product-data.md): Make products available to the agent via the provide-product-data event or BamHub Product Feed; full updateProduct chain: variations, sku, stock, p... - [Provide Search Data](https://bambuser.com/docs/video-consultation/providing-search-data.md): Let agents search your catalog from the Agent Tool via the provide-search-data event (term, page); call searchResponse with products, currency, pag... - [Purchase Tracking](https://bambuser.com/docs/video-consultation/purchase-tracking.md): Redirect page for purchase tracking; points to the Shopper Events Tracking guide for Video Consultation. - [Queue Status](https://bambuser.com/docs/video-consultation/queue-status.md): Read live one-to-one queue status via queue-is-open/closed, agents-online, queue-estimated-waiting-time events and areQueuesOpen/getEstimatedWaitin... - [Custom tracking tags](https://bambuser.com/docs/video-consultation/custom-tracking-tags.md): Attach custom metadata to every Calls Widget tracking event via trackingTags or setTrackingTags(); key/value pairs, max 1KB, up to 20, in CSV, no PII. - [Setup Google Tag Manager and Google Analytics 4 for Video Consultation tracking](https://bambuser.com/docs/video-consultation/one-to-one-gtm-ga4.md): Forward Calls Widget tracking events to GA4 via a ready-made GTM container: FULL, Bambuser-events-only, or ecommerce recipe; Import Container, set ... - [Shopify + Video Consultation](https://bambuser.com/docs/video-consultation/shopify-guide.md): Add the Calls Widget to Shopify: sample wiring Overlay Widget, provide-product-data, provide-search-data, AJAX cart sync; CSP frame-ancestors limits. - [Track Shopper Events](https://bambuser.com/docs/video-consultation/shopper-events-tracking.md): Shopper Events Tracking attributes on-site behavior (view, add-to-cart, wishlist, purchase, refund) to shoppers; _bamls cookies, track, GTM, Shopif... - [SAML Integration for Custom IAMs](https://bambuser.com/docs/video-consultation/sso-custom-saml.md): SAML 2.0 SSO between any IdP and the Virtual Commerce dashboard: entity ID bambuser_saml_service_provider, US/EU ACS URLs, claims, group mapping, S... - [Integrate your Single-Sign-On](https://bambuser.com/docs/video-consultation/sso-overview.md): Compare the three SSO options for the Virtual Commerce dashboard: SAML via Okta, native Microsoft Azure App, and Custom SAML; benefits and setup li... - [SSO with Azure AD using SAML](https://bambuser.com/docs/video-consultation/sso-saml-azure.md): Configure SAML 2.0 SSO between Azure AD and the Virtual Commerce dashboard: non-gallery app, entity ID, US/EU reply URLs, claims, group-based roles. - [SSO with Okta using SAML](https://bambuser.com/docs/video-consultation/sso-saml-okta.md): Configure SAML 2.0 SSO between Okta and the Virtual Commerce dashboard: SAML app, audience URI, US/EU ACS URLs, attribute statements, SP-initiated ... - [Minimized Calls Widget](https://bambuser.com/docs/video-consultation/surf-while-in-queue.md): Surf-While-In-Queue (Minimized Calls Widget) lets shoppers keep browsing while waiting; position with getMinimizedWidgetStyle; zIndex only in SPA m... - [Tracking Events](https://bambuser.com/docs/video-consultation/tracking-events.md): Reference for every Calls Widget tracking event: consume via GTM container, dataLayer (bmb_oto_* namespace), or tracking-event listener; GA4 ecomme... - [Track Shopper Events](https://bambuser.com/docs/video-consultation/shopper-events-tracking-video-consultation-verification.md): Checklist to verify shopper-event tracking: make a test call, checkout, inspect DevTools Network for the /events request, verify purchase payload, ... - [Connect External Chat](https://bambuser.com/docs/video-consultation/connect-external-chat.md): Route shoppers who pick 'I prefer to chat' to your external chat service via the goto-chat event (widget closes); alternatives to keep call or hide... - [We integrated Conversion Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/video-consultation/troubleshooting/conversion-tracker-no-data.md): Troubleshoot legacy Conversion Tracker test orders missing from Stats: EU/Global library URL, CSV latency, bambuser.min.js, _bamls_* cookies, /metr... - [During the call, website crashes in the background](https://bambuser.com/docs/video-consultation/troubleshooting/miniplayer-crash.md): Fix website crashing during a call from the cobrowsing/miniplayer iframe: cross-origin frame error (use target=_blank/_top) and iframe-blocking hea... - [Troubleshooting Google Analytics Events in the Miniplayer](https://bambuser.com/docs/video-consultation/troubleshooting/miniplayer-iframe-context.md): GA events missing from dataLayer in Miniplayer/Cobrowsing: events go to the iframe dataLayer; switch Chrome DevTools console JS context to the iframe. - [Our website has different domain/subdomain for different parts. Would Miniplayer work?](https://bambuser.com/docs/video-consultation/troubleshooting/miniplayer-different-origins.md): Different subdomains break Miniplayer/Cobrowsing/Surf-While-In-Queue with cross-origin frame errors; SAMEORIGIN/frame-ancestors 'self' cause; relax... - [Images Are Not Loading or Are Loading Very Slow](https://bambuser.com/docs/video-consultation/troubleshooting/product-scraper-blank-image.md): Blank, white, or slow product thumbnails in the Calls Widget: CDN/firewall blocking the Image Transformer; whitelist BambuserLiveShopping/1.0 or IPs. - [Troubleshooting Bambuser Product Scraper Issues](https://bambuser.com/docs/video-consultation/troubleshooting/product-scraper-troubleshooting.md): Checklist for Product Scraper failures: URL not public, missing/malformed Schema.org data, wrong fields, CSP/firewall blocking, dynamic rendering; ... - [We integrated Conversion Tracker and placed a test order, but cannot see the data](https://bambuser.com/docs/video-consultation/troubleshooting/tracker-no-data.md): Troubleshoot purchase/event tracking not reaching BamHub Stats: EU/Global URL, CSV latency, bambuser.min.js, _bamls_* cookies, /metric vs /events, ... - [Widget Drop-In Button Stuck in Infinite Loading](https://bambuser.com/docs/video-consultation/troubleshooting/widget-button-infinite-loader.md): Calls Widget drop-in button spins forever due to incorrect orgId; find the right org ID in the workspace URL (lcx.bambuser.com/[YOUR_ORG_ID]) and u... - [Widget Popup Not Appearing on Landing Page (with ?bambuserConnectId Parameter)](https://bambuser.com/docs/video-consultation/troubleshooting/widget-popup-not-appearing.md): Booked-call ?bambuserConnectId link doesn't pop the Calls Widget: embed not loaded at page load or incomplete embed throwing TypeError; DevTools ch... - [Updating Product Details](https://bambuser.com/docs/video-consultation/updating-product-details.md): Redirect page for updating product details; points to the Provide Product Data guide for Video Consultation. ## Chat - [Install with Google Tag Manager](https://bambuser.com/docs/chat/integrate-chat-with-gtm.md): Install Chat widget loader via Google Tag Manager Custom HTML tag on All Pages; wire Shopper Events (Product View, Purchase, Basket Add/Remove, Sea... - [Integrate Chat on Shopify](https://bambuser.com/docs/chat/integrate-chat-on-shopify.md): Install Chat on Shopify: loader.js in theme head with Application ID, tracking via Web Pixel (product_viewed, checkout_completed), trackingOnlyMode... - [Cookie requirements](https://bambuser.com/docs/chat/cookie-requirements.md): Lists all On-site Chat cookies (hero-session, hero-state, hero-user-id, hero-tracking, hero-experiment) with purpose and expiration for cookie bann... - [Redirect to Customer Service](https://bambuser.com/docs/chat/customer-service.md): Hand off Chat shoppers to Customer Service via Filtering, Needs Selector, mid-chat transfer; onCustomerServiceRedirect events and event.transcript ... - [Extend Bambuser Chat](https://bambuser.com/docs/chat/extend-chat.md): Chat Client API: auto-open via URL, listener events (onReady, onShutdown, onConversationStatusUpdate), hero() show/hide/update, launcher reposition... - [Inspector Tool](https://bambuser.com/docs/chat/inspector-tool.md): In-browser QA panel via ?inspect-virtual-shopping=true: verify Application ID, Display Rules, Shopper Event payloads, Filtering, Need Selector, CS ... - [Integration guide](https://bambuser.com/docs/chat/bam-chat-integration.md): Main Chat developer guide: install loader.js with Application ID, track Shopper Events (ecommerce:detail/purchase/add/remove), supply CSV Product F... - [Set where Bambuser Chat appears](https://bambuser.com/docs/chat/manage-display.md): Control where Chat launcher appears: Simple Mode URL lists vs Advanced Mode CSV with regex patterns, allow/deny/follow rules, scheduled activation/... - [Microsoft SSO](https://bambuser.com/docs/chat/microsoft-sso.md): Native Bambuser Microsoft Azure SSO app (OIDC) for Virtual Commerce dashboard: install app, share Tenant ID, JIT provisioning, assign Azure AD user... - [Chat](https://bambuser.com/docs/chat/overview.md): Chat product overview: connects online shoppers with in-store experts via live chat and video calls; entry point to integration, config, SSO, troub... - [SAML Integration for Custom IAMs](https://bambuser.com/docs/chat/sso-custom-saml.md): SAML 2.0 SSO for any IdP to Bambuser dashboard: entity ID bambuser_saml_service_provider, US/EU ACS URLs, email/name claims, X.509 cert, SCIM provi... - [Integrate your Single-Sign-On](https://bambuser.com/docs/chat/sso-overview.md): Compares three SSO options for Bambuser Virtual Commerce dashboard: SAML via Okta, native Microsoft Azure App (OIDC), and Custom SAML; benefits and... - [SSO with Azure AD using SAML](https://bambuser.com/docs/chat/sso-saml-azure.md): Configure SAML 2.0 SSO between Azure AD and Bambuser dashboard: non-gallery Enterprise app, entity ID, US/EU reply URLs, claim mapping, group-based... - [SSO with Okta using SAML](https://bambuser.com/docs/chat/sso-saml-okta.md): Configure SAML 2.0 SSO between Okta and Bambuser dashboard: Okta SAML app, audience URI, US/EU ACS URLs, attribute statements, groups regex, SP-ini... - [Chat Not Appearing on My Website](https://bambuser.com/docs/chat/troubleshooting/chat-not-appearing.md): Troubleshoot Chat launcher not showing: wrong loader script, bad Application ID, busy/hours deny, Manage Display rules, no associates, CSS hiding t... - [Product Feed validation errors](https://bambuser.com/docs/chat/troubleshooting/product-feed.md): Reference for Product Feed CSV/XML validation errors: missing mandatory fields, invalid URLs/numbers, unreachable feed, SKU, image URL, category fi... - [Sales are Not Attributed](https://bambuser.com/docs/chat/troubleshooting/sales-not-attributed.md): Troubleshoot missing associate sales attribution: checkout on different device/browser, missing/malformed ecommerce:purchase event, blocked hero-se... ## App Framework - [Virtual Try-on API](https://bambuser.com/docs/app-framework/build/api/calls-vto.md): VTO API reference: virtualTryOnApi.createProvider, provider lifecycle (init, provide-vto-data, provide-frame, pause, resume, dispose), VTO permissi... - [Dialog API](https://bambuser.com/docs/app-framework/build/api/dialog.md): Dialog API: openMessageDialog, openConfirmDialog, createCustomDialog, provide-instance event to replace built-ins like vto-consent, dialog view mes... - [Screen API](https://bambuser.com/docs/app-framework/build/api/screen.md): Screen API reference: screenApi.createScreen, provide-instance event for custom screens in Live Player (showsPlayer) and Calls Widget, screen view ... - [Tool API](https://bambuser.com/docs/app-framework/build/api/tool.md): Tool API: toolApi.createTool registers side-panel tools in Live Player or Calls Widget/Agent Tool; provide-instance event replaces the vto-session ... - [Design Library](https://bambuser.com/docs/app-framework/build/design-library.md): Design resources for screens, dialogs, and tools: Figma library and hosted Bam UI component primitives that auto-apply merchant theming from Bam Hub. - [Dialogs example](https://bambuser.com/docs/app-framework/build/examples/dialogs.md): Runnable Dialog API example: built-in message and confirm dialogs plus a custom dialog view, cloned via npx degit as a starting point for your app. - [Screens example](https://bambuser.com/docs/app-framework/build/examples/screens.md): Runnable Screen API example: register and serve multiple custom screens into Live Player and Video Consultation slots, cloned via npx degit. - [Tools example](https://bambuser.com/docs/app-framework/build/examples/tools.md): Runnable Tool API example: register side-panel tools that render in the Live Player or Video Consultation hosts, cloned via npx degit. - [Virtual try-on data via product hydration example](https://bambuser.com/docs/app-framework/build/examples/vto-data-via-ph.md): Runnable VTO example supplying VTO metadata through the merchant's product hydration response instead of the provide-vto-data event in Video Consul... - [Virtual try-on provider example](https://bambuser.com/docs/app-framework/build/examples/vto-custom-provider.md): Runnable custom VTO provider example using virtualTryOnApi.createProvider; overlays snowflakes on camera frames to illustrate the provide-frame con... - [Virtual try-on session tool example](https://bambuser.com/docs/app-framework/build/examples/vto-session-tool.md): Runnable example replacing the vto-session tool with custom React UI on shopper (callsWidget) and agent (callsAgentTool) sides; bundles a VTO provi... - [Getting Started](https://bambuser.com/docs/app-framework/getting-started.md): Bootstrap your first app: npx degit the bam-app-sandbox template (Node.js 20+), pick Vite/Webpack/generic starter, run in the local App Development... - [App Architecture](https://bambuser.com/docs/app-framework/learn/app-architecture.md): App anatomy: manifest plus main.js loaded by the Runtime exposing getContext and onBambuserAppContextReady; three hosts, main context vs view ifram... - [App Manifest](https://bambuser.com/docs/app-framework/learn/app-manifest.md): Manifest: permissions, entry point src.type (module/script/page), host-scoped screens/dialogs/tools, appConfig, host wildcards (showsPlayer:*, call... - [Dialogs](https://bambuser.com/docs/app-framework/learn/ui/dialogs.md): Dialogs concept: modal panels over Live Player or Video Consultation; Message, Confirm, Custom variants, replaceable vto-consent, dialog= query... - [Screens](https://bambuser.com/docs/app-framework/learn/ui/screens.md): Screens concept: full-area views before/after a Live show or call; slot model per host (pre-screen, drop-in, thank-you), screen= query param. - [Tools](https://bambuser.com/docs/app-framework/learn/ui/tools.md): Tools concept: side-panel views in Live Player or Video Consultation; one-tool-at-a-time presentation, replaceable vto-session built-in, open/close... - [App Framework](https://bambuser.com/docs/app-framework/overview.md): App Framework overview (Beta): extensibility for Live Player, Calls Widget, Agent Tool; who can build, public vs private distribution, Bam Hub, ear... - [Publish your App](https://bambuser.com/docs/app-framework/publish-you-app.md): Publishing checklist: deploy to your servers, request a Bam Hub, create app and get App ID via REST API, swap localhost URLs, narrow permissions, i...