Deep linking is the mechanism that allows users to be redirected to a specific platform’s content by clicking on a link address. This is a process commonly used while users are navigating the Web, under the same or across different websites. It is also applicable, however, to Apps in the mobile environment.The process of App Deep Linking is as follows:
An app’s developer will configure the app to “listen” to links of a certain format
When a user clicks on one of these links, the link should trigger a native behaviour from the OS responsible for launching the respective app (Android or iOS)
After the app is launched, its code might contain specific logic to redirect the user to a specific internal screen, or behave in some other particular way based on the specific link triggered
Deep linking can be achieved using various approaches, from the original URI Scheme mechanism to newer technologies like iOS’ Universal Links and Android’s App Links.
To maximize compatibility with different environments & publisher capabilities, it’s recommended that apps have both functionalities available.
These can be thought of as similar to the web protocols https:// and http://, only for specific apps. For example:
myapp://path/to/content?key1=value1&key2=value2
mystore://products/details?id=abc123
youtube://watch?v=LQoohRwojmw
The first part (before the ://) is called the URI Scheme and it defines which app should be launched by the OS when this link is invoked.The path and query parameters (after the ://) can be read by the app’s code and will determine the redirection/behaviour inside the app.
In iOS 9, Apple introduced what is known as Universal Links. This new Mobile Deeplinking solution aims to avoid URI scheme conflicts between apps listening to the same scheme (a known vulnerability of URI schemes), as well as handling cross-environment redirection (between Web & App). It also provides native fallback redirection to a mobile website if the app is not installed. A similar approach called Android App Links was released by Google in Android 6.0.Effectively, Universal Links/Android App Links are links that use the secure HTTPS Web protocol to ensure smooth redirection to the app if it’s installed, or a fallback to the mobile website:
Redirection can be set up via either the URI Scheme, Universal Link/App Links, or a combination, and these are required for all campaigns whose landing environment is within your App.
Not applicable to App Install campaigns, since in that use case, the user is redirected to the App Store or Play Store.
These ads have dynamic content that use our varied creative Layouts & our Product Recommendation Engine (powered by proprietary ML algorithms) to maximize the campaign’s Click-Through Rate and Conversion Rate.Deeplinking is also specific to the area within the banner that is clicked on. From a macro perspective, our dynamic ads are divided into the zones outlined below:
Logo Zone: the part of the banner which has the advertiser’s branding content (logo), usually at the top-left of the banner. This is designed to redirect users to the main screen of the app. To configure it, Criteo requires:
(mandatory) A URI Scheme that opens the app and redirects the user to the main screen
(if available) A similar Universal Link/App Link
Product Zone: the part of the banner where the products are displayed and whose resources are loaded directly from the Product Catalog. Clicks in this area are usually designed to redirect users to the product details screen within the app. To configure it, Criteo requires:
(mandatory) Product-specific URI Scheme deeplinks in the catalog, which open the app and redirect to the respective product details screen
(if available) Similar Universal Links/App Links
Coupon Zone: area of the banner covered by Coupons (whenever configured — optional), which are designed to display special offers or seasonal discounts. If configured, Coupons might also redirect users to dedicated screens within the app. To configure it, Criteo requires:
(optional) URL Scheme that opens the app and redirects to the main screen
(optional & if available) Similar Universal Link/App Link
Currently, these configurations are not available in the self-service platform, so please inform your Criteo contact about the desired URI Scheme and UL/AL’s to use for your App campaigns.
These are ads whose contents are provided directly & entirely by the advertiser and whose redirection behaviour is the same in the entire banner frame.Here, redirection is also controlled manually and set at the Ad level. To configure it, Criteo requires:
(mandatory) URI Scheme which opens the app and redirects to the main screen
(if available) Similar Universal Link/App Link
This configuration is available in our self-service platform when creating a new Ad under Landing Page URL:
To properly configure the Universal Links feature, the following steps must be followed:
The links’ domain must be registered in your iOS application’s associated domains file
The Apple App Site Association (AASA) file must be hosted on the public domain that the Universal Links should work with:
The AASA file is a JSON file containing the Apple App ID of the app you want the Universal Links to redirect to, as well as the paths from which app redirection should & should not happen
For more details, please see this link.Example of a domain declared under Associated Domains in Xcode (the iOS IDE) of an iOS project:
Example AASA file:
{ "applinks": { "details": [ { "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ], "components": [ { "#": "no_universal_links", "exclude": true, "comment": "Matches any URL with a fragment that equals no_universal_links and instructs the system not to open it as a universal link." }, { "/": "/buy/*", "comment": "Matches any URL with a path that starts with /buy/." }, { "/": "/help/*", "?": { "articleNumber": "????" }, "comment": "Matches any URL with a path that starts with /help/ and that has a query string parameter with name 'articleNumber' and a value of exactly four characters." } ] } ] }, "webcredentials": { "apps": [ "ABCDE12345.com.example.app" ] }}
To properly configure the Android App Links feature, the following steps must be followed:
The link needs to be registered in your Android application’s manifest.xml file, under a separate intent filter from that of the URI Scheme
The Digital Asset Link file (assetlinks.json) must be hosted on the public domain that the Android App Links should work with:
assetlinks.json is a JSON file which contains the package name and the SHA fingerprint of the app you want the redirection from this link to work for.
package_name: The application ID declared in the app’s build.gradle file
sha256_cert_fingerprints: The SHA256 fingerprints of your app’s signing certificate. You can use the following command to generate the fingerprint via the Java key tool:
If you are facing issues in identifying either the URI schemes, Universal Links, or App Links to share with the Criteo Team, please reach out to your app’s development team for guidance.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Criteo Docs","colors":{"primary":"#FE5001","light":"#FE5001","dark":"#FE5001"},"logo":{"light":"https://mintcdn.com/criteo-e1682996/oGhV8AgFf1afoax4/logo/light.svg?fit=max\u0026auto=format\u0026n=oGhV8AgFf1afoax4\u0026q=85\u0026s=25bacaf5d815bd4242b98ca759ed086c","dark":"https://mintcdn.com/criteo-e1682996/oGhV8AgFf1afoax4/logo/dark.svg?fit=max\u0026auto=format\u0026n=oGhV8AgFf1afoax4\u0026q=85\u0026s=28cba1b2ef8d4354739c680b8335cc7c"},"favicon":"https://mintcdn.com/criteo-e1682996/-a_Zn-jb9gMTKnuK/favicon.png?fit=max\u0026auto=format\u0026n=-a_Zn-jb9gMTKnuK\u0026q=85\u0026s=6d00e60b5acc0fba4fca5c228132809a","appearance":{"default":"light"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://status.criteo.com/","label":"Status"},{"href":"https://partners.criteo.com/","label":"Partner Portal"}],"primary":{"type":"button","label":"Contact Sales","href":"https://www.criteo.com/talk-to-an-expert/"}},"fonts":{"heading":{"family":"Graphik LC Web","source":"https://www.criteo.com/wp-content/themes/criteo2017/fonts/graphik-lc/Graphik-Semibold-Cy-Web.woff2","format":"woff2"},"body":{"family":"Graphik LC Web","source":"https://criteo.com/wp-content/themes/criteo2017/fonts/graphik-lc/Graphik-Regular-Cy-Web.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"heap":{"appId":"305485844"}},"contextual":{"options":["copy","view","chatgpt","claude","vscode","grok"],"display":"header"},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"criteo-e1682996","hasAudioNarration":false,"actualSubdomain":"criteo-e1682996","customDomains":["developers.criteo.com"],"gitSource":{"type":"github","owner":"criteo","repo":"public-api-doc","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea31697bec8f09c4be90af","collectionId":"d69b8cf3-9fe3-4ff2-82a0-90adfd005844","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea31697bec8f09c4be90af"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea31697bec8f09c4be90af","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":1601},{"language":"default","tag":"Marketing Solutions API","count":1398},{"language":"default","tag":"Retail Media API","count":1058},{"language":"default","tag":"Campaign","count":670},{"language":"default","tag":"Guides","count":657},{"language":"default","tag":"Guides for Retail Media API","count":274},{"language":"default","tag":"Audience","count":226},{"language":"default","tag":"Marketing Solutions Endpoints","count":200},{"language":"default","tag":"Analytics","count":191},{"language":"default","tag":"Creative","count":161}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"starterQuestions":[{"_id":"69c3ab31b75fcc3c3b4cdb3d","deploymentId":"69b6cc72b519f361e0c30b32","questionText":"How do I get started with Onsite Display campaigns?","status":"active","generatedBy":"manual","createdAt":"2026-03-25T09:30:25.685Z","updatedAt":"2026-03-25T09:30:25.685Z","__v":0},{"_id":"69c3ab1fb75fcc3c3b4cdafb","deploymentId":"69b6cc72b519f361e0c30b32","questionText":"How do I get started with Sponsored Products campaigns?","status":"active","generatedBy":"manual","createdAt":"2026-03-25T09:30:07.459Z","updatedAt":"2026-03-25T09:30:07.459Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":""}],"page":{"pagePath":"mobile-integrations/docs/deeplinks","slug":"/mobile-integrations/docs/deeplinks","pageMetadata":{"title":"Deep Linking Configuration and Requirements","description":"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.","href":"/mobile-integrations/docs/deeplinks"},"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: \"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\"\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`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Deep linking is the mechanism that allows users to be redirected to a specific platform’s content by clicking on a link address. This is a process commonly used while users are navigating the Web, under the same or across different websites. It is also applicable, however, to Apps in the mobile environment.`}),`\n`,_jsx(_components.p,{children:`The process of App Deep Linking is as follows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`An app’s developer will configure the app to “listen” to links of a certain format`}),`\n`,_jsx(_components.li,{children:`When a user clicks on one of these links, the link should trigger a native behaviour from the OS responsible for launching the respective app (Android or iOS)`}),`\n`,_jsx(_components.li,{children:`After the app is launched, its code might contain specific logic to redirect the user to a specific internal screen, or behave in some other particular way based on the specific link triggered`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Deep linking can be achieved using various approaches, from the original `,_jsx(_components.strong,{children:`URI Scheme`}),` mechanism to newer technologies like iOS’ `,_jsx(_components.strong,{children:`Universal Links`}),` and Android’s `,_jsx(_components.strong,{children:`App Links`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`To maximize compatibility with different environments \u0026 publisher capabilities, it’s recommended that apps have both functionalities available.`})}),`\n`,_jsx(Heading,{level:`3`,id:`uri-schemes`,children:`URI Schemes`}),`\n`,_jsxs(_components.p,{children:[`These can be thought of as similar to the web protocols `,_jsx(_components.code,{children:`https://`}),` and `,_jsx(_components.code,{children:`http://`}),`, only for specific apps. For example:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`myapp://path/to/content?key1=value1\u0026key2=value2`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`mystore://products/details?id=abc123`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`youtube://watch?v=LQoohRwojmw`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The first part (before the `,_jsx(_components.code,{children:`://`}),`) is called the `,_jsx(_components.strong,{children:`URI Scheme`}),` and it defines which app should be launched by the OS when this link is invoked.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`path`}),` and `,_jsx(_components.strong,{children:`query parameters`}),` (after the `,_jsx(_components.code,{children:`://`}),`) can be read by the app’s code and will determine the redirection/behaviour inside the app.`]}),`\n`,_jsx(Heading,{level:`3`,id:`universal-linking-ios-/-app-links-android`,children:`Universal Linking (iOS) / App Links (Android)`}),`\n`,_jsxs(_components.p,{children:[`In iOS 9, Apple introduced what is known as `,_jsx(_components.a,{href:`https://developer.apple.com/ios/universal-links/`,children:`Universal Links`}),`. This new Mobile Deeplinking solution aims to avoid URI scheme conflicts between apps listening to the same scheme (a known vulnerability of URI schemes), as well as handling cross-environment redirection (between Web \u0026 App). It also provides native fallback redirection to a mobile website if the app is not installed. A similar approach called `,_jsx(_components.a,{href:`https://developer.android.com/training/app-links`,children:`Android App Links`}),` was released by Google in Android 6.0.`]}),`\n`,_jsx(_components.p,{children:`Effectively, Universal Links/Android App Links are links that use the secure HTTPS Web protocol to ensure smooth redirection to the app if it’s installed, or a fallback to the mobile website:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`https://www.mystore.com/products?id=abc123`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`https://www.youtube.com/watch?v=LQoohRwojmw`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`https://twitter.com/criteo`})}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`deep-linking-at-criteo`,children:`Deep Linking at Criteo`}),`\n`,_jsx(_components.p,{children:`Redirection can be set up via either the URI Scheme, Universal Link/App Links, or a combination, and these are required for all campaigns whose landing environment is within your App.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Not applicable to App Install campaigns, since in that use case, the user is redirected to the App Store or Play Store.`})}),`\n`,_jsx(_components.p,{children:`Their usage depends on the type of banner:`}),`\n`,_jsx(Heading,{level:`4`,id:`dynamic-ads`,children:`Dynamic Ads`}),`\n`,_jsx(_components.p,{children:`These ads have dynamic content that use our varied creative Layouts \u0026 our Product Recommendation Engine (powered by proprietary ML algorithms) to maximize the campaign’s Click-Through Rate and Conversion Rate.`}),`\n`,_jsx(_components.p,{children:`Deeplinking is also specific to the area within the banner that is clicked on. From a macro perspective, our dynamic ads are divided into the zones outlined below:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Logo Zone:`}),` the part of the banner which has the advertiser’s branding content (logo), usually at the top-left of the banner. This is designed to redirect users to the main screen of the app. To configure it, Criteo requires:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(mandatory)`}),` A URI Scheme that opens the app and redirects the user to the main screen`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(if available)`}),` A similar Universal Link/App Link`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Product Zone:`}),` the part of the banner where the products are displayed and whose resources are loaded directly from the Product Catalog. Clicks in this area are usually designed to redirect users to the product details screen within the app. To configure it, Criteo requires:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(mandatory)`}),` Product-specific URI Scheme deeplinks in the catalog, which open the app and redirect to the respective product details screen`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(if available)`}),` Similar Universal Links/App Links`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Coupon Zone:`}),` area of the banner covered by Coupons (whenever configured — optional), which are designed to display special offers or seasonal discounts. If configured, Coupons might also redirect users to dedicated screens within the app. To configure it, Criteo requires:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(optional)`}),` URL Scheme that opens the app and redirects to the main screen`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(optional \u0026 if available)`}),` Similar Universal Link/App Link`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Currently, these configurations are not available in the self-service platform, so please inform your Criteo contact about the desired URI Scheme and UL/AL’s to use for your App campaigns.`})}),`\n`,_jsx(Heading,{level:`4`,id:`static-ads`,children:`Static Ads`}),`\n`,_jsx(_components.p,{children:`These are ads whose contents are provided directly \u0026 entirely by the advertiser and whose redirection behaviour is the same in the entire banner frame.`}),`\n`,_jsx(_components.p,{children:`Here, redirection is also controlled manually and set at the Ad level. To configure it, Criteo requires:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(mandatory)`}),` URI Scheme which opens the app and redirects to the main screen`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`(if available)`}),` Similar Universal Link/App Link`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This configuration is available in our self-service platform when creating a new Ad under Landing Page URL:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=1fd8fa92eb8a14a08bf7542d3c5ffb5b`,alt:`Image`,\"data-og-width\":`3200`,width:`3200`,\"data-og-height\":`1699`,height:`1699`,\"data-path\":`images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=280\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=305d642d8bf6d1d391e8f39f4ad0e9af 280w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=560\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=ba4e78566c66d9ebd7e3372664c17fb5 560w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=840\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=32fcb947545de22e41af434ee33ba931 840w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=74991f354d546893e253beafcdc4a221 1100w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=98851fdb4640aa0205cb4ba8eb883730 1650w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_static_ad_landing_url.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=943d12a33c8e2a7e9410937b1f9ab6bd 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`deep-linking-setup-for-ios-apps`,children:`Deep Linking Setup for iOS Apps`}),`\n`,_jsx(Heading,{level:`4`,id:`ios-uri-scheme-implementation`,children:`iOS URI Scheme Implementation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`These schemes need to be `,_jsx(_components.strong,{children:`declared and configured in the info.plist file of your iOS application`})]}),`\n`,_jsx(_components.li,{children:`Once configured, a tap on a link of this format will trigger the app and redirect the user into it`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more details, please see this `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app`,children:`link`}),`.`]}),`\n`,_jsx(_components.p,{children:`Example of a URI Scheme configured in the info.plist file of an iOS project:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=98a4518788d59d7e4376c2ba83697503`,alt:`Image`,\"data-og-width\":`2038`,width:`2038`,\"data-og-height\":`844`,height:`844`,\"data-path\":`images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=280\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=107f8a06f4d82741e6f2ea437e6952d8 280w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=560\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=5c18ae3216f06537a671aaa6ff892ec9 560w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=840\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=98674d0919fa1c489ac32d9a3ea218e1 840w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=7d0d4213cda486d97abd27dab8e14a38 1100w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=d6b290d78bba0b6b6e50e786432bbcfd 1650w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_info_plist_scheme.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=9db8d30554401c014e613726ef99ec8e 2500w`})}),`\n`,_jsx(Heading,{level:`4`,id:`universal-linking`,children:`Universal Linking`}),`\n`,_jsx(_components.p,{children:`To properly configure the Universal Links feature, the following steps must be followed:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The links’ domain must be registered in your iOS application’s associated domains file`}),`\n`,_jsxs(_components.li,{children:[`The Apple App Site Association (AASA) file must be hosted on the public domain that the Universal Links should work with:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The AASA file is a JSON file containing the Apple App ID of the app you want the Universal Links to redirect to, as well as the paths from which app redirection should \u0026 should not happen`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more details, please see this `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/xcode/supporting-associated-domains`,children:`link`}),`.`]}),`\n`,_jsx(_components.p,{children:`Example of a domain declared under Associated Domains in Xcode (the iOS IDE) of an iOS project:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=b9afb6101ce7b00c9a523a03950138e7`,alt:`Image`,\"data-og-width\":`1436`,width:`1436`,\"data-og-height\":`272`,height:`272`,\"data-path\":`images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=280\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=2cb6852c2c50cb7c30fdda3cc88cf042 280w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=560\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=eb9ec743b70612a16d085c02120dc594 560w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=840\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=1adb2ecd90136f716a9e444984568b5e 840w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=ca24b08f5b9408decd2071b258501e8c 1100w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=9a9e566d949b78a076e3329e816d64af 1650w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_ios_associated_domains.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=47e047a49191fd702343f937f70bbcbb 2500w`})}),`\n`,_jsx(_components.p,{children:`Example AASA file:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`28`,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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"applinks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"appIDs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [ `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ABCDE12345.com.example.app\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ABCDE12345.com.example.app2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"components\"`}),_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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"#\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"no_universal_links\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"exclude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Matches any URL with a fragment that equals no_universal_links and instructs the system not to open it as a universal link.\"`})]}),`\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:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"/\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/buy/*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Matches any URL with a path that starts with /buy/.\"`})]}),`\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:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"/\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/help/*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"articleNumber\"`}),_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\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Matches any URL with a path that starts with /help/ and that has a query string parameter with name 'articleNumber' and a value of exactly four characters.\"`})]}),`\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:` ]`})}),`\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:` ]`})}),`\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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"webcredentials\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"apps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [ `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ABCDE12345.com.example.app\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`deep-linking-setup-for-android-apps`,children:`Deep Linking Setup for Android Apps`}),`\n`,_jsx(Heading,{level:`4`,id:`android-uri-scheme-implementation`,children:`Android URI Scheme Implementation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`These schemes need to be `,_jsx(_components.strong,{children:`configured in the manifest.xml of your Android application`})]}),`\n`,_jsx(_components.li,{children:`Once configured, a tap on a link of this format will trigger the app and redirect the user into it`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more details, please see this `,_jsx(_components.a,{href:`https://developer.android.com/training/app-links/deep-linking`,children:`link`}),`.`]}),`\n`,_jsx(_components.p,{children:`Example of URI Scheme configured in manifest.xml of an Android project:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=51cc2ed40c7181a871f510ace3beba7c`,alt:`Image`,\"data-og-width\":`2868`,width:`2868`,\"data-og-height\":`978`,height:`978`,\"data-path\":`images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=280\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=67d33b0298df5e491dfec48c6e6beb73 280w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=560\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=44c23d5649a7b2b1ed0e0b26033b3fc6 560w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=840\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=618395784be11ba153193057d9ff64ce 840w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=08b837e63dd7b363398006a04fd76dfd 1100w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=29be424c5a38a3372cbf5e454dc174bd 1650w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_scheme.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=5796464b3ad11525362e011b726c1748 2500w`})}),`\n`,_jsx(Heading,{level:`4`,id:`android-app-links`,children:`Android App Links`}),`\n`,_jsx(_components.p,{children:`To properly configure the Android App Links feature, the following steps must be followed:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The link needs to be registered in your Android application’s manifest.xml file, under a `,_jsx(_components.strong,{children:`separate intent filter from that of the URI Scheme`})]}),`\n`,_jsxs(_components.li,{children:[`The Digital Asset Link file (assetlinks.json) must be hosted on the public domain that the Android App Links should work with:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`assetlinks.json`}),` is a JSON file which contains the package name and the SHA fingerprint of the app you want the redirection from this link to work for.`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`package_name`}),`: The application ID declared in the app’s `,_jsx(_components.code,{children:`build.gradle`}),` file`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`sha256_cert_fingerprints`}),`: The SHA256 fingerprints of your app’s signing certificate. You can use the following command to generate the fingerprint via the Java key tool:`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`keytool`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -v`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -keystore`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-release-key.keystore`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`For more details, please see this `,_jsx(_components.a,{href:`https://developer.android.com/training/app-links/verify-android-applinks`,children:`link`}),`.`]}),`\n`,_jsx(_components.p,{children:`Example of a domain configured in the manifest.xml file:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=14fae3a2dc719b30d1ab8673b6b0a03f`,alt:`Image`,\"data-og-width\":`2852`,width:`2852`,\"data-og-height\":`1086`,height:`1086`,\"data-path\":`images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=280\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=212ea0a0308e3d85503d8959f963ffdc 280w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=560\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=34ed36fec0513ca412348449593de355 560w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=840\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=1080ff5f246d313ed43a487137ce09a5 840w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=b2160322d62615a25d19dee6b984b735 1100w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=135626650f871e25f4e1a6df6a4dc769 1650w, https://mintcdn.com/criteo-e1682996/_Y5ppJi5blUNBSuu/images/mobile-integrations/deeplinks/deeplinks_android_manifest_applinks.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_Y5ppJi5blUNBSuu\u0026q=85\u0026s=7fd207214e6f890b317ec8153c25fae3 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Example `,_jsx(_components.code,{children:`assetlinks.json`}),` file:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"relation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"delegate_permission/common.handle_all_urls\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"namespace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"android_app\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"package_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"com.example\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sha256_cert_fingerprints\"`}),_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\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}]`})}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`If you are facing issues in identifying either the URI schemes, Universal Links, or App Links to share with the Criteo Team, please reach out to your app’s development team for guidance.`})})]})}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":"Deep Linking Configuration and Requirements","description":"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.","href":"/mobile-integrations/docs/deeplinks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[{"title":"URI Schemes","slug":"uri-schemes","depth":3,"children":[]},{"title":"Universal Linking (iOS) / App Links (Android)","slug":"universal-linking-ios-/-app-links-android","depth":3,"children":[]},{"title":"Deep Linking at Criteo","slug":"deep-linking-at-criteo","depth":3,"children":[]},{"title":"Dynamic Ads","slug":"dynamic-ads","depth":4,"children":[]},{"title":"Static Ads","slug":"static-ads","depth":4,"children":[]},{"title":"Deep Linking Setup for iOS Apps","slug":"deep-linking-setup-for-ios-apps","depth":3,"children":[]},{"title":"iOS URI Scheme Implementation","slug":"ios-uri-scheme-implementation","depth":4,"children":[]},{"title":"Universal Linking","slug":"universal-linking","depth":4,"children":[]},{"title":"Deep Linking Setup for Android Apps","slug":"deep-linking-setup-for-android-apps","depth":3,"children":[]},{"title":"Android URI Scheme Implementation","slug":"android-uri-scheme-implementation","depth":4,"children":[]},{"title":"Android App Links","slug":"android-app-links","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"criteo-e1682996","siteName":"Criteo Docs","title":"Deep Linking Configuration and Requirements - Criteo Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-14T08:55:44.001Z","originalFileLocation":"mobile-integrations/docs/deeplinks.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=\"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Criteo 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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_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/criteo-e1682996/Q7JsFULesw3hnXj8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deep Linking Configuration and Requirements - Criteo Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Criteo Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.criteo.com/mobile-integrations/docs/deeplinks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://criteo-e1682996.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Deep+Linking+Configuration+and+Requirements\u0026amp;description=Configure+URI+Schemes%2C+Universal+Links%2C+and+Android+App+Links+for+your+Criteo+App+campaigns.\u0026amp;theme=41f5d581d5525872491a60f5\u0026amp;signature=c972e371b075681106ee5327711749de69edcc029e86067053ef5503b0e49a4a\">\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=\"Deep Linking Configuration and Requirements - Criteo Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://criteo-e1682996.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Deep+Linking+Configuration+and+Requirements\u0026amp;description=Configure+URI+Schemes%2C+Universal+Links%2C+and+Android+App+Links+for+your+Criteo+App+campaigns.\u0026amp;theme=41f5d581d5525872491a60f5\u0026amp;signature=c972e371b075681106ee5327711749de69edcc029e86067053ef5503b0e49a4a\">\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/criteo-e1682996/Q7JsFULesw3hnXj8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Criteo Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FE5001\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.criteo.com/mobile-integrations/docs/deeplinks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mobile-integrations/docs/deeplinks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.criteo.com/#organization\",\"name\":\"Criteo Docs\",\"url\":\"https://developers.criteo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/criteo-e1682996/oGhV8AgFf1afoax4/logo/light.svg?fit=max\u0026auto=format\u0026n=oGhV8AgFf1afoax4\u0026q=85\u0026s=25bacaf5d815bd4242b98ca759ed086c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.criteo.com#website\",\"name\":\"Criteo Docs\",\"url\":\"https://developers.criteo.com\",\"publisher\":{\"@id\":\"https://developers.criteo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.criteo.com/mobile-integrations/docs/deeplinks#webpage\",\"url\":\"https://developers.criteo.com/mobile-integrations/docs/deeplinks\",\"name\":\"Deep Linking Configuration and Requirements\",\"description\":\"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\",\"dateModified\":\"2026-08-14T08:55:44.001Z\",\"isPartOf\":{\"@id\":\"https://developers.criteo.com#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.criteo.com/mobile-integrations/docs/deeplinks#article\",\"headline\":\"Deep Linking Configuration and Requirements\",\"name\":\"Deep Linking Configuration and Requirements\",\"description\":\"Configure URI Schemes, Universal Links, and Android App Links for your Criteo App campaigns.\",\"url\":\"https://developers.criteo.com/mobile-integrations/docs/deeplinks\",\"mainEntityOfPage\":{\"@id\":\"https://developers.criteo.com/mobile-integrations/docs/deeplinks#webpage\"},\"dateModified\":\"2026-08-14T08:55:44.001Z\",\"publisher\":{\"@id\":\"https://developers.criteo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.criteo.com#website\"}}]}\u003c/script>","siteName":"Criteo Docs","nav":{"global":{},"products":[{"product":"API Resources","pages":[{"title":"API Resources","href":"/criteo-apis/docs/overview"}]},{"product":"Retail Media API","pages":[{"title":"Retail Media API","href":"/retail-media/docs/welcome-to-criteo"}]},{"product":"Marketing Solutions API","pages":[{"title":"Marketing Solutions API","href":"/marketing-solutions/docs/welcome-to-criteo"}]},{"product":"Retailer Integration","pages":[{"title":"Retailer Integration","href":"/retailer-integration/docs/overview"}]},{"product":"MMP Integrations","tabs":[{"tab":"Guides","icon":"mobile","pages":[{"title":"Criteo Mobile Endpoint Specification","description":"The Criteo Mobile Endpoint Specification for user events integrations. This content can be used for: S2S integrations, direct endpoint integrations from the app and hybrid apps.","href":"/mobile-integrations/docs/mobile-endpoint-specification"},{"title":"Deep Linking Configuration and Requirements","href":"/mobile-integrations/docs/deeplinks"},{"group":"AppsFlyer","pages":[{"title":"Criteo Integration With AppsFlyer","description":"Set up your Criteo App campaigns (App Install or App Retargeting) with AppsFlyer.","href":"/mobile-integrations/docs/appsflyer-criteo-integration"},{"title":"AppsFlyer In-App Events [iOS]","href":"/mobile-integrations/docs/appsflyer-ios"},{"title":"AppsFlyer In-App Events [Android]","href":"/mobile-integrations/docs/appsflyer-android"}]},{"group":"Adjust","pages":[{"title":"Criteo Integration With Adjust","href":"/mobile-integrations/docs/adjust-criteo-integration"},{"title":"Adjust In-App Events [iOS]","href":"/mobile-integrations/docs/adjust-ios"},{"title":"Adjust In-App Events [Android]","href":"/mobile-integrations/docs/adjust-android"}]},{"group":"Branch","pages":[{"title":"Criteo Integration With Branch","href":"/mobile-integrations/docs/branch-overview"},{"title":"Branch In-App Events [iOS]","href":"/mobile-integrations/docs/branch-ios"},{"title":"Branch In-App Events [Android]","href":"/mobile-integrations/docs/branch-android"}]},{"group":"Kochava","pages":[{"title":"Criteo Integration With Kochava [Android]","href":"/mobile-integrations/docs/kochava-android"},{"title":"Criteo Integration With Kochava [iOS]","href":"/mobile-integrations/docs/kochava-ios"}]},{"group":"Singular","pages":[{"title":"Criteo Integration With Singular","href":"/mobile-integrations/docs/criteo-integration-with-singular"}]}]}]},{"product":"Model Context Protocol (MCP)","pages":[{"title":"Model Context Protocol (MCP)","href":"/mcp/docs/criteos-model-context-protocol-mcp"}]}]},"basePath":"","title":"Deep Linking Configuration and Requirements - Criteo Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}