Add LiftSell to your website
Choose your platform, install your widget, and confirm its first display. Basic installation includes views and clicks. Purchase tracking can wait.
1. Choose your platform
- Copy the widget code below.
- Paste it before </body> in your website's shared layout. In a site builder, use its site-wide custom code area. Your site must allow external scripts.
- Publish your website, then open a page allowed by this widget's display rules.
Open your widget in LiftSell and choose Add to Site to copy its complete code. The example below contains a placeholder key:
<script src="https://www.liftsell.com/embed/ls_YOUR_PUBLIC_KEY" async></script>For custom code installation, each widget has its own snippet. Add it once to the pages where it should run. With the Shopify app embed, enable the embed once and manage your widgets in LiftSell. Display rules determine where and when each widget appears.
2. Verify your site
In Connected Sites, add the domain visitors actually use. If it is not verified, copy its verification tag into your published page's <head> and click Verify site in the installation window. A Shopify connection verifies the store domain automatically; an additional custom domain may need separate verification.
Verification proves ownership of the domain. The widget code still needs to be installed. Read the verification guide.
Connect your consent manager
On a custom website, LiftSell keeps optional view and click analytics off until your consent manager supplies a decision. Set the current state before the embed loads, then call window.LiftSell.setConsent whenever the visitor changes it. Functional form submissions, survey responses, reward claims and stock-alert requests continue without analytics consent.
<!-- Set the current decision before the LiftSell embed. -->
<script>
window.LiftSellConsent = { analytics: false, preferences: false };
function syncLiftSellConsent(nextConsent) {
window.LiftSellConsent = {
analytics: nextConsent.analytics === true,
preferences: nextConsent.preferences === true
};
window.LiftSell?.setConsent(window.LiftSellConsent);
}
</script>Map these booleans to your CMP's analytics and preferences categories. Calling setConsent with analytics: false stops optional measurement and immediately removes LiftSell's lsw_session_id and lsw_seen_before identifiers from first-party storage. Shopify-hosted themes are read from Shopify Customer Privacy automatically; if that API is unavailable or errors, LiftSell keeps optional analytics off.
Connect commerce widget data
The normal embed loads the widget. It does not guess cart, catalog, inventory or order data on an independent website. Put a versioned window.LiftSellCommerce bridge before the embed for browser capabilities, and use signed Server Events for facts that must be verified.
| Widget | Independent website | Shopify-hosted theme |
|---|---|---|
| Free Shipping, Sticky Cart, Recommendations, Recently Viewed | Browser bridge with the capabilities shown in the widget installation window. | Theme adapter supplies supported cart and product capabilities after app embed activation. |
| Back in Stock | Product context bridge plus signed inventory.changed events and transactional email. | Product/inventory scopes, inventory webhook and transactional email worker. |
| Real Purchase Social Proof | Signed purchase.confirmed, order.cancelled and refund.created events. | Order scopes and paid, cancelled and refund webhooks. |
Create and rotate signing keys in Connections. Signing secrets belong only in the connected store's backend. Browser purchase calls are useful for revenue attribution, but they are not accepted as verified social proof.
A headless Shopify storefront follows the independent-site bridge path because the Shopify theme adapter is not present.
3. Confirm the first display
- Save and activate your widget. In its installation window, select the connected site you want to test.
- Open the published site in a new tab. Visit a matching page and wait for the widget's trigger, such as a delay or scroll.
- Return to LiftSell and click Check status. Check site verification, widget activation, script activity, and the latest recorded display separately.
No activity yet? Confirm the code is published, the domain is verified, and the widget is active. If script activity exists but no display is recorded, check page and device rules, schedules, frequency limits, and your monthly view allowance. Site security settings or browser blockers can also stop scripts.
Status shows recorded activity from the last 30 days. A previous event does not prove the widget is visible right now. No order or checkout test is required for basic installation.