Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.
You can integrate the self-handled opt-in option using the web SDK. You need to select the Self-Handled opt-in on the MoEngage app.For information, refer to Configure Web Push settings.
The advanced setting where you can selectively show the Browser Opt-in on specific pages or after certain actions. You have to call our function Moengage.callWebPush() from your script to show the Push permission.
<head><script type="text/javascript">...// Moengage Initialization script here// Docs: https://www.moengage.com/docs/developer-guide/web-sdk/web-sdk-integration/basic-integration/web-sdk-integration...// call to show the Chrome's push notification opt-in box.Moengage.callWebPush();</script></head>
(Mandatory) Call the function Moengage.callWebPush() from your script to show the Push permission.
<head><script type="text/javascript" src="https://cdn.moengage.com/webpush/moe_webSdk.min.latest.js><script type="text/javascript">Moengage = moe( { appId: "YOUR_WORKSPACE_ID" });///call to show the browser's native notification opt-in box.Moengage.callWebPush();</script></head>
For more information about the sample code, refer to Sample Code.
Call Moengage.callWebPush( {...} ) with the following object argument on every page:
(Using the noted class attributes in the second step)
{ "soft_ask":true, "main_class":"moe-main-class", //parent div enclosing the entire Soft-Ask-HTML "allow_class":"moe-allow-class", //the Allow Button(s) "block_class":"moe-block-class" //the Block Button(s)}
The SDK will handle when to display the soft ask and everything else. If you want callbacks for any user interactions, refer to Fully functional Custom Soft-Ask.
...<script type="text/javascript">Moengage = moe({ appId: "YOUR_WORKSPACE_ID"});///call the function callWebPush with this object argument to make your custom Soft-Ask visibleMoengage.callWebPush({ "soft_ask":true, "main_class":"moe-main-class", "allow_class":"moe-allow-class", "block_class":"moe-block-class"});</script></head><body>{/* Your Custom Soft Ask Div */}{/* Don't forget to set the style-display of your main_class to none */}<div class="moe-main-class" style="display:none;">Recieve Notifications ?...<button class="moe-allow-class">YES</button><button class="moe-block-class>NO</button></div></body>
boolean (assumed as false if not present which will trigger the hard ask)
main_class
string (class name of the soft ask HTML) Do not forget to set the style-display of yourmain_class to none initially.
allow_class
string (class name of the allow button)
block_class
string (class name of the block button)
If the soft_ask flag is set to true, it will make the soft ask appear (make the main_class appear) and wait for user interaction with the soft ask and fire the respective callback when interacted with.
If the hard ask is blocked, you will not be prompted again.
You wouldn’t know what all browsers are supported for web-push by the MoEngage SDK, so you’ll end up displaying the soft ask but without any push_token.
You wouldn’t know that the user has already given the necessary permissions and might end up displaying the soft ask unnecessarily.
You wouldn’t know when the user last dismissed the soft-ask and will end up displaying the soft ask immediately on the next page load and not after the configured optIn-reappear-time (on MoEngage Dashboard) which will lead to a bad user experience.
If you have built a personalized Soft-Ask for your website, We strongly recommend you to use the Custom Soft-Ask API.
...<script type="text/javascript">Moengage = moe({ appId: "YOUR_WORKSPACE_ID"});///call the function callWebPush with this object argument to make your Custom Soft-Ask visibleMoengage.callWebPush({ "soft_ask":true, "main_class":"moe-main-class", "allow_class":"moe-allow-class", "block_class":"moe-block-class",});</script></head><body>{/* Your Custom Soft Ask Div */}<div class="moe-main-class" style="display:none;"><div class="moe-chrome-style-notification moe-chrome-style-notification-safari"data-rapid_height="50"><div class="moe-safari-notification-inner-wrapper"><div class="moe-notification-image-wrapper-safari"> <img src="https://www.moengage.com/img/icon-web-push.png"></div> <div class="moe-text-wrapper-safari"> <span class="moe-notification-title-safari">The website "Your Website" would like to send you awesome offers!</span> <p class="moe-notification-message-safari">Notifications can be turned off anytime from browser settings.</p></div> <div style="clear: both;"> <div class="moe-modal-branding"><span><a href="https://moengage.com" target="_blank">Powered by </a></span><a href="https://moengage.com" target="_blank" style="text-decoration: none;"><img src="https://cdn.moengage.com/images/logo-dark.png"></a> </div> <div class="moe-button-wrapper"> <button class="moe-chrome-style-notification-btn moe-btn-close moe-block-class">Don't Allow</button> <button class="moe-chrome-style-notification-btn moe-btn-allow moe-allow-class">Allow</button> </div><div style="clear:both"></div></div> </div></div></div> {/* Styles for the Custom Soft Ask created above */} <style>.moe-modal-branding img {vertical-align: bottom!important;width: 63px!important;height: 30px!important;padding-right: 2px!important;display: inline-block!important;margin-bottom:-9px;margin-left:-5px;}.moe-modal-branding span a {text-decoration: none!important;color: #000!important;font-size: 10px!important;line-height: 1.2em!important;font-weight: 400!important;}.moe-modal-branding {float:left;font-size: 10px;margin-top: -2px;font-family: Arial!important;line-height: 1.2em!important;}.moe-chrome-style-notification-safari{width:422px;top:1px;left:calc(50% - 211px);background-color:#FFFFFF;margin:0;padding:0}.moe-chrome-style-notification{box-shadow:0 0 4px #888;font-size:11px;font-weight:400;position:fixed;z-index:2147483647}.moe-safari-notification-inner-wrapper{margin:0;padding:0 20px 10px}.moe-notification-image-wrapper-safari{float:left;position:relative;margin:15px 15px 0 0!important;padding:0!important;display:inline-block}.moe-chrome-style-notification-safari *{word-spacing:normal!important;letter-spacing:normal!important;font-family:"Open Sans",sans-serif!important}.moe-text-wrapper-safari{position:relative!important;padding:10px 0 0!important;color:#000!important;text-align:left!important;margin:0!important;line-height:1.4em!important;display:inline-block!important;width:calc(100% - 80px)!important}.moe-notification-title-safari{margin-bottom:5px;text-align:left;font-size:14px;font-weight:700;line-height:1.4em;color:#000;font-family:"Open Sans",sans-serif}.moe-notification-message-safari{font-size:12px!important;line-height:1.4em!important;margin:10px 0!important;padding:0!important;text-align:left!important;font-family:"Open Sans",sans-serif!important}.moe-chrome-style-notification .moe-button-wrapper{float:right!important;margin:0!important;padding:0!important}.moe-chrome-style-notification-safari .moe-chrome-style-notification-btn.moe-btn-close{background:#FFF!important;color:#000!important;border-color:#CCC!important;margin-right:20px!important;width:100px!important}.moe-chrome-style-notification-safari .moe-chrome-style-notification-btn{width:90px!important;height:26px!important;font-size:14px!important;cursor:pointer!important;line-height:1.1em!important;border-radius:4px!important;color:#fff!important;background: linear-gradient(to bottom,#23bd9f,#12ac8e)!important;border: 1px solid #12ac8e!important;display:inline-block!important;font-weight:400!important;margin:0!important;padding:5px!important;text-transform:none!important;box-sizing:border-box!important;font-family:Arial!important;text-shadow:none!important;box-shadow:none!important;white-space:nowrap!important}.moe-notification-image-wrapper-safari img{height:65px!important;width:65px!important}</style> </body>
MoEngage recommends that you call the function Moengage.callWebPush() on every rendered webpage to avoid any kind of interference with the site elements.
Search for the OPT_IN_SHOWN_TIME in localstorage (MOE_DATA)
var moeData = localStorage.getItem('MOE_DATA')moeData = JSON.parse(moeData)var optInShownTime = moeData.OPT_IN_SHOWN_TIME // it is epoch time in milliseconds
Check if softAskStatus is shown or dismissed and decide to display the soft ask based on the optInShownTime.
var softAskStatus = moeData.OPT_IN_SHOWN_TIME // it can be one of these: shown, allowed, dismissed
After you configure the opt-in and the user visits your website, there is a prompt for opt-in permission requests. If the user accepts the opt-in request, the reachability icon for web push is green in color on the MoEngage user profile page. For more information, refer to User Reachability.
I wish to customize Notification permission opt-in banner or nudge.
You can customize the time (after which to show banner or nudge), Text, Fonts & Font-size. For more information, refer to Configure Web Push Settings.For further assistance, please contact your MoEngage Customer Success Manager (CSM) or the Support team.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MoEngage","colors":{"primary":"#2E69FF","light":"#6691FF","dark":"#2554CC"},"logo":{"light":"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/light.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=28ca5909311cb6ffe01738e1503b5e64","dark":"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/dark.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=728a767d8fb8d3434575a28de18d08c5","href":"https://www.moengage.com/docs/"},"favicon":"https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/logo/favicon.svg?fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=9d13744d3b616913967983f324947bb5","api":{"examples":{"languages":["curl"]}},"appearance":{"default":"system"},"background":{"decoration":"gradient","color":{"light":"#FFFFFF","dark":"#121212"}},"navbar":{"links":[{"href":"/user-guide/contact-support/raise-a-support-ticket-through-moengage-dashboard","label":"Support"},{"href":"https://www.moengage.com/request-demo","label":"Request Demo"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.moengage.com/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/moengage","x":"https://x.com/i/flow/login?redirect_after_login=%2Fmoengage","youtube":"https://www.youtube.com/c/MoEngage_Global","facebook":"https://www.facebook.com/moengage","github":"https://github.com/moengage"},"links":[{"header":"Support","items":[{"label":"Contact Support","href":"https://www.moengage.com/docs/user-guide/contact-support/raise-a-support-ticket-through-moengage-dashboard"},{"label":"AIRA Support Bot","href":"https://www.moengage.com/docs/user-guide/contact-support/aira-support-bot/aira-overview"},{"label":"Suggest a Feature","href":"https://www.moengage.com/docs/user-guide/contact-support/suggest-a-feature"},{"label":"System Status","href":"https://status.moengage.com"}]},{"header":"Learn","items":[{"label":"MoEngage Academy","href":"https://academy.moengage.com/student/catalog"},{"label":"Use Cases","href":"https://www.moengage.com/docs/use-cases/introduction"},{"label":"Release Notes","href":"https://www.moengage.com/docs/release-notes/subscribe-to-release-notes"},{"label":"Blog","href":"https://www.moengage.com/blog"}]},{"header":"For AI Tools","items":[{"label":"Setup Guide","href":"https://www.moengage.com/docs/documentation-access-to-agents"},{"label":"llms.txt","href":"https://www.moengage.com/docs/llms.txt"},{"label":"llms-full.txt","href":"https://www.moengage.com/docs/llms-full.txt"}]}]},"seo":{"metatags":{"google-site-verification":"ICNaPDX9oefbF09W1b5_U9PDnlkyfyKSRbIap6_dW6o"},"indexing":"all"},"fonts":{"heading":{"family":"circular","source":"https://app-cdn.moengage.com/images/Fonts/CircularXXWeb-Regular.woff2","format":"woff2"},"body":{"family":"circular","source":"https://app-cdn.moengage.com/images/Fonts/CircularXXWeb-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"ja","href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moengage","hasAudioNarration":false,"actualSubdomain":"moengage","customDomains":["moengage.com"],"gitSource":{"type":"github","owner":"moengage","repo":"moengage-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"contextualFeedback":{"allowEmail":true},"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5c1ea319ac6c743b663a8","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"en","tag":"Guide","count":1187},{"language":"ja","tag":"ガイド","count":1180},{"language":"en","tag":"User Guide","count":798},{"language":"ja","tag":"ユーザーガイド","count":798},{"language":"en","tag":"Campaigns and Channels","count":437},{"language":"ja","tag":"キャンペーンとチャネル","count":437},{"language":"en","tag":"Partner Integrations","count":390},{"language":"ja","tag":"パートナー統合","count":383},{"language":"en","tag":"SDKs","count":341},{"language":"en","tag":"Developer Guide (SDKs)","count":330},{"language":"ja","tag":"SDK","count":308},{"language":"ja","tag":"開発者ガイド(SDK)","count":297},{"language":"en","tag":"Use Cases","count":218},{"language":"ja","tag":"ユースケース","count":218},{"language":"en","tag":"API Guide","count":183},{"language":"ja","tag":"APIガイド","count":183},{"language":"en","tag":"Endpoints","count":177},{"language":"ja","tag":"エンドポイント","count":177},{"language":"en","tag":"Release Notes","count":140},{"language":"ja","tag":"リリースノート","count":136}],"searchSettings":{"maxResults":8,"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":false,"type":"email"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69a03c84f0b21f38ae93fdfb","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"How do I track user events?","status":"active","generatedBy":"manual","createdAt":"2026-02-26T12:28:52.454Z","updatedAt":"2026-02-26T12:28:52.454Z","__v":0}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/docs/_mintlify/custom/moengage/0a209f0cf9e21c6c/style.css"}],"page":{"pagePath":"developer-guide/web-sdk/web-push/configure-self-handled-opt-in","slug":"/developer-guide/web-sdk/web-push/configure-self-handled-opt-in","pageMetadata":{"title":"Configure Self-Handled Opt-In","description":"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.","href":"/developer-guide/web-sdk/web-push/configure-self-handled-opt-in"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,br:`br`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Info,OptimizedImage,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`You can integrate the self-handled opt-in option using the web SDK. You need to select the Self-Handled opt-in on the MoEngage app.`}),`\n`,_jsxs(_components.p,{children:[`For information, refer to `,_jsx(_components.a,{href:`https://www.moengage.com/docs/user-guide/campaigns-and-channels/web-push/getting-started-with-web-push/configure-web-push-settings`,children:`Configure Web Push settings`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`self-handled-opt-in`,children:`Self-Handled Opt-in`}),`\n`,_jsxs(_components.p,{children:[`The advanced setting where you can selectively show the Browser Opt-in on specific pages or after certain actions. You have to call our function `,_jsx(_components.code,{children:`Moengage.callWebPush()`}),` from your script to show the Push permission.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`10`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text/javascript\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Moengage Initialization script here`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Docs: https://www.moengage.com/docs/developer-guide/web-sdk/web-sdk-integration/basic-integration/web-sdk-integration`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// call to show the Chrome's push notification opt-in box.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Moengage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`callWebPush`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`(Mandatory) Call the function `,_jsx(_components.code,{children:`Moengage.callWebPush()`}),` from your script to show the Push permission.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`11`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text/javascript\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.moengage.com/webpush/moe_webSdk.min.latest.js>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003cscript type=\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`/javascript\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Moengage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` moe`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` appId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WORKSPACE_ID\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`///call to show the browser's native notification opt-in box.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Moengage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`callWebPush`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`For more information about the sample code, refer to `,_jsx(_components.a,{href:`https://github.com/moengage/webSDK-sample/blob/master/self-handled-push.html`,children:`Sample Code`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`self-handled-opt-ins-with-custom-soft-ask`,children:`Self Handled Opt-ins with Custom Soft-Ask`}),`\n`,_jsx(_components.p,{children:`If you have built a personalized Soft-Ask for your website, MoEngage recommends the following steps:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=1aa483a1b39e9c4e0591bc1de1e6cd29`,alt:`SOFTASK`,\"data-og-width\":`1435`,width:`1435`,\"data-og-height\":`350`,height:`350`,\"data-path\":`images/SOFTASK.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=280\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=6d18c02f4e437b257544e0f6fdf628e0 280w, https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=560\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=8d2fc457e67cc8940ee94a7b3422e557 560w, https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=840\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=3ad9b9369ec83bc862922bfdb85d555d 840w, https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=1100\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=252e1a2b13e891eeebca05be94ffb52b 1100w, https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=1650\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=588a05f340fb38abca3f77d27abd5cd8 1650w, https://mintcdn.com/moengage/b13dNrqwcDhjET-m/images/SOFTASK.png?w=2500\u0026fit=max\u0026auto=format\u0026n=b13dNrqwcDhjET-m\u0026q=85\u0026s=29d42c139c51a19e74e638899a3573b2 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`enable-a-custom-soft-ask`,children:`Enable a Custom Soft Ask`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Ensure that the settings for Self Handled Opt-in are selected on the MoEngage app.`}),`\n`,_jsx(_components.li,{children:`Create an HTML for the personalized Soft-Ask for your website`}),`\n`,_jsxs(_components.li,{children:[`Ensure to make a note of the following class attributes in the HTML.`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`parent div`}),` enclosing the entire Soft-Ask-HTML`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`Allow Button(s)`})]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`Block Button(s)`})]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Set the `,_jsx(_components.strong,{children:`display`}),` style attribute of the parent div to `,_jsx(_components.strong,{children:`none`}),`.`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,numberOfLines:`1`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-main-class\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"display:none;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`... Soft-ask-html....`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})})}),`\n`,_jsxs(_components.ol,{start:`5`,children:[`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.code,{children:`Moengage.callWebPush( {...} )`}),` with the following object argument on every page:`,_jsx(_components.br,{}),`\n`,`(Using the noted `,_jsx(_components.strong,{children:`class attributes`}),` in the second step)`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`6`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"soft_ask\":true,`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"main_class\":\"moe-main-class\",`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` //parent div enclosing the entire Soft-Ask-HTML`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"allow_class\":\"moe-allow-class\",`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` //the Allow Button(s)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"block_class\":\"moe-block-class\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` //the Block Button(s)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsxs(_components.ol,{start:`6`,children:[`\n`,_jsxs(_components.li,{children:[`The SDK will handle when to display the soft ask and everything else. If you want callbacks for any user interactions, refer to `,_jsx(_components.a,{href:`#fully-functional-custom-soft-ask`,children:`Fully functional Custom Soft-Ask`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`basic-code-sample-for-enabling-a-custom-soft-ask`,children:`Basic code sample for enabling a Custom Soft-Ask`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`25`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text/javascript\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Moengage = moe(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` appId: \"YOUR_WORKSPACE_ID\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`///call the function callWebPush with this object argument to make your custom Soft-Ask visible`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Moengage.callWebPush({`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"soft_ask\":true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"main_class\":\"moe-main-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"allow_class\":\"moe-allow-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"block_class\":\"moe-block-class\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{/* Your Custom Soft Ask Div */}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{/* Don't forget to set the style-display of your main_class to none */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-main-class\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"display:none;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Recieve Notifications ?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-allow-class\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`YES`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-block-class>NO\u003c/button>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003c/div>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003c/body>`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`detailed-reference-of-the-custom-soft-ask-api`,children:`Detailed Reference of the Custom Soft-Ask API`}),`\n`,_jsxs(_components.p,{children:[`The function `,_jsx(_components.code,{children:`Moengage.callWebPush`}),` accepts this object as an argument:`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`6`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`*{ `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"**soft_ask**\":true, `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"**main_class**\":\"moe-main-class\", `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"**allow_class**\":\"moe-allow-class\", `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"**block_class**\":\"moe-block-class\", `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}*`})}),`\n`]})})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`soft_ask`}),_jsx(_components.td,{children:`boolean (assumed as false if not present which will trigger the hard ask)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`main_class`}),_jsxs(_components.td,{children:[`string (class name of the soft ask HTML) Do not forget to set the `,_jsx(_components.strong,{children:`style-display`}),` of your`,_jsx(_components.strong,{children:`main_class`}),` to `,_jsx(_components.strong,{children:`none`}),` initially.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`allow_class`}),_jsx(_components.td,{children:`string (class name of the allow button)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`block_class`}),_jsx(_components.td,{children:`string (class name of the block button)`})]})]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`If the soft_ask flag is set to true, it will make the soft ask appear (make the main_class appear) and wait for user interaction with the soft ask and fire the respective callback when interacted with.`}),`\n`,_jsx(_components.li,{children:`If the hard ask is blocked, you will not be prompted again.`}),`\n`]})}),`\n`,_jsx(Heading,{level:`3`,id:`advantages-of-moengage-custom-soft-ask-api`,children:`Advantages of MoEngage Custom Soft-Ask API`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You wouldn’t know what all browsers are supported for web-push by the MoEngage SDK, so you’ll end up displaying the soft ask but without any push_token.`}),`\n`,_jsx(_components.li,{children:`You wouldn’t know that the user has already given the necessary permissions and might end up displaying the soft ask unnecessarily.`}),`\n`,_jsx(_components.li,{children:`You wouldn’t know when the user last dismissed the soft-ask and will end up displaying the soft ask immediately on the next page load and not after the configured optIn-reappear-time (on MoEngage Dashboard) which will lead to a bad user experience.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If you have built a personalized Soft-Ask for your website, We strongly recommend you to use the Custom Soft-Ask API.`}),`\n`,_jsx(Heading,{level:`4`,id:`fully-functional-custom-soft-ask`,children:`Fully functional Custom Soft-Ask`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`62`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`62`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text/javascript\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Moengage = moe(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` appId: \"YOUR_WORKSPACE_ID\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`///call the function callWebPush with this object argument to make your Custom Soft-Ask visible`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Moengage.callWebPush({`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"soft_ask\":true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"main_class\":\"moe-main-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"allow_class\":\"moe-allow-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"block_class\":\"moe-block-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{/* Your Custom Soft Ask Div */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-main-class\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"display:none;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-chrome-style-notification moe-chrome-style-notification-safari\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`data-rapid_height`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"50\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-safari-notification-inner-wrapper\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-notification-image-wrapper-safari\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`img`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://www.moengage.com/img/icon-web-push.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-text-wrapper-safari\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`span`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-notification-title-safari\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`The website \"Your Website\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` would like to send you awesome offers!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`span`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-notification-message-safari\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Notifications can be turned`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` off anytime from browser settings.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"clear: both;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-modal-branding\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`span`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`a`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` href`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://moengage.com\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` target`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"_blank\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Powered by `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`a`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`span`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`a`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` href`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://moengage.com\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` target`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"_blank\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text-decoration: none;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`img`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.moengage.com/images/logo-dark.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`a`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-button-wrapper\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-chrome-style-notification-btn moe-btn-close moe-block-class\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Don't`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-chrome-style-notification-btn moe-btn-allow moe-allow-class\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`button`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"clear:both\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* Styles for the Custom Soft Ask created above */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.moe-modal-branding img {vertical-align: bottom!important;width:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 63px!important;height: 30px!important;padding-right: 2px!important;display: inline-block!important;margin-bottom:-9px;margin-left:-5px;}.moe-modal-branding`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` span a {text-decoration: none!important;color: #000!important;font-size: 10px!important;line-height:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 1.2em!important;font-weight: 400!important;}.moe-modal-branding {float:left;font-size:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 10px;margin-top: -2px;font-family: Arial!important;line-height: 1.2em!important;}.moe-chrome-style-notification-safari{width:422px;top:1px;left:calc(50%`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - 211px);background-color:#FFFFFF;margin:0;padding:0}.moe-chrome-style-notification{box-shadow:0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 0 4px #888;font-size:11px;font-weight:400;position:fixed;z-index:2147483647}.moe-safari-notification-inner-wrapper{margin:0;padding:0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 20px 10px}.moe-notification-image-wrapper-safari{float:left;position:relative;margin:15px`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 15px 0 0!important;padding:0!important;display:inline-block}.moe-chrome-style-notification-safari`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` *{word-spacing:normal!important;letter-spacing:normal!important;font-family:\"Open`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sans\",sans-serif!important}.moe-text-wrapper-safari{position:relative!important;padding:10px`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 0 0!important;color:#000!important;text-align:left!important;margin:0!important;line-height:1.4em!important;display:inline-block!important;width:calc(100%`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - 80px)!important}.moe-notification-title-safari{margin-bottom:5px;text-align:left;font-size:14px;font-weight:700;line-height:1.4em;color:#000;font-family:\"Open`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sans\",sans-serif}.moe-notification-message-safari{font-size:12px!important;line-height:1.4em!important;margin:10px`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 0!important;padding:0!important;text-align:left!important;font-family:\"Open Sans\",sans-serif!important}.moe-chrome-style-notification`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .moe-button-wrapper{float:right!important;margin:0!important;padding:0!important}.moe-chrome-style-notification-safari`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .moe-chrome-style-notification-btn.moe-btn-close{background:#FFF!important;color:#000!important;border-color:#CCC!important;margin-right:20px!important;width:100px!important}.moe-chrome-style-notification-safari`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .moe-chrome-style-notification-btn{width:90px!important;height:26px!important;font-size:14px!important;cursor:pointer!important;line-height:1.1em!important;border-radius:4px!important;color:#fff!important;background:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` linear-gradient(to bottom,#23bd9f,#12ac8e)!important;border: 1px solid #12ac8e!important;display:inline-block!important;font-weight:400!important;margin:0!important;padding:5px!important;text-transform:none!important;box-sizing:border-box!important;font-family:Arial!important;text-shadow:none!important;box-shadow:none!important;white-space:nowrap!important}.moe-notification-image-wrapper-safari`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` img{height:65px!important;width:65px!important}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`MoEngage recommends that you call the function `,_jsx(_components.code,{children:`Moengage.callWebPush()`}),` on every rendered webpage to avoid any kind of interference with the site elements.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`soft-ask-example`,children:`Soft Ask Example`}),`\n`,_jsx(_components.p,{children:`In this example, we’ll implement another soft ask which is a “bell” icon at the bottom-left part of the screen.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=ca4c1f24bd8a9936ba1a3891d4a763b7`,alt:`Softaskexample`,\"data-og-width\":`356`,width:`356`,\"data-og-height\":`180`,height:`180`,\"data-path\":`images/softaskexample.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=280\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=8a8226d932dd50c05260e2c4b926c05d 280w, https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=560\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=b32de9232eafa113b78008d8127dc021 560w, https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=840\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=6da7ead0344c911c4aeef3d04a3c1702 840w, https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=914aa9f471d4b53426369891495f3947 1100w, https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=41d70acd3d0c753f4282a65b23b523e9 1650w, https://mintcdn.com/moengage/bJi_ZHRHKldZCdcW/images/softaskexample.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bJi_ZHRHKldZCdcW\u0026q=85\u0026s=73595eed7f4f616963b5658b3d9f1c2f 2500w`}),`\n`,_jsx(_components.p,{children:`Here is the required HTML:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`41`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`41`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* Your head elements */}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* Initialize Moengage Web SDK here */}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* CSS for soft ask */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`#subscription-floating-button{position: fixed; display: flex; justify-content:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` center; align-items: center; left: 15px; bottom: 15px; width: 4em; height: 4em;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` line-height: 6em; background-color: white; border-radius: 1000px; cursor: pointer;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` box-shadow: 0 5px 20px rgba(0,0,0,.3);}#subscription-floating-button:before{content:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"\"; position: absolute; left: 5px; top: 5px; bottom: 5px; right: 5px; border:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` solid 2px #e54b4d; border-radius: 100%; opacity: .7;}#subscription-floating-button`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` img{max-width: 70%;}#subscription-floating-button #tooltip{position: absolute;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` left: calc(100% + 15px); top: 50%; transform: translateY(-50%); line-height:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` normal; white-space: nowrap; background-color: #000; color: white; font-family:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sans-serif; font-size: 14px; padding:.8em; border-radius: 5px; opacity: 0; -webkit-font-smoothing:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` antialiased; transition: all .3s; pointer-events: none;}#subscription-floating-button`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` #tooltip:before{content: \"\"; position: absolute; width: 15px; height: 15px; background-color:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` #000; left: -7px; top: 50%; margin-top: -8px; transform: rotate(45deg); user-select:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` none;}#subscription-floating-button:hover img{animation: shake 0.82s cubic-bezier(.36,.07,.19,.97)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` both;}#subscription-floating-button:hover #tooltip{opacity: 1;}@keyframes shake{10%,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` 90%{transform: rotate(-2deg);}20%, 80%{transform: rotate(3deg);}30%, 50%, 70%{transform:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rotate(-5deg);}40%, 60%{transform: rotate(5deg);}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`head`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* DIV for soft ask */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-main-class\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"display: none\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"moe-allow-class\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` id=\"subscription-floating-button\"> \u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwMAAAMDCAMAAADJ/DkRAAACQFBMVEUAAADlS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS03lS00b1kIHAAAAv3RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdJSktMTU5PUFFSVFVWV1hZW1xdXl9hYmNkZmdoaWtsbW9wcXN0dXd4eXt8fn+AgoOFhoiJi4yOj5GSlJWXmJqbnZ6goqOlpqiqq62vsLK0tbe5ury+wMHDxcfIyszOz9HT1dfZ2tze4OLk5ujp6+3v8fP19/n7/astjCAAABjdSURBVBgZ7cGJg51lffbx6zkzJ3vCHXaiIhANNgXyogio7LyurUtrtYciiAW1hkUgoi9K2YT6YEVRCRAo4Igh7JwQMckkM9e/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\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` alt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tooltip\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Subscribe to notifications`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {/* Call Moengage WEB SDK Method */}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Moengage.callWebPush({`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"soft_ask\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"main_class\": \"moe-main-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"allow_class\": \"moe-allow-class\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \"block_class\": \"moe-block-class\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`sample-code-for-ask-again-of-a-soft-ask`,children:`Sample Code for ask again of a soft ask`}),`\n`,_jsx(_components.p,{children:`The sample code describes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`When a user clicks Do not Allow`}),`\n`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Search for the `,_jsx(_components.code,{children:`OPT_IN_SHOWN_TIME`}),` in localstorage (`,_jsx(_components.code,{children:`MOE_DATA`}),`)`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`3`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`var moeData = localStorage.getItem('MOE_DATA')`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`moeData = JSON.parse(moeData)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`var optInShownTime = moeData.OPT_IN_SHOWN_TIME // it is epoch time in milliseconds`})}),`\n`]})})})}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[`Check if `,_jsx(_components.code,{children:`softAskStatus`}),`\\xA0is\\xA0`,_jsx(_components.code,{children:`shown`}),`\\xA0or\\xA0`,_jsx(_components.code,{children:`dismissed`}),` and decide to display the soft ask based on the `,_jsx(_components.code,{children:`optInShownTime`}),`.`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`HTML`,wrap:`true`,numberOfLines:`1`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`var softAskStatus = moeData.OPT_IN_SHOWN_TIME // it can be one of these: shown, allowed, dismissed`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.p,{children:[`After you configure the opt-in and the user visits your website, there is a prompt for opt-in permission requests. If the user accepts the opt-in request, the reachability icon for web push is green in color on the MoEngage user profile page. For more information, refer to `,_jsx(_components.a,{href:`https://www.moengage.com/docs/user-guide/segment/reachability/user-reachability`,children:`User Reachability`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`opt-in-not-displayed`,children:`Opt-In not Displayed`}),`\n`,_jsx(_components.p,{children:`Follow these steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Check the MoEngage dashboard whether you have configured domain type as `,_jsx(_components.code,{children:`http`}),` or `,_jsx(_components.code,{children:`https`}),` and the same is your application domain URL.`]}),`\n`,_jsx(_components.li,{children:`You may be using some other Push notification provider and that serviceworker file is overlapping with MoEngage serviceworker file.`}),`\n`,_jsx(_components.li,{children:`Check the serviceworker file. It should contain the following code:`}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`JavaScript`,wrap:`true`,numberOfLines:`1`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`importScripts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'https://cdn.moengage.com/webpush/releases/serviceworker_cdn.min.latest.js'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-change-the-push-opt-in-process`,children:`How do I change the Push Opt-In process?`}),`\n`,_jsxs(_components.p,{children:[`You have three Push Opt-In options. For more information, refer to `,_jsx(_components.a,{href:`https://www.moengage.com/docs/user-guide/campaigns-and-channels/web-push/getting-started-with-web-push/configure-web-push-settings`,children:`Configure Web Push Settings`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`i-wish-to-customize-notification-permission-opt-in-banner-or-nudge`,children:`I wish to customize Notification permission opt-in banner or nudge.`}),`\n`,_jsxs(_components.p,{children:[`You can customize the time (after which to show banner or nudge), Text, Fonts \u0026 Font-size. For more information, refer to `,_jsx(_components.a,{href:`https://www.moengage.com/docs/user-guide/campaigns-and-channels/web-push/getting-started-with-web-push/configure-web-push-settings`,children:`Configure Web Push Settings`}),`.`]}),`\n`,_jsx(_components.p,{children:`For further assistance, please contact your MoEngage Customer Success Manager (CSM) or the Support team.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configure Self-Handled Opt-In","description":"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.","href":"/developer-guide/web-sdk/web-push/configure-self-handled-opt-in"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Self-Handled Opt-in","slug":"self-handled-opt-in","depth":2,"children":[]},{"title":"Self Handled Opt-ins with Custom Soft-Ask","slug":"self-handled-opt-ins-with-custom-soft-ask","depth":2,"children":[{"title":"Enable a Custom Soft Ask","slug":"enable-a-custom-soft-ask","depth":3,"children":[]},{"title":"Basic code sample for enabling a Custom Soft-Ask","slug":"basic-code-sample-for-enabling-a-custom-soft-ask","depth":3,"children":[]},{"title":"Detailed Reference of the Custom Soft-Ask API","slug":"detailed-reference-of-the-custom-soft-ask-api","depth":3,"children":[]},{"title":"Advantages of MoEngage Custom Soft-Ask API","slug":"advantages-of-moengage-custom-soft-ask-api","depth":3,"children":[]},{"title":"Fully functional Custom Soft-Ask","slug":"fully-functional-custom-soft-ask","depth":4,"children":[]},{"title":"Soft Ask Example","slug":"soft-ask-example","depth":3,"children":[]},{"title":"Sample Code for ask again of a soft ask","slug":"sample-code-for-ask-again-of-a-soft-ask","depth":3,"children":[]}]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Opt-In not Displayed","slug":"opt-in-not-displayed","depth":3,"children":[]},{"title":"How do I change the Push Opt-In process?","slug":"how-do-i-change-the-push-opt-in-process","depth":3,"children":[]},{"title":"I wish to customize Notification permission opt-in banner or nudge.","slug":"i-wish-to-customize-notification-permission-opt-in-banner-or-nudge","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/moengage/992523b3cb2256cd/script.js"],"subdomain":"moengage","siteName":"MoEngage","title":"Configure Self-Handled Opt-In - MoEngage","relatedPagesConfig":{"enabled":false,"limit":3,"mode":"manual"},"contextualStarterQuestions":[{"_id":"6a868686927170ef881c9465","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"How do I add a custom soft-ask?","status":"active","generatedBy":"contextual","path":"developer-guide/web-sdk/web-push/configure-self-handled-opt-in","createdAt":"2026-08-20T04:45:58.502Z","updatedAt":"2026-08-20T04:45:58.502Z","__v":0},{"_id":"6a868686927170ef881c9463","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"How do I enable self-handled opt-in?","status":"active","generatedBy":"contextual","path":"developer-guide/web-sdk/web-push/configure-self-handled-opt-in","createdAt":"2026-08-20T04:45:58.502Z","updatedAt":"2026-08-20T04:45:58.502Z","__v":0},{"_id":"6a868686927170ef881c9464","deploymentId":"68bea8f8fe02728a34cf2acf","questionText":"When should I call callWebPush()?","status":"active","generatedBy":"contextual","path":"developer-guide/web-sdk/web-push/configure-self-handled-opt-in","createdAt":"2026-08-20T04:45:58.502Z","updatedAt":"2026-08-20T04:45:58.502Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/developer-guide/web-sdk/web-push/configure-self-handled-opt-in","matchLevel":0},"ja":{"href":"/ja/developer-guide/web-sdk/web-push/configure-self-handled-opt-in","matchLevel":1}}},"lastModified":"2026-08-20T04:45:46.220Z","originalFileLocation":"developer-guide/web-sdk/web-push/configure-self-handled-opt-in.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\">\u003cmeta data-mint-head name=\"application-name\" content=\"MoEngage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configure Self-Handled Opt-In - MoEngage\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MoEngage\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moengage.mintlify.site/docs/_mintlify/api/og/v2?division=Web+Push\u0026amp;title=Configure+Self-Handled+Opt-In\u0026amp;description=Control+when+and+where+the+browser+push+permission+prompt+appears+using+MoEngage+self-handled+opt-in.\u0026amp;theme=f5f8670d2a6207083c52605d\u0026amp;signature=57edce55c4ae9582246f51666d7aee53a00e83e5206bf5fcc3d9ff7ff6f9b3a5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configure Self-Handled Opt-In - MoEngage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moengage.mintlify.site/docs/_mintlify/api/og/v2?division=Web+Push\u0026amp;title=Configure+Self-Handled+Opt-In\u0026amp;description=Control+when+and+where+the+browser+push+permission+prompt+appears+using+MoEngage+self-handled+opt-in.\u0026amp;theme=f5f8670d2a6207083c52605d\u0026amp;signature=57edce55c4ae9582246f51666d7aee53a00e83e5206bf5fcc3d9ff7ff6f9b3a5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/moengage/FFhO5ttvrbE72kxs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MoEngage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2E69FF\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"ICNaPDX9oefbF09W1b5_U9PDnlkyfyKSRbIap6_dW6o\">\u003clink data-mint-head rel=\"canonical\" href=\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://moengage.com/docs/ja/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://moengage.com/#organization\",\"name\":\"MoEngage\",\"url\":\"https://moengage.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moengage/VG5pJbeZsDUmdCZM/logo/light.svg?fit=max\u0026auto=format\u0026n=VG5pJbeZsDUmdCZM\u0026q=85\u0026s=28ca5909311cb6ffe01738e1503b5e64\"}},{\"@type\":\"WebSite\",\"@id\":\"https://moengage.com/docs#website\",\"name\":\"MoEngage\",\"url\":\"https://moengage.com/docs\",\"publisher\":{\"@id\":\"https://moengage.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in#webpage\",\"url\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\",\"name\":\"Configure Self-Handled Opt-In\",\"description\":\"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\",\"dateModified\":\"2026-08-20T04:45:46.220Z\",\"isPartOf\":{\"@id\":\"https://moengage.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SDKs\",\"item\":\"https://moengage.com/docs/developer-guide/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web SDK\",\"item\":\"https://moengage.com/docs/developer-guide/web-sdk/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Web Push\",\"item\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Configure Self-Handled Opt-In\",\"item\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in#article\",\"headline\":\"Configure Self-Handled Opt-In\",\"name\":\"Configure Self-Handled Opt-In\",\"description\":\"Control when and where the browser push permission prompt appears using MoEngage self-handled opt-in.\",\"url\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in\",\"mainEntityOfPage\":{\"@id\":\"https://moengage.com/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in#webpage\"},\"dateModified\":\"2026-08-20T04:45:46.220Z\",\"publisher\":{\"@id\":\"https://moengage.com/#organization\"},\"isPartOf\":{\"@id\":\"https://moengage.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MoEngage\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"MoEngage\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/developer-guide/web-sdk/web-push/configure-self-handled-opt-in.md","siteName":"MoEngage","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"User Guide","pages":[{"title":"User Guide","href":"/user-guide/introduction"}]},{"tab":"Developer Guide (SDKs)","groups":[{"group":"SDKs","pages":[{"title":"SDK Integration Guide","href":"/developer-guide/introduction"},{"title":"Connect Your IDE to MoEngage Docs","href":"/developer-guide/connect-your-ide-to-moengage-docs"},{"group":"iOS SDK","root":{"title":"MoEngage iOS SDK","href":"/developer-guide/ios-sdk/overview"},"pages":[{"title":"Config-Based Initialization","sidebarTitle":"Config-Based Initialization (Recommended)","href":"/developer-guide/ios-sdk/sdk-integration/basic/sdk-initialization/config-based-initialization"},{"group":"Manual Initialization","root":{"title":"Integrating the iOS SDK","href":"/developer-guide/ios-sdk/sdk-integration/overview"},"pages":[{"group":"Basic","pages":[{"title":"SDK Integration","href":"/developer-guide/ios-sdk/sdk-integration/basic/sdk-integration"},{"title":"Manual Initialization","sidebarTitle":"SDK Initialization","href":"/developer-guide/ios-sdk/sdk-integration/basic/sdk-initialization/manual-initialization"},{"title":"Data Center","href":"/developer-guide/ios-sdk/sdk-integration/basic/data-center"},{"title":"Configuring Project for Architecture Compatibility","href":"/developer-guide/ios-sdk/sdk-integration/basic/Configuring-Project-for-Architecture-Compatibility"},{"title":"Integration through CocoaPods","href":"/developer-guide/ios-sdk/sdk-integration/basic/integration-through-cocoa-pods"}]},{"group":"Advanced","pages":[{"title":"Custom Proxy Domain - iOS","href":"/developer-guide/ios-sdk/sdk-integration/advanced/custom-proxy-domain-ios"},{"title":"JWT Authentication","href":"/developer-guide/ios-sdk/sdk-integration/advanced/jwt-authentication"},{"title":"Add-On Security","href":"/developer-guide/ios-sdk/sdk-integration/advanced/add-on-security"}]}]},{"group":"Data Tracking","root":{"title":"Data Tracking in iOS","href":"/developer-guide/ios-sdk/data-tracking/overview"},"pages":[{"group":"Basic","pages":[{"title":"Install/Update differentiation","href":"/developer-guide/ios-sdk/data-tracking/basic/install-update-differentiation"},{"title":"Tracking user attributes","href":"/developer-guide/ios-sdk/data-tracking/basic/tracking-user-attributes"},{"title":"Setting Unique Id for SDK versions below 9.23.0","href":"/developer-guide/ios-sdk/data-tracking/basic/setting-unique-id-for-sdk-versions-below-9-23-0"},{"title":"Tracking events","href":"/developer-guide/ios-sdk/data-tracking/basic/tracking-events"}]},{"group":"Advanced","pages":[{"title":"Tracking Locale","href":"/developer-guide/ios-sdk/data-tracking/advanced/tracking-locale"},{"title":"Session and Source Tracking","href":"/developer-guide/ios-sdk/data-tracking/advanced/session-and-source-tracking"},{"title":"Personalize Experience Events tracking","href":"/developer-guide/ios-sdk/data-tracking/advanced/personalize-experience-events-tracking"}]}]},{"group":"Push","root":{"title":"Push Notifications in iOS","href":"/developer-guide/ios-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"iOS Push Integration Tutorial","href":"/developer-guide/ios-sdk/push/basic/ios-push-integration-tutorial"},{"title":"Push Notifications","href":"/developer-guide/ios-sdk/push/basic/push-notifications"},{"title":"APNS Authentication Key","href":"/developer-guide/ios-sdk/push/basic/apns-authentication-key"},{"title":"APNS Certificate/PEM file (legacy)","href":"/developer-guide/ios-sdk/push/basic/apns-certificate-pem-file-legacy"},{"title":"Actionable Notifications","href":"/developer-guide/ios-sdk/push/basic/actionable-notifications"}]},{"group":"Optional","pages":[{"title":"Transactional Live Activity","href":"/developer-guide/ios-sdk/push/optional/transactional-live-activity"},{"title":"Broadcast Live Activity","href":"/developer-guide/ios-sdk/push/optional/broadcast-live-activity"},{"title":"Push templates","href":"/developer-guide/ios-sdk/push/optional/push-templates"},{"title":"Push Handled by Application","href":"/developer-guide/ios-sdk/push/optional/push-handled-by-application"},{"title":"Real-Time Triggers","href":"/developer-guide/ios-sdk/push/optional/real-time-triggers"},{"title":"iOS Notification Center","href":"/developer-guide/ios-sdk/push/optional/i-os-notification-center"},{"title":"Location triggered","href":"/developer-guide/ios-sdk/push/optional/location-triggered"}]},{"group":"Advanced","pages":[{"title":"Custom Notification Handling","href":"/developer-guide/ios-sdk/push/advanced/custom-notification-handling"}]}]},{"group":"In-App Messages","root":{"title":"In-App Messages in iOS","href":"/developer-guide/ios-sdk/in-app-messages/overview"},"pages":[{"title":"In-App Nativ","href":"/developer-guide/ios-sdk/in-app-messages/in-app-nativ"},{"title":"Custom Action Handling","href":"/developer-guide/ios-sdk/in-app-messages/custom-action-handling"}]},{"title":"Personalize SDK","sidebarTitle":"Personalize","href":"/developer-guide/ios-sdk/personalize/personalize-sdk"},{"title":"Recommendations","href":"/developer-guide/ios-sdk/recommendations/recommendations"},{"group":"Cards","root":{"title":"Card Campaigns in iOS","href":"/developer-guide/ios-sdk/cards/overview"},"pages":[{"title":"Cards in iOS","href":"/developer-guide/ios-sdk/cards/cards-in-i-os"},{"title":"Self Handled Cards","href":"/developer-guide/ios-sdk/cards/self-handled-cards"}]},{"title":"Release Checklist","href":"/developer-guide/ios-sdk/checklist/release-checklist"},{"title":"Compliance","href":"/developer-guide/ios-sdk/compliance/compliance"},{"title":"Manual Integration","href":"/developer-guide/ios-sdk/manual-integration/manual-integration"},{"title":"iOS SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/ios-sdk/deprecated-versions/deprecated-versions"},{"group":"Migration","root":{"title":"iOS SDK Migration","href":"/developer-guide/ios-sdk/migration/overview"},"pages":[{"title":"Migration to SDK version 9.0.0","href":"/developer-guide/ios-sdk/migration/migration-to-sdk-version-9-0-0"},{"title":"Migration to SDK version 8.2.0","href":"/developer-guide/ios-sdk/migration/migration-to-sdk-version-8-2-0"},{"title":"Migration to SDK version 7.0.0","href":"/developer-guide/ios-sdk/migration/migration-to-sdk-version-7-0-0"},{"title":"Migration to SDK version 6.0.0","href":"/developer-guide/ios-sdk/migration/migration-to-sdk-version-6-0-0"},{"title":"Migration Of MoEngage SDK From Cocoapods To SPM","href":"/developer-guide/ios-sdk/migration/migration-of-moengage-sdk-from-cocoapods-to-spm"}]},{"title":"Framework Impact","href":"/developer-guide/ios-sdk/framework-size-impact/framework-size-impact"},{"title":"iOS 15","sidebarTitle":"OS Updates","href":"/developer-guide/ios-sdk/os-updates/i-os-15"},{"title":"Apple TV","href":"/developer-guide/ios-sdk/apple-tv/apple-tv"},{"title":"Troubleshooting and FAQs - iOS SDK","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/ios-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-ios"},{"title":"iOS Sample App","sidebarTitle":"Sample App","href":"/developer-guide/ios-sdk/sample-app/i-os-sample-app"}]},{"group":"Android SDK","root":{"title":"MoEngage Android SDK","href":"/developer-guide/android-sdk/overview"},"pages":[{"group":"SDK Integration","root":{"title":"Integrating the Android SDK","href":"/developer-guide/android-sdk/sdk-integration/overview"},"pages":[{"group":"Basic Integration","pages":[{"title":"Install Using BOM","href":"/developer-guide/android-sdk/sdk-integration/basic-integration/Install-Using-BOM"},{"title":"Configuring Build Settings","href":"/developer-guide/android-sdk/sdk-integration/basic-integration/configuring-build-settings"},{"title":"SDK Initialization","href":"/developer-guide/android-sdk/sdk-integration/basic-integration/sdk-initialization"},{"title":"Exclude MoEngage Storage File from Auto-Backup","href":"/developer-guide/android-sdk/sdk-integration/basic-integration/exclude-mo-engage-storage-file-from-auto-backup"}]},{"group":"Advanced or Optional","pages":[{"title":"Custom Proxy Domain - Android","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/custom-proxy-domain-android"},{"title":"JWT Authentication","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/jwt-authentication"},{"title":"Installing SDK using Artifact Id","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/installing-sdk-using-artifact-id"},{"title":"Network Security Configuration","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/network-security-configuration"},{"title":"Add-On Security","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/add-on-security"},{"title":"SDK Build Specifications","href":"/developer-guide/android-sdk/sdk-integration/advanced-or-optional/sdk-configuration"}]}]},{"group":"Data Tracking","root":{"title":"Data Tracking in Android","href":"/developer-guide/android-sdk/data-tracking/overview"},"pages":[{"group":"Basic","pages":[{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/android-sdk/data-tracking/basic/enable-advertising-identifier-tracking"},{"title":"Track Install or Update","href":"/developer-guide/android-sdk/data-tracking/basic/track-install-or-update"},{"title":"Track User Attributes","href":"/developer-guide/android-sdk/data-tracking/basic/track-user-attributes"},{"title":"Setting Unique Id for SDK versions below 13.6.00","href":"/developer-guide/android-sdk/data-tracking/basic/setting-unique-id-for-sdk-versions-below-13-6-00"},{"title":"Track Events","href":"/developer-guide/android-sdk/data-tracking/basic/track-events"}]},{"group":"Advanced or Optional","pages":[{"title":"Tracking Locale","href":"/developer-guide/android-sdk/data-tracking/advanced-or-optional/tracking-locale"},{"title":"Configuring Opt-outs","href":"/developer-guide/android-sdk/data-tracking/advanced-or-optional/configuring-opt-outs"},{"title":"Device Identifier Tracking","href":"/developer-guide/android-sdk/data-tracking/advanced-or-optional/device-identifier-tracking"},{"title":"Personalize Experience Events Tracking","href":"/developer-guide/android-sdk/data-tracking/advanced-or-optional/personalize-experience-events-tracking"}]}]},{"group":"Push","root":{"title":"Push Notifications in Android","href":"/developer-guide/android-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Push Configuration","href":"/developer-guide/android-sdk/push/basic/push-configuration"},{"title":"FCM Authentication","href":"/developer-guide/android-sdk/push/basic/fcm-authentication"},{"title":"Notification Runtime Permissions","href":"/developer-guide/android-sdk/push/basic/notification-runtime-permissions"},{"title":"Push Token Registration and Display","href":"/developer-guide/android-sdk/push/basic/push-token-registration-and-display"},{"title":"Push Token Registration and Display (Legacy)","href":"/developer-guide/android-sdk/push/basic/push-token-registration-and-display-legacy"}]},{"group":"Advanced","pages":[{"title":"Callbacks and Customisation","href":"/developer-guide/android-sdk/push/advanced/callbacks-and-customisation"},{"title":"Push Display Handled by Application","href":"/developer-guide/android-sdk/push/advanced/push-display-handled-by-application"}]},{"group":"Optional","pages":[{"group":"Push AMP+","pages":[{"title":"Push AMP Plus Integration","href":"/developer-guide/android-sdk/push/optional/push-amp-plus/push-amp-plus-integration"},{"title":"Steps to Remove Mi SDK Dependency","href":"/developer-guide/android-sdk/push/optional/push-amp-plus/steps-to-remove-mi-sdk-dependency"},{"title":"Configuring HMS Push Kit","href":"/developer-guide/android-sdk/push/optional/push-amp-plus/configuring-hms-push-kit"},{"title":"Configuring Huawei Push on MoEngage","href":"/developer-guide/android-sdk/push/optional/push-amp-plus/configuring-huawei-push-on-mo-engage"}]},{"title":"Push Amplification","href":"/developer-guide/android-sdk/push/optional/push-amplification"},{"title":"Device Triggered","href":"/developer-guide/android-sdk/push/optional/device-triggered"},{"title":"Location Triggered","href":"/developer-guide/android-sdk/push/optional/location-triggered"},{"title":"Notification Center","href":"/developer-guide/android-sdk/push/optional/notification-center"},{"title":"Push Templates","href":"/developer-guide/android-sdk/push/optional/push-templates"},{"title":"Heads Up Notification","href":"/developer-guide/android-sdk/push/optional/heads-up-notification"}]}]},{"title":"In-App NATIV","sidebarTitle":"In-App Messages","href":"/developer-guide/android-sdk/in-app-messages/in-app-nativ"},{"title":"Personalize SDK","sidebarTitle":"Personalize","href":"/developer-guide/android-sdk/personalize/personalize-sdk"},{"title":"Recommendations","href":"/developer-guide/android-sdk/recommendations/recommendations"},{"group":"Cards","root":{"title":"Card Campaigns in Android","href":"/developer-guide/android-sdk/cards/overview"},"pages":[{"title":"Cards","href":"/developer-guide/android-sdk/cards/cards"},{"title":"Cards in Jetpack Compose","href":"/developer-guide/android-sdk/cards/cards-ui-compose"},{"title":"Self Handled Cards","href":"/developer-guide/android-sdk/cards/self-handled-cards"}]},{"title":"Release Checklist","href":"/developer-guide/android-sdk/checklist/release-checklist"},{"group":"Compliance","root":{"title":"Android Data Disclosure and Consent","href":"/developer-guide/android-sdk/compliance/overview"},"pages":[{"title":"Prepare for Google Play's data disclosure requirements","href":"/developer-guide/android-sdk/compliance/prepare-for-google-plays-data-disclosure-requirements"},{"title":"Compliance","href":"/developer-guide/android-sdk/compliance/compliance"}]},{"title":"Android SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/android-sdk/deprecated-versions/deprecated-versions"},{"group":"Migration","root":{"title":"Android SDK Migration","href":"/developer-guide/android-sdk/migration/overview"},"pages":[{"title":"Migrating to Firebase Installation ID","href":"/developer-guide/android-sdk/migration/migrating-to-firebase-installation-id"},{"title":"Updating to 12.x.xx from 11.x.xx","href":"/developer-guide/android-sdk/migration/updating-to-12xxx-from-11xxx"},{"title":"Updating to 11.x.xx from 10.x.xx","href":"/developer-guide/android-sdk/migration/updating-to-11xxx-from-10xxx"},{"title":"Migration to 10.x.xx","href":"/developer-guide/android-sdk/migration/migration-to-10xxx"},{"title":"Migration from 4.x to 5.x (One time activity)","href":"/developer-guide/android-sdk/migration/migration-from-4x-to-5x-one-time-activity"},{"title":"Moving from Manifest to Code based Integration","href":"/developer-guide/android-sdk/migration/moving-from-manifest-to-code-based-integration"},{"title":"Migration To Maven Central","href":"/developer-guide/android-sdk/migration/migration-to-maven-central"},{"title":"Migrating from addon-inbox 6.0.2","href":"/developer-guide/android-sdk/migration/migrating-from-addon-inbox-602"}]},{"title":"Android 12","sidebarTitle":"OS Updates","href":"/developer-guide/android-sdk/os-updates/android-12"},{"title":"Android TV","href":"/developer-guide/android-sdk/android-tv/android-tv"},{"group":"Performance","root":{"title":"Android SDK Performance and Size","href":"/developer-guide/android-sdk/performance/overview"},"pages":[{"title":"SDK Performance","href":"/developer-guide/android-sdk/performance/sdk-performance"},{"title":"SDK Size Impact","href":"/developer-guide/android-sdk/performance/sdk-size-impact"}]},{"group":"Troubleshooting and FAQs","root":{"title":"Android Troubleshooting and FAQs","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/overview"},"pages":[{"title":"How To Use the MoEngage SDK Logger?","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/how-to-use-the-moengage-sdk-logger"},{"title":"What Are the Scenarios Where the SDK Logger Is Not Usable?","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/what-are-the-scenarios-where-the-sdk-logger-is-not-usable"},{"title":"Troubleshooting and FAQs","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs"},{"title":"Troubleshooting Push Redirection","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/troubleshooting-push-redirection"},{"title":"Troubleshooting Images","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/troubleshooting-images"},{"title":"Troubleshooting In-App","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/troubleshooting-in-app"},{"title":"Troubleshooting Exceptions","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/troubleshooting-exceptions"},{"title":"How to Fix Installation ID Drop?","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/how-to-fix-installation-id-drop"},{"title":"How to fix Token Drop? (Legacy)","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/how-to-fix-token-drop"},{"title":"How to share Android MoEngage SDK logs","href":"/developer-guide/android-sdk/troubleshooting-and-faqs/how-to-share-android-moengage-sdk-logs"}]},{"title":"Android Sample App","sidebarTitle":"Sample App","href":"/developer-guide/android-sdk/sample-app/android-sample-app"}]},{"group":"Web SDK","root":{"title":"MoEngage Web SDK","href":"/developer-guide/web-sdk/overview"},"pages":[{"group":"Web SDK Overview","root":{"title":"Web SDK Overview","href":"/developer-guide/web-sdk/web-sdk-overview/web-sdk-overview"},"pages":[{"title":"Web-SDK Browser Compatibility Matrix","href":"/developer-guide/web-sdk/web-sdk-overview/web-sdk-browser-compatibility-matrix"}]},{"group":"Web SDK Integration","root":{"title":"Integrating the Web SDK","href":"/developer-guide/web-sdk/web-sdk-integration/overview"},"pages":[{"group":"Basic Integration","pages":[{"title":"Web SDK Integration","href":"/developer-guide/web-sdk/web-sdk-integration/basic-integration/web-sdk-integration"}]},{"group":"Advanced Integration","pages":[{"title":"Content Security Policy (CSP) Nonce Support","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/content-security-policy-csp-nonce-support"},{"title":"Debugging Mode","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/debugging-mode"},{"title":"Cookies used by Web SDK","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/cookies-used-by-web-sdk"},{"title":"Web SDK Lifecycle Callbacks","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/web-sdk-lifecycle-callbacks"},{"title":"Custom Proxy Domain - Web","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/custom-proxy-domain-web"},{"title":"Bot Traffic Blocking","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/bot-traffic-blocking"},{"title":"Web SDK Opt-out","href":"/developer-guide/web-sdk/web-sdk-integration/advanced-integration/web-sdk-opt-out"}]},{"group":"Optional","pages":[{"title":"Native Browser API Support","href":"/developer-guide/web-sdk/web-sdk-integration/optional-integration/native-browser-api-support"}]}]},{"group":"Data Tracking","root":{"title":"Data Tracking on the Web","href":"/developer-guide/web-sdk/data-tracking/overview"},"pages":[{"title":"Web SDK Data Tracking Introduction","href":"/developer-guide/web-sdk/data-tracking/web-sdk-data-tracking-introduction"},{"title":"Setting Unique Id for SDK versions below 2.52.2","href":"/developer-guide/web-sdk/data-tracking/setting-unique-id-for-sdk-versions-below-2-52-2"},{"title":"Web SDK User Attributes Tracking","href":"/developer-guide/web-sdk/data-tracking/web-sdk-user-attributes-tracking"},{"title":"Web SDK Events Tracking","href":"/developer-guide/web-sdk/data-tracking/web-sdk-events-tracking"},{"title":"Configure Data opt-out in Web SDK","href":"/developer-guide/web-sdk/data-tracking/configure-data-opt-out-in-web-sdk"}]},{"group":"Web Push","root":{"title":"Web Push Notifications","href":"/developer-guide/web-sdk/web-push/overview"},"pages":[{"title":"Web Push Overview","href":"/developer-guide/web-sdk/web-push/web-push-overview"},{"title":"Safari Web Push for iOS and iPadOS","href":"/developer-guide/web-sdk/web-push/safari-web-push-for-i-os-and-i-pad-os"},{"title":"Configure and Integrate Web Push","description":"Set up the service worker and SDK initialization to send web push notifications with MoEngage.","href":"/developer-guide/web-sdk/web-push/configure-and-integrate-web-push"},{"title":"Configure Self-Handled Opt-In","href":"/developer-guide/web-sdk/web-push/configure-self-handled-opt-in"},{"title":"Opted Out Users","description":"Track push notification opt-in interactions and analyze user subscription behavior with MoEngage.","href":"/developer-guide/web-sdk/web-push/opted-out-users"}]},{"group":"Onsite Messaging","root":{"title":"On-Site Messaging","href":"/developer-guide/web-sdk/onsite-messaging/overview"},"pages":[{"title":"Configure and Integrate On-site Messaging","href":"/developer-guide/web-sdk/onsite-messaging/configure-and-integrate-on-site-messaging"},{"title":"Self Handled On-Site Messaging","href":"/developer-guide/web-sdk/onsite-messaging/self-handled-on-site-messaging"}]},{"group":"Cards","root":{"title":"Card Campaigns on the Web","href":"/developer-guide/web-sdk/cards/overview"},"pages":[{"title":"Cards","href":"/developer-guide/web-sdk/cards/cards"},{"title":"Self Handled Cards","href":"/developer-guide/web-sdk/cards/self-handled-cards"}]},{"title":"MoEngage Assist Chrome Extension","sidebarTitle":"Integration Validation","href":"/developer-guide/web-sdk/integration-validation/moengage-assist-chrome-extension"},{"title":"Web SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/web-sdk/deprecated-versions/deprecated-versions"},{"title":"Standardizing Web SDK APIs for Cross-Platform Consistency","sidebarTitle":"Migration","href":"/developer-guide/web-sdk/migration/standardizing-web-sdk-apis-for-cross-platform-consistency"},{"group":"Other Supported Web SDK Integration","root":{"title":"Other Web SDK Integrations","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/overview"},"pages":[{"title":"User Login in AMP (Older Process)","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/user-login-in-amp-older-process"},{"title":"WebView - WebSDK Support","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/web-view-web-sdk-support"},{"title":"SDK Support for Browser Extensions","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/sdk-support-for-browser-extensions"},{"title":"Google Tag Manager (GTM) Templates","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/google-tag-manager-gtm-templates"},{"title":"Smart TV integration","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/smart-tv-integration"},{"title":"Single Page App (SPA) Support","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/single-page-app-spa-support"},{"title":"Integrating with other Web Frameworks","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/integrating-with-other-web-frameworks"},{"title":"Configure and Integrate AMP Event Analytics","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/configure-and-integrate-amp-event-analytics"},{"title":"Configure and Integrate AMP Web Push","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/configure-and-integrate-amp-web-push"},{"title":"Integrate MoEngage with MCP UI Apps","href":"/developer-guide/web-sdk/other-supported-web-sdk-integration/integrate-moengage-with-mcp-ui-apps"}]}]},{"group":"Personalize SDK","root":{"title":"MoEngage Personalize SDK","href":"/developer-guide/personalize-sdk/overview"},"pages":[{"title":"Web Personalization - V2","href":"/developer-guide/personalize-sdk/sdk-integration/web-personalization-v2"},{"title":"Offerings events tracking","href":"/developer-guide/personalize-sdk/sdk-integration/offerings-events-tracking"},{"title":"Personalize API Experience events tracking","href":"/developer-guide/personalize-sdk/sdk-integration/personalize-api-experience-events-tracking"},{"title":"fetchExperiences - MoEngage Personalize SDK","href":"/developer-guide/personalize-sdk/sdk-integration/self-handled-personalize-api-experiences"},{"title":"Content Security Policy (CSP) and Impact on Personalize","href":"/developer-guide/personalize-sdk/sdk-integration/content-security-policy-csp-and-impact-on-personalize"},{"title":"Custom Attributes","href":"/developer-guide/personalize-sdk/sdk-integration/custom-attributes"}]},{"group":"Ecommerce Platforms","root":{"title":"Ecommerce Platform Integrations","href":"/developer-guide/ecommerce-platforms/overview"},"pages":[{"group":"Shopify","root":{"title":"Shopify Integration","href":"/developer-guide/ecommerce-platforms/shopify/overview"},"pages":[{"title":"Shopify 2.0","href":"/developer-guide/ecommerce-platforms/shopify/shopify-20"},{"title":"Events and User Data Tracking","href":"/developer-guide/ecommerce-platforms/shopify/events-and-user-data-tracking"},{"title":"User Data Sync","href":"/developer-guide/ecommerce-platforms/shopify/user-data-sync"},{"title":"Sync Your Product Catalog","href":"/developer-guide/ecommerce-platforms/shopify/sync-product-catalog"},{"title":"Validate Your Shopify Integration","href":"/developer-guide/ecommerce-platforms/shopify/validate-integration"},{"title":"User Profile Management with Shopify","href":"/developer-guide/ecommerce-platforms/shopify/user-profile-management-with-shopify"},{"title":"FAQs","href":"/developer-guide/ecommerce-platforms/shopify/faqs"}]},{"title":"WooCommerce","href":"/developer-guide/ecommerce-platforms/woo-commerce/woocommerce"},{"title":"Magento","href":"/developer-guide/ecommerce-platforms/magento/magento"}]},{"group":"React Native SDK","root":{"title":"MoEngage React Native SDK","href":"/developer-guide/react-native-sdk/overview"},"pages":[{"title":"Getting Started with React Native SDK","sidebarTitle":"Overview","href":"/developer-guide/react-native-sdk/overview/getting-started-with-react-native-sdk"},{"group":"SDK Integration","root":{"title":"Integrating the React Native SDK","href":"/developer-guide/react-native-sdk/sdk-integration/overview"},"pages":[{"group":"React Native","pages":[{"group":"SDK Installation","pages":[{"title":"Framework Dependency","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-installation/framework-dependency"},{"title":"Android Build Configuration","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-installation/android"},{"title":"iOS","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-installation/ios"}]},{"group":"SDK Initialization","pages":[{"group":"File Based Initialization","pages":[{"title":"File Based Initialization","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/file-based-initialization/file-based-initialization"},{"title":"Migration and Precedence","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/file-based-initialization/migration-and-precedence"}]},{"group":"Manual Initialization","pages":[{"title":"Framework Initialization","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/manual-initialization/framework-initialization"},{"title":"Android","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/manual-initialization/android"},{"title":"iOS","href":"/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/manual-initialization/ios"}]}]}]},{"group":"Expo","pages":[{"title":"Installation","href":"/developer-guide/react-native-sdk/sdk-integration/expo/installation"},{"title":"Configure the MoEngage Expo SDK","href":"/developer-guide/react-native-sdk/sdk-integration/expo/configure-the-moengage-expo-sdk"},{"title":"Initialization","href":"/developer-guide/react-native-sdk/sdk-integration/expo/initialization"}]},{"group":"Advanced","pages":[{"title":"JWT Authentication","href":"/developer-guide/react-native-sdk/sdk-integration/advanced/jwt-authentication"}]},{"title":"Limitations","href":"/developer-guide/react-native-sdk/sdk-integration/limitations"}]},{"group":"Data Tracking","root":{"title":"Data Tracking in React Native","href":"/developer-guide/react-native-sdk/data-tracking/overview"},"pages":[{"title":"Tracking User Attributes and User Identity","href":"/developer-guide/react-native-sdk/data-tracking/tracking-user-attributes-and-user-identity"},{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/react-native-sdk/data-tracking/enable-advertising-identifier-tracking"},{"title":"Install/Update","href":"/developer-guide/react-native-sdk/data-tracking/install-update"},{"title":"Setting Unique Id for SDK versions below 11.2.0","href":"/developer-guide/react-native-sdk/data-tracking/setting-unique-id-for-sdk-versions-below-1120"},{"title":"Tracking Events","href":"/developer-guide/react-native-sdk/data-tracking/tracking-events"},{"title":"Delete User From MoEngage Server","href":"/developer-guide/react-native-sdk/data-tracking/delete-user-from-moengage-server"}]},{"group":"Push","root":{"title":"Push Notifications in React Native","href":"/developer-guide/react-native-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Android Push Configuration","href":"/developer-guide/react-native-sdk/push/basic/android-push-configuration"},{"title":"Android Notification Runtime Permissions","href":"/developer-guide/react-native-sdk/push/basic/android-notification-runtime-permissions"},{"title":"iOS Push Configuration","href":"/developer-guide/react-native-sdk/push/basic/ios-push-configuration"},{"title":"Push Callback","href":"/developer-guide/react-native-sdk/push/basic/push-callback"},{"group":"Set Up iOS Notification Extensions for Rich Push and Impression Tracking","pages":[{"title":"Set Up iOS Notification Extensions for Rich Push and Impression Tracking","href":"/developer-guide/react-native-sdk/push/basic/integrating-moengage-service-and-content-extensions/set-up-ios-notification-extensions-for-rich-push-and-impression-tracking"},{"title":"Migrate To The Extension Integrator Tool","href":"/developer-guide/react-native-sdk/push/basic/integrating-moengage-service-and-content-extensions/migrating-to-the-extension-integrator-tool"}]}]},{"group":"Optional","pages":[{"title":"Location Triggered","href":"/developer-guide/react-native-sdk/push/optional/location-triggered"},{"title":"Notification Center","href":"/developer-guide/react-native-sdk/push/optional/notification-triggered"}]}]},{"title":"InApp NATIV","sidebarTitle":"In App Messages","href":"/developer-guide/react-native-sdk/in-app-messages/inapp-nativ"},{"group":"Personalize","root":{"title":"Personalize in React Native","href":"/developer-guide/react-native-sdk/personalize/overview"},"pages":[{"title":"Personalize SDK","href":"/developer-guide/react-native-sdk/personalize/personalize-sdk"},{"title":"Personalize Data Payload","href":"/developer-guide/react-native-sdk/personalize/personalize-data-payload"}]},{"title":"Recommendations","href":"/developer-guide/react-native-sdk/recommendations/recommendations"},{"group":"Cards","root":{"title":"Card Campaigns in React Native","href":"/developer-guide/react-native-sdk/cards/overview"},"pages":[{"group":"Installation","pages":[{"title":"Framework Dependency","href":"/developer-guide/react-native-sdk/cards/installation/framework-dependency"},{"title":"Android","href":"/developer-guide/react-native-sdk/cards/installation/android"},{"title":"iOS","href":"/developer-guide/react-native-sdk/cards/installation/ios"}]},{"title":"Framework Initialization","href":"/developer-guide/react-native-sdk/cards/initialization/framework-initialization"},{"title":"Self Handled Cards","href":"/developer-guide/react-native-sdk/cards/self-handled-cards"},{"title":"Cards Data Payload","href":"/developer-guide/react-native-sdk/cards/cards-data-payload"}]},{"title":"Compliance","href":"/developer-guide/react-native-sdk/compliance/compliance"},{"title":"TV Support","href":"/developer-guide/react-native-sdk/tv/tv-support"},{"title":"React Native Sample App","sidebarTitle":"Sample App","href":"/developer-guide/react-native-sdk/sample-app/react-native-sample-app"},{"title":"Migrate the MoEngage React Native SDK From CocoaPods to Swift Package Manager","sidebarTitle":"Migrate From CocoaPods to SPM","href":"/developer-guide/react-native-sdk/migration/migration-of-moengage-sdk-from-cocoapods-to-spm"},{"title":"Troubleshooting and FAQs - React Native","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/react-native-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-react"},{"title":"React Native SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/react-native-sdk/deprecated-versions/deprecated-versions"}]},{"group":"Flutter SDK","root":{"title":"MoEngage Flutter SDK","href":"/developer-guide/flutter-sdk/overview"},"pages":[{"title":"Getting Started with Flutter SDK","sidebarTitle":"Overview","href":"/developer-guide/flutter-sdk/overview/getting-started-with-flutter-sdk"},{"group":"SDK Integration","root":{"title":"Integrating the Flutter SDK","href":"/developer-guide/flutter-sdk/sdk-integration/overview"},"pages":[{"group":"SDK Installation","pages":[{"title":"Framework Dependency","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-installation/framework-dependency"},{"title":"Android","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-installation/android"},{"title":"iOS","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-installation/ios"}]},{"group":"SDK Initialization","pages":[{"group":"File Based Initialization","pages":[{"title":"File Based Initialization","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/file-based-initialization/file-based-initialization"},{"title":"Migration and Precedence","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/file-based-initialization/migration-and-precedence"}]},{"group":"Manual Initialization","pages":[{"title":"Framework Initialization","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/manual-initialization/framework-initialization"},{"title":"Android SDK Initialization","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/manual-initialization/android-sdk-initialization"},{"title":"iOS SDK Initialization","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/manual-initialization/ios-sdk-initialization"},{"title":"Web SDK Initialization","href":"/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/web-sdk-initialization"}]}]},{"group":"Advanced","pages":[{"title":"JWT Authentication","href":"/developer-guide/flutter-sdk/sdk-integration/advanced/jwt-authentication"}]},{"title":"Limitations","href":"/developer-guide/flutter-sdk/sdk-integration/limitations"}]},{"group":"Data Tracking","root":{"title":"Data Tracking in Flutter","href":"/developer-guide/flutter-sdk/data-tracking/overview"},"pages":[{"title":"Tracking User Attributes and User Identity","href":"/developer-guide/flutter-sdk/data-tracking/tracking-user-attributes-and-user-identity"},{"title":"Delete User From MoEngage Server","href":"/developer-guide/flutter-sdk/data-tracking/delete-user-from-moengage-server"},{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/flutter-sdk/data-tracking/enable-advertising-identifier-tracking"},{"title":"Install/Update Differentiation","href":"/developer-guide/flutter-sdk/data-tracking/install-update-differentiation"},{"title":"Setting Unique Id for SDK versions below 9.2.0","href":"/developer-guide/flutter-sdk/data-tracking/setting-unique-id-for-sdk-versions-below-920"},{"title":"Tracking Events","href":"/developer-guide/flutter-sdk/data-tracking/tracking-events"}]},{"group":"Push","root":{"title":"Push Notifications in Flutter","href":"/developer-guide/flutter-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Android Push Configuration","href":"/developer-guide/flutter-sdk/push/basic/android-push-configuration"},{"title":"Android Notification Runtime Permissions","href":"/developer-guide/flutter-sdk/push/basic/android-notification-runtime-permissions"},{"title":"iOS Push Configuration","href":"/developer-guide/flutter-sdk/push/basic/ios-push-configuration"},{"title":"Push Callback","href":"/developer-guide/flutter-sdk/push/basic/push-callback"},{"group":"Set Up iOS Notification Extensions for Rich Push and Impression Tracking","pages":[{"title":"Set Up iOS Notification Extensions for Rich Push and Impression Tracking","href":"/developer-guide/flutter-sdk/push/basic/integrating-moengage-service-and-content-extension-in-ios/set-up-ios-notification-extensions-for-rich-push-and-impression-tracking"},{"title":"Migrate To The Extension Integrator Tool","href":"/developer-guide/flutter-sdk/push/basic/integrating-moengage-service-and-content-extension-in-ios/migrating-to-the-extension-integrator-tool"}]}]},{"group":"Optional","pages":[{"title":"Location Triggered","href":"/developer-guide/flutter-sdk/push/optional/location-triggered"},{"title":"Notification Center","href":"/developer-guide/flutter-sdk/push/optional/notification-center"}]}]},{"title":"InApp NATIV","sidebarTitle":"In-App Messages","href":"/developer-guide/flutter-sdk/in-app-messages/inapp-nativ"},{"group":"Personalize","root":{"title":"Personalize in Flutter","href":"/developer-guide/flutter-sdk/personalize/overview"},"pages":[{"title":"Personalize SDK","href":"/developer-guide/flutter-sdk/personalize/personalize-sdk"},{"title":"Personalize Data Payload","href":"/developer-guide/flutter-sdk/personalize/personalize-data-payload"}]},{"title":"Self Handled Cards","sidebarTitle":"Cards","href":"/developer-guide/flutter-sdk/cards/self-handled-cards"},{"title":"Compliance","href":"/developer-guide/flutter-sdk/compliance/compliance"},{"title":"Migrate the MoEngage Flutter SDK From CocoaPods to Swift Package Manager","sidebarTitle":"Migrate From CocoaPods to SPM","href":"/developer-guide/flutter-sdk/migration/migration-of-moengage-sdk-from-cocoapods-to-spm"},{"title":"Troubleshooting and FAQs - Flutter","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/flutter-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-flutter"},{"title":"Flutter Sample App","sidebarTitle":"Sample App","href":"/developer-guide/flutter-sdk/sample-app/flutter-sample-app"},{"title":"Flutter SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/flutter-sdk/deprecated-versions/deprecated-versions"}]},{"group":"Cordova SDK","root":{"title":"MoEngage Cordova SDK","href":"/developer-guide/cordova-sdk/overview"},"pages":[{"group":"SDK Integration","root":{"title":"Integrating the Cordova SDK","href":"/developer-guide/cordova-sdk/sdk-integration/overview"},"pages":[{"group":"SDK Installation","pages":[{"title":"Framework Dependency","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-installation/framework-dependency"},{"title":"Android SDK Installation","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-installation/android-sdk-installation"},{"title":"iOS Installation","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-installation/ios-installation"}]},{"group":"SDK Initialization","pages":[{"title":"Framework Initialization","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-initialization/framework-initialization"},{"title":"Android SDK Initialization","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-initialization/android-sdk-initialization"},{"title":"iOS SDK Initialization","href":"/developer-guide/cordova-sdk/sdk-integration/sdk-initialization/ios-sdk-initialization"}]},{"title":"Limitations","href":"/developer-guide/cordova-sdk/sdk-integration/limitations"}]},{"group":"Data Tracking","root":{"title":"Data Tracking in Cordova","href":"/developer-guide/cordova-sdk/data-tracking/overview"},"pages":[{"title":"Delete User From MoEngage Server","href":"/developer-guide/cordova-sdk/data-tracking/delete-user-from-moengage-server"},{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/cordova-sdk/data-tracking/enable-advertising-identifier-tracking"},{"title":"Install/Update differentiation","href":"/developer-guide/cordova-sdk/data-tracking/install-update-differentiation"},{"title":"Tracking User Attributes and User Identity","href":"/developer-guide/cordova-sdk/data-tracking/tracking-user-attributes"},{"title":"Tracking Events","href":"/developer-guide/cordova-sdk/data-tracking/tracking-events"}]},{"group":"Push","root":{"title":"Push Notifications in Cordova","href":"/developer-guide/cordova-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Android Push Configuration","href":"/developer-guide/cordova-sdk/push/basic/android-push-configuration"},{"title":"Android Notification Runtime Permissions","href":"/developer-guide/cordova-sdk/push/basic/android-notification-runtime-permissions"},{"title":"iOS Push Configuration ","href":"/developer-guide/cordova-sdk/push/basic/ios-push-configuration-7xx"},{"title":"Push Callback","href":"/developer-guide/cordova-sdk/push/basic/push-callback"}]},{"group":"Optional","pages":[{"title":"Location Triggered","href":"/developer-guide/cordova-sdk/push/optional/location-triggered"}]}]},{"title":"InApp NATIV","sidebarTitle":"In App Messages","href":"/developer-guide/cordova-sdk/in-app-messages/inapp-nativ"},{"title":"Compliance","href":"/developer-guide/cordova-sdk/compliance/compliance"},{"title":"Cordova SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/cordova-sdk/deprecated-versions/deprecated-versions"},{"title":"Migrating to 4.x.x","sidebarTitle":"Migration","href":"/developer-guide/cordova-sdk/migration/migrating-to-4xx"},{"title":"Troubleshooting and FAQs - Cordova","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/cordova-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-cordova"}]},{"group":"Unity SDK","root":{"title":"MoEngage Unity SDK","href":"/developer-guide/unity-sdk/overview"},"pages":[{"group":"SDK Integration","root":{"title":"Integrating the Unity SDK","href":"/developer-guide/unity-sdk/sdk-integration/overview"},"pages":[{"title":"SDK Installation","href":"/developer-guide/unity-sdk/sdk-integration/sdk-installation/sdk-installation"},{"group":"SDK Initialization","pages":[{"title":"SDK Initialization","href":"/developer-guide/unity-sdk/sdk-integration/sdk-initialization/sdk-initialization"},{"group":"Manual Initialization","pages":[{"title":"Android","href":"/developer-guide/unity-sdk/sdk-integration/sdk-initialization/manual-initialization/android"}]},{"group":"File Based Initialization","pages":[{"title":"Android","href":"/developer-guide/unity-sdk/sdk-integration/sdk-initialization/file-based-initialization/android"},{"title":"iOS","href":"/developer-guide/unity-sdk/sdk-integration/sdk-initialization/file-based-initialization/ios"}]}]},{"title":"Limitations","href":"/developer-guide/unity-sdk/sdk-integration/limitations"}]},{"group":"Data Tracking","root":{"title":"Data Tracking in Unity","href":"/developer-guide/unity-sdk/data-tracking/overview"},"pages":[{"title":"Delete User From MoEngage Server","href":"/developer-guide/unity-sdk/data-tracking/delete-user-from-moengage-server"},{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/unity-sdk/data-tracking/enable-advertising-identifier-tracking"},{"title":"Install/Update Differentiation","href":"/developer-guide/unity-sdk/data-tracking/install-update-differentiation"},{"title":"Tracking User Attributes","href":"/developer-guide/unity-sdk/data-tracking/tracking-user-attributes"},{"title":"Tracking Events","href":"/developer-guide/unity-sdk/data-tracking/tracking-events"}]},{"group":"Push","root":{"title":"Push Notifications in Unity","href":"/developer-guide/unity-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Android Push Configuration","href":"/developer-guide/unity-sdk/push/basic/android-push-configuration"},{"title":"Android Notification Runtime Permissions","href":"/developer-guide/unity-sdk/push/basic/android-notification-runtime-permissions"},{"title":"iOS Push Configuration","href":"/developer-guide/unity-sdk/push/basic/ios-push-configuration"},{"title":"Push Callback","href":"/developer-guide/unity-sdk/push/basic/push-callback"}]},{"group":"Optional","pages":[{"title":"Configuring Push Templates","href":"/developer-guide/unity-sdk/push/optional/configuring-push-templates"},{"title":"Location Triggered","href":"/developer-guide/unity-sdk/push/optional/location-triggered"}]}]},{"title":"InApp NATIV","sidebarTitle":"In App Messages","href":"/developer-guide/unity-sdk/in-app-messages/inapp-nativ"},{"title":"Compliance","href":"/developer-guide/unity-sdk/compliance/compliance"},{"title":"Troubleshooting and FAQs - Unity","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/unity-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-unity"},{"title":"Unity SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/unity-sdk/deprecated-versions/deprecated-versions"}]},{"group":"Capacitor SDK","root":{"title":"MoEngage Capacitor SDK","href":"/developer-guide/capacitor-sdk/overview"},"pages":[{"group":"SDK Integration","root":{"title":"Integrating the Capacitor SDK","href":"/developer-guide/capacitor-sdk/sdk-integration/overview"},"pages":[{"group":"Basic","pages":[{"group":"SDK Installation","pages":[{"title":"Framework Dependency","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-installation/framework-dependency"},{"title":"Android SDK Installation","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-installation/android-sdk-installation"},{"title":"iOS SDK Installation","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-installation/ios-sdk-installation"}]},{"group":"SDK Initialization","pages":[{"group":"File Based Initialization","pages":[{"title":"File Based Initialization","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-initialization/file-based-initlialization/file-based-initialization"},{"title":"Migration And Precedence","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-initialization/file-based-initlialization/migration-and-precedence"}]},{"title":"Framework Initialization","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-initialization/framework-initialization"},{"title":"Android SDK Initialization","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-initialization/android-sdk-initialization"},{"title":"iOS SDK Initialization","href":"/developer-guide/capacitor-sdk/sdk-integration/basic/sdk-initialization/ios-sdk-initialization"}]}]},{"group":"Advanced","pages":[{"title":"JWT Authentication","href":"/developer-guide/capacitor-sdk/sdk-integration/advanced/jwt-authentication"}]},{"title":"Limitations","href":"/developer-guide/capacitor-sdk/sdk-integration/limitations"}]},{"group":"Data Tracking","root":{"title":"Data Tracking in Capacitor","href":"/developer-guide/capacitor-sdk/data-tracking/overview"},"pages":[{"title":"Delete User From MoEngage Server","href":"/developer-guide/capacitor-sdk/data-tracking/delete-user-from-moengage-server"},{"title":"Enable Advertising Identifier Tracking","href":"/developer-guide/capacitor-sdk/data-tracking/enable-advertising-identifier-tracking"},{"title":"Install/Update Differentiation","href":"/developer-guide/capacitor-sdk/data-tracking/install-update-differentiation"},{"title":"Tracking User Attributes and User Identity","href":"/developer-guide/capacitor-sdk/data-tracking/tracking-user-attributes"},{"title":"Tracking Events","href":"/developer-guide/capacitor-sdk/data-tracking/tracking-events"},{"title":"Setting Unique ID for SDK versions below 6.0.0","href":"/developer-guide/capacitor-sdk/data-tracking/setting-unique-id-for-sdk-versions-below-6.0.0"}]},{"group":"Push","root":{"title":"Push Notifications in Capacitor","href":"/developer-guide/capacitor-sdk/push/overview"},"pages":[{"group":"Basic","pages":[{"title":"Android Notification Runtime Permissions","href":"/developer-guide/capacitor-sdk/push/basic/android-notification-runtime-permissions"},{"title":"Android Push Configuration","href":"/developer-guide/capacitor-sdk/push/basic/android-push-configuration"},{"title":"iOS Push Configuration","href":"/developer-guide/capacitor-sdk/push/basic/ios-push-configuration"},{"title":"Push Callback","href":"/developer-guide/capacitor-sdk/push/basic/push-callback"}]},{"group":"Optional","pages":[{"title":"Location Triggered","href":"/developer-guide/capacitor-sdk/push/optional/location-triggered"}]}]},{"title":"InApp NATIV","sidebarTitle":"In-App Messages","href":"/developer-guide/capacitor-sdk/in-app-messages/inapp-nativ"},{"title":"Compliance","href":"/developer-guide/capacitor-sdk/compliance/compliance"},{"title":"Migrate the MoEngage Capacitor SDK From CocoaPods to Swift Package Manager","sidebarTitle":"Migrate From CocoaPods to SPM","href":"/developer-guide/capacitor-sdk/migration/migration-of-moengage-sdk-from-cocoapods-to-spm"},{"title":"Troubleshooting and FAQs - Capacitor","sidebarTitle":"Troubleshooting and FAQs","href":"/developer-guide/capacitor-sdk/troubleshooting-and-faqs/troubleshooting-and-faqs-capacitor"},{"title":"Capacitor Sample App","sidebarTitle":"Sample App","href":"/developer-guide/capacitor-sdk/sample-app/capacitor-sample-app"},{"title":"Capacitor SDK Deprecated Versions","sidebarTitle":"Deprecated Versions","href":"/developer-guide/capacitor-sdk/deprecated-versions/deprecated-versions"}]},{"title":"SDK Installation","sidebarTitle":"Ionic SDK","href":"/developer-guide/ionic-sdk/sdk-integration/sdk-installation"},{"title":"TV and OTT Integrations","href":"/developer-guide/tv-and-ott-integrations/getting-started/tv-and-ott-integrations"},{"group":"SDK Lifecycle \u0026 Policies","root":{"title":"SDK Lifecycle and Policies","href":"/developer-guide/sdk-lifecycle-and-policies/overview"},"pages":[{"title":"SDK Deprecation Policy","href":"/developer-guide/sdk-lifecycle-and-policies/sdk-deprecation-policy"},{"title":"Deprecation for Older Platform Versions","href":"/developer-guide/sdk-lifecycle-and-policies/deprecation-for-older-platform-versions"}]},{"group":"Components for SDK","root":{"title":"Components for SDK","href":"/developer-guide/components-for-sdk/overview"},"pages":[{"title":"Real-time Uninstall Tracking","href":"/developer-guide/components-for-sdk/tracking/real-time-uninstall-tracking"},{"group":"Javascript Bridge","root":{"title":"JavaScript Bridge","href":"/developer-guide/components-for-sdk/javascript-bridge/overview"},"pages":[{"title":"JavaScript Bridge for HTML In-Apps","href":"/developer-guide/components-for-sdk/javascript-bridge/javascript-bridge-for-html-in-apps"},{"title":"JavaScript Bridge for On-Site Messaging and Landing Pages","href":"/developer-guide/components-for-sdk/javascript-bridge/javascript-bridge-for-on-site-messaging-and-landing-pages"}]},{"title":"Android Push Configuration For Hybrid Applications","sidebarTitle":"Push Notification","href":"/developer-guide/components-for-sdk/push-notification/android-push-configuration-for-hybrid-applications"}]},{"title":"Getting FCM Server Key","sidebarTitle":"Partner Integrations","href":"/developer-guide/partner-integrations/firebase/getting-fcm-server-key"}]}]},{"tab":"API Guide","pages":[{"title":"API Guide","href":"/api/introduction"}]},{"tab":"AI \u0026 Intelligence","pages":[{"title":"AI \u0026 Intelligence","href":"/user-guide/ai-and-intelligence/overview"}]},{"tab":"Partner Integrations","pages":[{"title":"Partner Integrations","href":"/partner-guide/introduction"}]},{"tab":"Use Cases","pages":[{"title":"Use Cases","href":"/use-cases/introduction"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/subscribe-to-release-notes"}]}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/developer-guide/web-sdk/web-push/configure-self-handled-opt-in"}]}]},"basePath":"","title":"Configure Self-Handled Opt-In - MoEngage","buildId":"dpl_AHzSCQPRq6mP9FZXEa5AbDZTffie","deploymentId":"dpl_AHzSCQPRq6mP9FZXEa5AbDZTffie","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BrVVh3El.js","lightbox-handle-r17bVUz3.js"]}