Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.
Important: Please ensure your CMP configuration includes new Vendor ID 1469 for 1st Party data tracking. Additionally, include Vendor ID 301 if cookie sync is enabled. Learn more
Integrating a Consent Management Platform (CMP) or handling user consent is crucial for compliance with privacy regulations like GDPR, CCPA, and other data protection laws. The Zeotap React Native SDK offers flexibility in how you manage and communicate user consent choices across both iOS and Android platforms.
The primary goal is to ensure that the Zeotap SDK only collects and processes user data when you have obtained the necessary consent from the user. The SDK needs to know whether consent has been given for specific purposes (like analytics, personalization, advertising) before it activates its tracking and data collection features.
1. No Explicit Consent Management (Default Behavior)
How it works: You initialize the SDK without any specific consent configuration (use_consent: false). The SDK assumes consent is granted and starts tracking immediately upon initialization.
When to use: Only suitable if your app does not fall under regulations requiring explicit user consent (e.g., purely informational apps with no user tracking, or apps operating exclusively outside jurisdictions like the EU). This is generally not recommended for most modern mobile applications.
Pros: Simplest setup with minimal configuration.
Cons: High risk of non-compliance with privacy regulations like GDPR/CCPA. Lack of user control over data collection.
2. Using a TCF v2.2 Compatible Consent Management Platform (CMP)
How it works: You integrate a third-party CMP (like OneTrust, TrustArc, Didomi, Sourcepoint, etc.) that adheres to the IAB Transparency and Consent Framework (TCF) v2.2 standard. The Zeotap SDK automatically detects the TCF data stored by the CMP, reads the user’s consent choices, and acts accordingly.
When to use:
You operate in regions covered by GDPR or similar regulations requiring granular consent.
You use other advertising or marketing technologies that also rely on the TCF standard.
You want a robust, standardized way to manage consent across multiple vendors.
Implementation:
Implement your chosen TCF v2.2 compliant CMP in your React Native app.
Configure the Zeotap SDK with use_consent: true and check_for_cmp: true.
Optionally specify purposes_for_tracking to define which TCF purposes are required for tracking.
The SDK will automatically read TCF consent data stored by the CMP. No specific setConsent call is usually needed unless you have custom requirements.
Pros: Industry standard, widely supported, handles complex consent strings, integrates with multiple vendors.
Cons: Requires integrating and potentially paying for a third-party CMP.
3. Using the setConsent API (Manual/Custom Implementation)
How it works: You implement your own consent mechanism (e.g., a custom consent dialog or integration with a non-TCF CMP). When a user provides or updates their consent preferences, you explicitly call the setConsent() method, passing the user’s choices.
When to use:
You have a custom-built consent UI or system.
You are using a CMP that doesn’t support TCF v2.2 but provides its own API to access consent status.
You need fine-grained control over when and how consent information is passed to the Zeotap SDK.
You want to implement a simple opt-in/opt-out mechanism.
Implementation:
Build or integrate your consent UI/mechanism.
Configure the SDK with use_consent: true and check_for_cmp: false.
When the user makes a choice (e.g., taps “Accept All”, “Reject All”, or customizes settings), retrieve the consent status.
Call setConsent() with the appropriate consent data.
Pros: Flexible, allows integration with any system, full control over user experience.
Cons: Requires more development effort to build and maintain the consent logic and UI. You are responsible for correctly interpreting and translating consent signals.
// Custom consent managementconst options = { android_write_key: "YOUR_ANDROID_WRITE_KEY", ios_write_key: "YOUR_IOS_WRITE_KEY", use_consent: true, check_for_cmp: false};initialiseZeoCollect(options);// Later, when user provides consentimport { setConsent } from 'zeo-collect';setConsent({ track: true, identify: true});// Or when user denies consentsetConsent({ track: false, identify: false});
Timing: Ensure the consent mechanism completes user input before the Zeotap SDK sends tracking calls. The SDK can queue events until consent is determined.
Updates: Your implementation should handle changes in user consent preferences over time. If a user revokes consent, subsequent tracking calls will be blocked. Both TCF CMPs and the setConsent method support updating consent status.
Region-Specific Logic: You might need different consent mechanisms or defaults depending on the user’s geographic location (e.g., GDPR for EU users). Your app logic needs to handle this.
Platform Consistency: Ensure consent behavior is consistent across iOS and Android platforms in your React Native app.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Zeotap docs","colors":{"primary":"#174efb","light":"#174efb","dark":"#174efb"},"logo":{"light":"https://mintcdn.com/zeotap/pbiFRnrYXBNUsbba/logo/light.svg?fit=max\u0026auto=format\u0026n=pbiFRnrYXBNUsbba\u0026q=85\u0026s=c566b5af653699d3bcf4d8efb4f678d1","dark":"https://mintcdn.com/zeotap/pbiFRnrYXBNUsbba/logo/dark.svg?fit=max\u0026auto=format\u0026n=pbiFRnrYXBNUsbba\u0026q=85\u0026s=ae6e1d27d3d2e409f9e86c089b64e224","href":"https://zeotap.com/"},"favicon":"https://mintcdn.com/zeotap/Tg-jPUQrcrgXsHVA/favicon.svg?fit=max\u0026auto=format\u0026n=Tg-jPUQrcrgXsHVA\u0026q=85\u0026s=f5b2731a91bf6cad0fe370680ebae4fe","appearance":{"default":"light"},"background":{"decoration":"gradient","color":{"light":"#eaf0fe"}},"navbar":{"links":[{"href":"https://login.zeotap.com/","label":"Login"}],"primary":{"type":"button","label":"Book a Demo","href":"https://zeotap.com/demo/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/zeotap"}},"seo":{"indexing":"all"},"integrations":{"ga4":{"measurementId":"G-XXXXXXXXXX"}},"banner":{"content":"New: [Support \u0026 Diagnostics](/articles/support-diagnostics-customer/support-diagnostics) troubleshooting guides are now live.","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zeotap","hasAudioNarration":false,"actualSubdomain":"zeotap","customDomains":["docs.zeotap.com"],"gitSource":{"type":"github","owner":"zeotap","repo":"zeotap-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af181b6c6b8d7b676811082","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Products","count":354},{"language":"default","tag":"Integrate","count":215},{"language":"default","tag":"SDKs","count":157},{"language":"default","tag":"Destinations","count":150},{"language":"default","tag":"Batch Integrations","count":97},{"language":"default","tag":"Sources","count":65},{"language":"default","tag":"Unify","count":65},{"language":"default","tag":"Source Integrations (Batch+Real-Time)","count":54},{"language":"default","tag":"Release Notes","count":54},{"language":"default","tag":"Catalogue","count":48}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"articles/sdks/react-native/consent/consent-strategy","slug":"/articles/sdks/react-native/consent/consent-strategy","pageMetadata":{"title":"Choosing a Consent Strategy","description":"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.","href":"/articles/sdks/react-native/consent/consent-strategy"},"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: \"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\"\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`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important:`}),` Please ensure your CMP configuration includes new `,_jsx(_components.strong,{children:`Vendor ID 1469`}),` for 1st Party data tracking. Additionally, include `,_jsx(_components.strong,{children:`Vendor ID 301`}),` if cookie sync is enabled. `,_jsx(_components.a,{href:`/articles/sdks/web-js/configurations/consent-options#shouldcheckzeotapvendorconsent`,children:`Learn more`})]})}),`\n`,_jsx(_components.p,{children:`Integrating a Consent Management Platform (CMP) or handling user consent is crucial for compliance with privacy regulations like GDPR, CCPA, and other data protection laws. The Zeotap React Native SDK offers flexibility in how you manage and communicate user consent choices across both iOS and Android platforms.`}),`\n`,_jsx(Heading,{level:`2`,id:`understanding-the-core-concept`,children:`Understanding the Core Concept`}),`\n`,_jsx(_components.p,{children:`The primary goal is to ensure that the Zeotap SDK only collects and processes user data when you have obtained the necessary consent from the user. The SDK needs to know whether consent has been given for specific purposes (like analytics, personalization, advertising) before it activates its tracking and data collection features.`}),`\n`,_jsx(Heading,{level:`2`,id:`available-strategies`,children:`Available Strategies`}),`\n`,_jsx(Heading,{level:`3`,id:`1-no-explicit-consent-management-default-behavior`,children:`1. No Explicit Consent Management (Default Behavior)`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`How it works:`}),` You initialize the SDK without any specific consent configuration (`,_jsx(_components.code,{children:`use_consent: false`}),`). The SDK assumes consent is granted and starts tracking immediately upon initialization.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`When to use:`}),` Only suitable if your app does not fall under regulations requiring explicit user consent (e.g., purely informational apps with no user tracking, or apps operating exclusively outside jurisdictions like the EU). `,_jsx(_components.strong,{children:`This is generally not recommended for most modern mobile applications.`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pros:`}),` Simplest setup with minimal configuration.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cons:`}),` High risk of non-compliance with privacy regulations like GDPR/CCPA. Lack of user control over data collection.`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,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:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Default behavior - no consent management`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` android_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ANDROID_WRITE_KEY\"`}),_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:` ios_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_IOS_WRITE_KEY\"`}),_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:` use_consent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Default`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`initialiseZeoCollect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`2-using-a-tcf-v2-2-compatible-consent-management-platform-cmp`,children:`2. Using a TCF v2.2 Compatible Consent Management Platform (CMP)`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`How it works:`}),` You integrate a third-party CMP (like OneTrust, TrustArc, Didomi, Sourcepoint, etc.) that adheres to the IAB Transparency and Consent Framework (TCF) v2.2 standard. The Zeotap SDK automatically detects the TCF data stored by the CMP, reads the user’s consent choices, and acts accordingly.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`When to use:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You operate in regions covered by GDPR or similar regulations requiring granular consent.`}),`\n`,_jsx(_components.li,{children:`You use other advertising or marketing technologies that also rely on the TCF standard.`}),`\n`,_jsx(_components.li,{children:`You want a robust, standardized way to manage consent across multiple vendors.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Implementation:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Implement your chosen TCF v2.2 compliant CMP in your React Native app.`}),`\n`,_jsxs(_components.li,{children:[`Configure the Zeotap SDK with `,_jsx(_components.code,{children:`use_consent: true`}),` and `,_jsx(_components.code,{children:`check_for_cmp: true`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Optionally specify `,_jsx(_components.code,{children:`purposes_for_tracking`}),` to define which TCF purposes are required for tracking.`]}),`\n`,_jsxs(_components.li,{children:[`The SDK will automatically read TCF consent data stored by the CMP. No specific `,_jsx(_components.code,{children:`setConsent`}),` call is usually needed unless you have custom requirements.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pros:`}),` Industry standard, widely supported, handles complex consent strings, integrates with multiple vendors.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cons:`}),` Requires integrating and potentially paying for a third-party CMP.`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,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:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// TCF CMP integration`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` android_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ANDROID_WRITE_KEY\"`}),_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:` ios_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_IOS_WRITE_KEY\"`}),_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:` use_consent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` check_for_cmp:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` purposes_for_tracking:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`4`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Store/access info, personalization, content selection`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` check_zeotap_vendor_consent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Optional: also check vendor consent`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`initialiseZeoCollect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`3`,id:`3-using-the-setconsent-api-manual/custom-implementation`,children:[`3. Using the `,_jsx(_components.code,{children:`setConsent`}),` API (Manual/Custom Implementation)`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`How it works:`}),` You implement your own consent mechanism (e.g., a custom consent dialog or integration with a non-TCF CMP). When a user provides or updates their consent preferences, you explicitly call the `,_jsx(_components.code,{children:`setConsent()`}),` method, passing the user’s choices.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`When to use:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You have a custom-built consent UI or system.`}),`\n`,_jsx(_components.li,{children:`You are using a CMP that doesn’t support TCF v2.2 but provides its own API to access consent status.`}),`\n`,_jsx(_components.li,{children:`You need fine-grained control over when and how consent information is passed to the Zeotap SDK.`}),`\n`,_jsx(_components.li,{children:`You want to implement a simple opt-in/opt-out mechanism.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Implementation:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Build or integrate your consent UI/mechanism.`}),`\n`,_jsxs(_components.li,{children:[`Configure the SDK with `,_jsx(_components.code,{children:`use_consent: true`}),` and `,_jsx(_components.code,{children:`check_for_cmp: false`}),`.`]}),`\n`,_jsx(_components.li,{children:`When the user makes a choice (e.g., taps “Accept All”, “Reject All”, or customizes settings), retrieve the consent status.`}),`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.code,{children:`setConsent()`}),` with the appropriate consent data.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pros:`}),` Flexible, allows integration with any system, full control over user experience.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cons:`}),` Requires more development effort to build and maintain the consent logic and UI. You are responsible for correctly interpreting and translating consent signals.`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,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:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Custom consent management`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` android_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ANDROID_WRITE_KEY\"`}),_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:` ios_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_IOS_WRITE_KEY\"`}),_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:` use_consent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` check_for_cmp:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`initialiseZeoCollect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Later, when user provides consent`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`setConsent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'zeo-collect'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setConsent`}),_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:` track:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` identify:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Or when user denies consent`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setConsent`}),_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:` track:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_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:` identify:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`key-considerations`,children:`Key Considerations`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Timing:`}),` Ensure the consent mechanism completes user input `,_jsx(_components.em,{children:`before`}),` the Zeotap SDK sends tracking calls. The SDK can queue events until consent is determined.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Updates:`}),` Your implementation should handle changes in user consent preferences over time. If a user revokes consent, subsequent tracking calls will be blocked. Both TCF CMPs and the `,_jsx(_components.code,{children:`setConsent`}),` method support updating consent status.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Region-Specific Logic:`}),` You might need different consent mechanisms or defaults depending on the user’s geographic location (e.g., GDPR for EU users). Your app logic needs to handle this.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Platform Consistency:`}),` Ensure consent behavior is consistent across iOS and Android platforms in your React Native app.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`configuration-examples`,children:`Configuration Examples`}),`\n`,_jsx(Heading,{level:`3`,id:`basic-opt-out-implementation`,children:`Basic Opt-Out Implementation`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,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:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Simple opt-out mechanism`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` android_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ANDROID_WRITE_KEY\"`}),_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:` ios_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_IOS_WRITE_KEY\"`}),_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:` opt_out:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Allow tracking by default`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// If user opts out later, reinitialize with opt_out: true`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`custom-consent-with-brand-permissions`,children:`Custom Consent with Brand Permissions`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,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:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Custom consent with additional brand consents`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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:` android_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ANDROID_WRITE_KEY\"`}),_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:` ios_write_key:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_IOS_WRITE_KEY\"`}),_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:` use_consent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` check_for_cmp:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`initialiseZeoCollect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// When user grants consent`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setConsent`}),_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:` track:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` identify:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` newsletterOptIn:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_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:` personalizationConsent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_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:` marketingConsent:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`related-documentation`,children:`Related Documentation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/articles/sdks/react-native/configurations/overview`,children:`Consent Configuration Options`}),` - Detailed configuration options for consent management`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/articles/sdks/react-native/api-reference/set-consent`,children:`Set Consent API`}),` - API reference for managing user consent`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/articles/sdks/react-native/configurations/overview`,children:`SDK Configuration Guide`}),` - General SDK configuration guide`]}),`\n`]})]})}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":"Choosing a Consent Strategy","description":"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.","href":"/articles/sdks/react-native/consent/consent-strategy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Understanding the Core Concept","slug":"understanding-the-core-concept","depth":2,"children":[]},{"title":"Available Strategies","slug":"available-strategies","depth":2,"children":[{"title":"1. No Explicit Consent Management (Default Behavior)","slug":"1-no-explicit-consent-management-default-behavior","depth":3,"children":[]},{"title":"2. Using a TCF v2.2 Compatible Consent Management Platform (CMP)","slug":"2-using-a-tcf-v2-2-compatible-consent-management-platform-cmp","depth":3,"children":[]},{"title":"3. Using the setConsent API (Manual/Custom Implementation)","slug":"3-using-the-setconsent-api-manual/custom-implementation","depth":3,"children":[]}]},{"title":"Key Considerations","slug":"key-considerations","depth":2,"children":[]},{"title":"Configuration Examples","slug":"configuration-examples","depth":2,"children":[{"title":"Basic Opt-Out Implementation","slug":"basic-opt-out-implementation","depth":3,"children":[]},{"title":"Custom Consent with Brand Permissions","slug":"custom-consent-with-brand-permissions","depth":3,"children":[]}]},{"title":"Related Documentation","slug":"related-documentation","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/zeotap/8d1f66bf8eed64a4/scripts/convert-to-mdx.js"],"subdomain":"zeotap","siteName":"Zeotap docs","title":"Choosing a Consent Strategy - Zeotap docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-25T08:21:58.491Z","gitLastModified":"2026-06-25T08:20:38.000Z","originalFileLocation":"articles/sdks/react-native/consent/consent-strategy.mdx"},"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=\"light\"}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=\"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zeotap docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_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=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Choosing a Consent Strategy - Zeotap docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zeotap docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zeotap.mintlify.site/_mintlify/api/og/v2?division=Consent+Resolution\u0026amp;title=Choosing+a+Consent+Strategy\u0026amp;description=Understand+the+different+ways+to+manage+user+consent+with+the+Zeotap+React+Native+SDK+and+choose+the+best+approach+for+your+needs.\u0026amp;theme=860bb9e6ef8e2213f794d7e2\u0026amp;signature=da0417529cd1ba78d7a30db4e3bc0b03dc7b37b7f8186749a991e8ab5d52f43f\">\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=\"Choosing a Consent Strategy - Zeotap docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zeotap.mintlify.site/_mintlify/api/og/v2?division=Consent+Resolution\u0026amp;title=Choosing+a+Consent+Strategy\u0026amp;description=Understand+the+different+ways+to+manage+user+consent+with+the+Zeotap+React+Native+SDK+and+choose+the+best+approach+for+your+needs.\u0026amp;theme=860bb9e6ef8e2213f794d7e2\u0026amp;signature=da0417529cd1ba78d7a30db4e3bc0b03dc7b37b7f8186749a991e8ab5d52f43f\">\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=\"/mintlify-assets/_mintlify/favicons/zeotap/dSUuokAmJ7V-SYpL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zeotap docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#174efb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/articles/sdks/react-native/consent/consent-strategy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.zeotap.com/#organization\",\"name\":\"Zeotap docs\",\"url\":\"https://docs.zeotap.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zeotap/pbiFRnrYXBNUsbba/logo/light.svg?fit=max\u0026auto=format\u0026n=pbiFRnrYXBNUsbba\u0026q=85\u0026s=c566b5af653699d3bcf4d8efb4f678d1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.zeotap.com#website\",\"name\":\"Zeotap docs\",\"url\":\"https://docs.zeotap.com\",\"publisher\":{\"@id\":\"https://docs.zeotap.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy#webpage\",\"url\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy\",\"name\":\"Choosing a Consent Strategy\",\"description\":\"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\",\"dateModified\":\"2026-06-25T08:20:38.000Z\",\"isPartOf\":{\"@id\":\"https://docs.zeotap.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"React Native SDK\",\"item\":\"https://docs.zeotap.com/articles/sdks/react-native/intro\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Choosing a Consent Strategy\",\"item\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy#article\",\"headline\":\"Choosing a Consent Strategy\",\"name\":\"Choosing a Consent Strategy\",\"description\":\"Understand the different ways to manage user consent with the Zeotap React Native SDK and choose the best approach for your needs.\",\"url\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zeotap.com/articles/sdks/react-native/consent/consent-strategy#webpage\"},\"dateModified\":\"2026-06-25T08:20:38.000Z\",\"publisher\":{\"@id\":\"https://docs.zeotap.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.zeotap.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zeotap docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Zeotap docs","nav":{"global":{},"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"Products","icon":"grid-2","pages":[{"title":"Products","href":"/articles/integrate-customer/integrate"}]},{"tab":"SDKs","icon":"code","groups":[{"group":"Overview","icon":"compass","pages":[{"title":"Zeotap SDKs","href":"/articles/sdks/overview"}]},{"group":"Web JavaScript SDK","icon":"browser","pages":[{"title":"Introduction to Zeotap SDK","href":"/articles/sdks/web-js/intro"},{"title":"Quick Start Guide","href":"/articles/sdks/web-js/quick-start"},{"group":"Configurations","icon":"sliders","pages":[{"title":"Configurations","href":"/articles/sdks/web-js/configurations/overview"},{"title":"Write Key","href":"/articles/sdks/web-js/configurations/write-key"},{"title":"PII Hashing Configuration","href":"/articles/sdks/web-js/configurations/hashing"},{"title":"Consent Configuration Options","href":"/articles/sdks/web-js/configurations/consent-options"},{"title":"persistenceInCookieStorage","href":"/articles/sdks/web-js/configurations/persistence-in-cookie-storage"},{"title":"ID5 Integration","href":"/articles/sdks/web-js/configurations/id5"},{"title":"allowCookieSync","href":"/articles/sdks/web-js/configurations/allow-cookie-sync"},{"title":"Consent Based cookie syncing","href":"/articles/sdks/web-js/configurations/partner-consent-key-map"}]},{"group":"Guides \u0026 References","icon":"code","pages":[{"title":"Tracking User Identities","href":"/articles/sdks/web-js/api-reference/set-user-identities"},{"title":"Tracking Page Views","href":"/articles/sdks/web-js/api-reference/set-page-properties"},{"title":"Tracking User Actions","href":"/articles/sdks/web-js/api-reference/set-event-properties"},{"title":"Setting User Properties","href":"/articles/sdks/web-js/api-reference/set-user-properties"},{"title":"Tracking User Consent","href":"/articles/sdks/web-js/api-reference/set-consent"},{"title":"Logout communication","href":"/articles/sdks/web-js/api-reference/unset-user-identities"}]},{"title":"Interact SDK","href":"/articles/sdks/web-js/interact"},{"group":"Consent Resolution","icon":"shield-check","pages":[{"title":"Choosing a Consent Strategy","href":"/articles/sdks/web-js/consent/consent-strategy"},{"title":"Default Behavior (No Explicit Consent Management)","href":"/articles/sdks/web-js/consent/default"},{"title":"TCF v2.x / GDPR Compliance","href":"/articles/sdks/web-js/consent/gdpr"},{"title":"Custom Consent Management","href":"/articles/sdks/web-js/consent/custom-consent"}]},{"title":"Examples","href":"/articles/sdks/web-js/examples"},{"group":"FAQ","icon":"circle-question","pages":[{"title":"How to send cellno","href":"/articles/sdks/web-js/faq/how-to-send-cellno"},{"title":"All about cookie syncing","href":"/articles/sdks/web-js/faq/cookie-sync"}]},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Release Notes","href":"/articles/sdks/web-js/release-notes/overview"},{"title":"Version 4.4.4","href":"/articles/sdks/web-js/release-notes/v4.4.4"}]}]},{"group":"Google Tag Manager","icon":"google","pages":[{"title":"Introduction to Zeotap GTM Tag","href":"/articles/sdks/gtm/intro"},{"group":"Setup Guide","icon":"list-check","pages":[{"title":"Step 1 - Importing Zeotap Tag template via GTM Gallery","href":"/articles/sdks/gtm/setup-guide/import-template-to-gtm"},{"title":"Step 2 - Adding the Zeotap Collect Tag","href":"/articles/sdks/gtm/setup-guide/add-tag-to-gtm"},{"group":"Step 3 - Configuration","icon":"sliders","pages":[{"title":"Tag Configuration Overview","href":"/articles/sdks/gtm/setup-guide/configuration/overview"},{"title":"1. Initialization Options","href":"/articles/sdks/gtm/setup-guide/configuration/initialisation"},{"title":"2. Tracking Page Views and Events","href":"/articles/sdks/gtm/setup-guide/configuration/tracking"},{"title":"3. Login and Identity Settings","href":"/articles/sdks/gtm/setup-guide/configuration/login"},{"title":"4. Google Analytics Configuration","href":"/articles/sdks/gtm/setup-guide/configuration/google-analytics"},{"title":"5. ID5 Integration","href":"/articles/sdks/gtm/setup-guide/configuration/id5"}]},{"title":"Step 4 - Set Up the Trigger","href":"/articles/sdks/gtm/setup-guide/triggers"},{"title":"Step 5 - Validate the Configured Collect Tag","href":"/articles/sdks/gtm/setup-guide/validation"}]}]},{"group":"Adobe Launch","icon":"rocket","pages":[{"title":"Adobe Launch Integration Overview","href":"/articles/sdks/adobe-launch/intro"},{"title":"Installing the Zeotap Collect Extension","href":"/articles/sdks/adobe-launch/installation"},{"title":"Configuring the Zeotap Collect Extension","href":"/articles/sdks/adobe-launch/configure"},{"group":"Setting up Actions","icon":"bolt","pages":[{"title":"Setting Up Actions","href":"/articles/sdks/adobe-launch/actions/overview"},{"title":"Track Event","href":"/articles/sdks/adobe-launch/actions/track-events"},{"title":"Sync User Identity","href":"/articles/sdks/adobe-launch/actions/sync-user-identity"},{"title":"Set Custom Consent","href":"/articles/sdks/adobe-launch/actions/set-custom-consent"}]}]},{"group":"iOS SDK","icon":"apple","pages":[{"title":"Introduction to Zeotap Collect iOS SDK","href":"/articles/sdks/ios/intro"},{"title":"Quick Start Guide","href":"/articles/sdks/ios/quick-start"},{"group":"Configurations","icon":"sliders","pages":[{"title":"Configurations","href":"/articles/sdks/ios/configurations/overview"},{"title":"Write Key","href":"/articles/sdks/ios/configurations/write-key"},{"title":"PII Hashing Configuration","href":"/articles/sdks/ios/configurations/hashing"},{"title":"Consent Configuration Options","href":"/articles/sdks/ios/configurations/consent-options"}]},{"group":"Guides \u0026 References","icon":"code","pages":[{"title":"Track User Identities","href":"/articles/sdks/ios/api-reference/set-user-identities"},{"title":"Track Page View Events","href":"/articles/sdks/ios/api-reference/set-page-properties"},{"title":"Track User Events","href":"/articles/sdks/ios/api-reference/track"},{"title":"Setting User Properties","href":"/articles/sdks/ios/api-reference/set-user-properties"},{"title":"Track User Consent","href":"/articles/sdks/ios/api-reference/set-consent"},{"title":"Pause Collection","href":"/articles/sdks/ios/api-reference/pause-collection"},{"title":"Resume Collection","href":"/articles/sdks/ios/api-reference/resume-collection"},{"title":"Remove User Identities","href":"/articles/sdks/ios/api-reference/unset-user-identities"},{"title":"Collect Advertising ID (IDFA)","href":"/articles/sdks/ios/api-reference/collect-advertising-id"}]},{"group":"Consent Resolution","icon":"shield-check","pages":[{"title":"Choosing a Consent Strategy","href":"/articles/sdks/ios/consent/consent-strategy"},{"title":"Default Behavior (No Explicit Consent Management)","href":"/articles/sdks/ios/consent/default"},{"title":"TCF v2.x / GDPR Compliance","href":"/articles/sdks/ios/consent/gdpr"},{"title":"Custom Consent Management","href":"/articles/sdks/ios/consent/custom-consent"}]},{"title":"Implementation Examples","href":"/articles/sdks/ios/examples"},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Release Notes","href":"/articles/sdks/ios/release-notes/overview"},{"title":"Version 1.3.10","href":"/articles/sdks/ios/release-notes/v1.3.10"},{"title":"Version 1.3.9","href":"/articles/sdks/ios/release-notes/v1.3.9"},{"title":"Version 1.3.8","href":"/articles/sdks/ios/release-notes/v1.3.8"},{"title":"Version 1.3.7","href":"/articles/sdks/ios/release-notes/v1.3.7"},{"title":"Version 1.3.6","href":"/articles/sdks/ios/release-notes/v1.3.6"},{"title":"Version 1.3.4","href":"/articles/sdks/ios/release-notes/v1.3.4"},{"title":"Version 1.3.3","href":"/articles/sdks/ios/release-notes/v1.3.3"},{"title":"Version 1.3.2","href":"/articles/sdks/ios/release-notes/v1.3.2"},{"title":"Version 1.3.0","href":"/articles/sdks/ios/release-notes/v1.3.0"},{"title":"Version 1.2.0","href":"/articles/sdks/ios/release-notes/v1.2.0"},{"title":"Version 1.0.1","href":"/articles/sdks/ios/release-notes/v1.0.1"},{"title":"Version 1.0.0","href":"/articles/sdks/ios/release-notes/v1.0.0"}]}]},{"group":"Android SDK","icon":"android","pages":[{"title":"Introduction to Zeotap Collect Android SDK","href":"/articles/sdks/android/intro"},{"title":"Quick Start Guide","href":"/articles/sdks/android/quick-start"},{"group":"Configurations","icon":"sliders","pages":[{"title":"Configurations","href":"/articles/sdks/android/configurations/overview"},{"title":"Write Key","href":"/articles/sdks/android/configurations/write-key"},{"title":"PII Hashing Configuration","href":"/articles/sdks/android/configurations/hashing"},{"title":"Consent Configuration Options","href":"/articles/sdks/android/configurations/consent-options"}]},{"group":"API Reference","icon":"code","pages":[{"title":"Track User Identities","href":"/articles/sdks/android/api-reference/set-user-identities"},{"title":"Track Page View Events","href":"/articles/sdks/android/api-reference/set-page-properties"},{"title":"Track Events","href":"/articles/sdks/android/api-reference/set-event-properties"},{"title":"Track Instant Event","href":"/articles/sdks/android/api-reference/set-instant-event-properties"},{"title":"Track User Properties","href":"/articles/sdks/android/api-reference/set-user-properties"},{"title":"Track User Consent","href":"/articles/sdks/android/api-reference/set-consent"},{"title":"Remove User Identities","href":"/articles/sdks/android/api-reference/unset-user-identities"},{"title":"Pause Collection","href":"/articles/sdks/android/api-reference/pause-collection"},{"title":"Resume Collection","href":"/articles/sdks/android/api-reference/resume-collection"}]},{"group":"Consent Resolution","icon":"shield-check","pages":[{"title":"Choosing a Consent Strategy","href":"/articles/sdks/android/consent/consent-strategy"},{"title":"Default Behavior (No Explicit Consent Management)","href":"/articles/sdks/android/consent/default"},{"title":"TCF v2.x / GDPR Compliance","href":"/articles/sdks/android/consent/gdpr"},{"title":"Custom Consent Management","href":"/articles/sdks/android/consent/custom-consent"}]},{"title":"Implementation Examples","href":"/articles/sdks/android/examples"},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Release Notes","href":"/articles/sdks/android/release-notes/overview"},{"title":"Version 2.2.12","href":"/articles/sdks/android/release-notes/v2.2.12"},{"title":"Version 2.2.11","href":"/articles/sdks/android/release-notes/v2.2.11"},{"title":"Version 2.2.10","href":"/articles/sdks/android/release-notes/v2.2.10"},{"title":"Version 2.2.9","href":"/articles/sdks/android/release-notes/v2.2.9"},{"title":"Version 2.2.8","href":"/articles/sdks/android/release-notes/v2.2.8"},{"title":"Version 2.2.7","href":"/articles/sdks/android/release-notes/v2.2.7"},{"title":"Version 2.2.6","href":"/articles/sdks/android/release-notes/v2.2.6"},{"title":"Version 2.2.5","href":"/articles/sdks/android/release-notes/v2.2.5"},{"title":"Version 2.2.4","href":"/articles/sdks/android/release-notes/v2.2.4"},{"title":"Version 2.2.3","href":"/articles/sdks/android/release-notes/v2.2.3"},{"title":"Version 2.2.0","href":"/articles/sdks/android/release-notes/v2.2.0"},{"title":"Version 2.1.1","href":"/articles/sdks/android/release-notes/v2.1.1"},{"title":"Version 2.1.0","href":"/articles/sdks/android/release-notes/v2.1.0"},{"title":"Version 2.0.1","href":"/articles/sdks/android/release-notes/v2.0.1"},{"title":"Version 2.0.0","href":"/articles/sdks/android/release-notes/v2.0.0"},{"title":"Version 1.0.0","href":"/articles/sdks/android/release-notes/v1.0.0"}]}]},{"group":"React Native SDK","icon":"react","pages":[{"title":"Introduction to React Native SDK","href":"/articles/sdks/react-native/intro"},{"title":"Quick Start","href":"/articles/sdks/react-native/quick-start"},{"group":"Configurations","icon":"sliders","pages":[{"title":"Configurations","href":"/articles/sdks/react-native/configurations/overview"},{"title":"Write Key","href":"/articles/sdks/react-native/configurations/write-key"},{"title":"PII Hashing Configuration","href":"/articles/sdks/react-native/configurations/hashing"},{"title":"Consent Configuration Options","href":"/articles/sdks/react-native/configurations/consent-options"}]},{"group":"API Reference","icon":"code","pages":[{"title":"Track User Identities","href":"/articles/sdks/react-native/api-reference/set-user-identities"},{"title":"Track Page View Events","href":"/articles/sdks/react-native/api-reference/set-page-properties"},{"title":"Track Events","href":"/articles/sdks/react-native/api-reference/set-event-properties"},{"title":"Track Instant Events","href":"/articles/sdks/react-native/api-reference/set-instant-event-properties"},{"title":"Track User Properties","href":"/articles/sdks/react-native/api-reference/set-user-properties"},{"title":"Track User Consent","href":"/articles/sdks/react-native/api-reference/set-consent"},{"title":"Remove User Identities","href":"/articles/sdks/react-native/api-reference/unset-user-identities"},{"title":"Pause Collection","href":"/articles/sdks/react-native/api-reference/pause-collection"},{"title":"Resume Collection","description":"Resume event collection after it was paused.","href":"/articles/sdks/react-native/api-reference/resume-collection"}]},{"group":"Consent Resolution","icon":"shield-check","pages":[{"title":"Choosing a Consent Strategy","href":"/articles/sdks/react-native/consent/consent-strategy"},{"title":"Default Behavior (No Explicit Consent Management)","description":"Understand how the Zeotap React Native SDK operates regarding consent when no specific consent mechanism is configured.","href":"/articles/sdks/react-native/consent/default"},{"title":"TCF v2.x / GDPR Compliance","href":"/articles/sdks/react-native/consent/gdpr"},{"title":"Custom Consent Management","href":"/articles/sdks/react-native/consent/custom-consent"}]},{"title":"Implementation Examples","href":"/articles/sdks/react-native/examples"},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Release Notes","href":"/articles/sdks/react-native/release-notes/overview"},{"title":"Version 1.3.9","href":"/articles/sdks/react-native/release-notes/v1.3.9"},{"title":"Version 1.3.8","href":"/articles/sdks/react-native/release-notes/v1.3.8"},{"title":"Version 1.3.7","href":"/articles/sdks/react-native/release-notes/v1.3.7"},{"title":"Version 1.3.6","href":"/articles/sdks/react-native/release-notes/v1.3.6"},{"title":"Version 1.3.5","href":"/articles/sdks/react-native/release-notes/v1.3.5"},{"title":"Version 1.3.4","href":"/articles/sdks/react-native/release-notes/v1.3.4"},{"title":"Version 1.3.3","href":"/articles/sdks/react-native/release-notes/v1.3.3"},{"title":"Version 1.3.2","href":"/articles/sdks/react-native/release-notes/v1.3.2"},{"title":"Version 1.3.1","href":"/articles/sdks/react-native/release-notes/v1.3.1"},{"title":"Version 1.3.0","href":"/articles/sdks/react-native/release-notes/v1.3.0"},{"title":"Version 1.2.1","href":"/articles/sdks/react-native/release-notes/v1.2.1"},{"title":"Version 1.2.0","href":"/articles/sdks/react-native/release-notes/v1.2.0"},{"title":"Version 1.1.6","href":"/articles/sdks/react-native/release-notes/v1.1.6"},{"title":"Version 1.1.5","href":"/articles/sdks/react-native/release-notes/v1.1.5"},{"title":"Version 1.1.4","href":"/articles/sdks/react-native/release-notes/v1.1.4"},{"title":"Version 1.1.3","href":"/articles/sdks/react-native/release-notes/v1.1.3"},{"title":"Version 1.1.2","href":"/articles/sdks/react-native/release-notes/v1.1.2"},{"title":"Version 1.1.1","href":"/articles/sdks/react-native/release-notes/v1.1.1"},{"title":"Version 1.1.0","href":"/articles/sdks/react-native/release-notes/v1.1.0"},{"title":"Version 1.0.1","href":"/articles/sdks/react-native/release-notes/v1.0.1"},{"title":"Version 1.0.0","href":"/articles/sdks/react-native/release-notes/v1.0.0"}]}]}]},{"tab":"Status","icon":"signal","href":"https://status.zeotap.com/"},{"tab":"Profile API","icon":"square-terminal","pages":[{"title":"Profile API","href":"/profile-api/profileapi"}]},{"tab":"Get Started","icon":"rocket","hidden":true,"pages":[{"title":"Get Started","href":"/articles/get-started-guide/getting-started"}]},{"tab":"What's New?","icon":"calendar-days","pages":[{"title":"What's New?","href":"/articles/product-release-notes/2026/q3-2026"}]},{"tab":"Composable CDP","href":"https://composable-docs.zeotap.com/"},{"tab":"ID+","icon":"fingerprint","hidden":true,"pages":[{"title":"ID+","href":"/articles/id-publication/basic-integration-guide_v2"}]},{"tab":"Support","icon":"headset","hidden":true,"pages":[{"title":"Support","href":"/articles/support/clear-your-cache-and-cookies"}]}]},"basePath":"","title":"Choosing a Consent Strategy - Zeotap docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}