Native CMP

Service library

Examples for the services you actually use.

Copy-paste configurations for 23 common services: analytics, marketing pixels, embeds and widgets. Each example includes the service entry, its description and the blocked markup.

1

Add the service

Copy the consentServices entry into the variable on the Consent Manager root.

2

Describe it

Add the consentTranslations entry to the matching purpose, once per language.

3

Block the code

Paste the markup into Custom Code or an HTML Embed and replace the placeholder IDs.

These examples are technical starting points, not legal advice. Check each vendor’s current snippet and cookie list, and describe services accurately in your privacy policy. More details are in the documentation.

Purpose · analytics

Analytics

Help us understand how visitors use the website so we can improve it.

Analytics

Google Analytics 4

Collects pseudonymous usage statistics.

Cookies removed on decline: ^_ga, ^_gat, _gid

consentServices

{
"name": "google-analytics",
"cookies": [
"^_ga",
"_gid",
"^_gat"
]
}

consentTranslations → purposes[analytics].services

{
"name": "google-analytics",
"title": "Google Analytics 4",
"description": "Collects pseudonymous usage statistics."
}

Markup · Custom Code or HTML Embed

<script type="text/plain" data-cmp-service="google-analytics"
data-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script type="text/plain" data-cmp-service="google-analytics">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "G-XXXXXXXXXX");
</script>

GA4 enhanced measurement tracks client-side page changes automatically. Put the snippet in Custom Code so it runs once per visit, not on every page.

Analytics

Matomo

Self-hosted or cloud analytics with pseudonymous visitor statistics.

Cookies removed on decline: ^_pk_id, ^_pk_ref, ^_pk_ses

consentServices

{
"name": "matomo",
"cookies": [
"^_pk_id",
"^_pk_ses",
"^_pk_ref"
]
}

consentTranslations → purposes[analytics].services

{
"name": "matomo",
"title": "Matomo",
"description": "Self-hosted or cloud analytics with pseudonymous visitor statistics."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="matomo">
var _paq = window._paq = window._paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function () {
var u = "https://analytics.example.com/";
_paq.push(["setTrackerUrl", u + "matomo.php"]);
_paq.push(["setSiteId", "1"]);
var g = document.createElement("script");
g.async = true; g.src = u + "matomo.js";
document.head.appendChild(g);
})();
</script>

For client-side page changes, add _paq.push(["setCustomUrl", location.href], ["trackPageView"]) to an accept script on each page, or track route changes in your Matomo Tag Manager.

Analytics

Plausible Analytics

Cookieless, privacy-friendly website statistics.

No first-party cookies to remove.

consentServices

{
"name": "plausible"
}

consentTranslations → purposes[analytics].services

{
"name": "plausible",
"title": "Plausible Analytics",
"description": "Cookieless, privacy-friendly website statistics."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="plausible"
data-domain="example.com"
data-src="https://plausible.io/js/script.js"></script>

Cookieless tools are often used without consent. If your own assessment allows that, set "optOut": true: the script then runs until the visitor declines it.

Analytics

Rybbit

Cookieless, privacy-friendly web and product analytics.

No first-party cookies to remove.

consentServices

{
"name": "rybbit"
}

consentTranslations → purposes[analytics].services

{
"name": "rybbit",
"title": "Rybbit",
"description": "Cookieless, privacy-friendly web and product analytics."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="rybbit" async
data-src="https://app.rybbit.io/api/script.js?siteId=YOUR_SITE_ID"></script>

Rybbit is open source, cookieless and tracks client-side navigation automatically. Many sites use it without consent; if your own assessment allows that, set "optOut": true so it runs until the visitor declines. Self-hosted? Replace app.rybbit.io with your instance.

Analytics

Microsoft Clarity

Session recordings and heatmaps to improve usability.

Cookies removed on decline: _clck, _clsk

consentServices

{
"name": "microsoft-clarity",
"cookies": [
"_clck",
"_clsk"
]
}

consentTranslations → purposes[analytics].services

{
"name": "microsoft-clarity",
"title": "Microsoft Clarity",
"description": "Session recordings and heatmaps to improve usability."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="microsoft-clarity">
(function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "XXXXXXXXXX");
</script>
Analytics

Hotjar

Heatmaps, recordings and feedback surveys.

Cookies removed on decline: ^_hj

consentServices

{
"name": "hotjar",
"cookies": [
"^_hj"
]
}

consentTranslations → purposes[analytics].services

{
"name": "hotjar",
"title": "Hotjar",
"description": "Heatmaps, recordings and feedback surveys."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="hotjar">
(function(h,o,t,j,a,r){h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:1234567,hjsv:6};a=o.getElementsByTagName("head")[0];
r=o.createElement("script");r.async=1;r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);})(window,document,"https://static.hotjar.com/c/hotjar-",".js?sv=");
</script>

Purpose · marketing

Marketing

Measure the performance of our advertising and show more relevant ads.

Marketing

Google Tag Manager + Consent Mode v2

Loads marketing and analytics tags configured in Google Tag Manager.

Cookies removed on decline: ^_ga, ^_gat, ^_gcl, _gid

consentServices

[
{
"name": "google-analytics",
"cookies": [
"^_ga",
"_gid",
"^_gat"
]
},
{
"name": "google-ads",
"cookies": [
"^_gcl"
]
}
]

Markup · Custom Code, below the CMP snippet

<script>
window.cmpConfig = {
// …your other options
consentMode: {
analytics_storage: ["google-analytics"],
ad_storage: ["google-ads"],
ad_user_data: ["google-ads"],
ad_personalization: ["google-ads"],
},
};
</script>
<!-- CMP critical CSS + engine -->
<!-- Google Tag Manager, unchanged -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start":new Date().getTime(),event:"gtm.js"});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";
j.async=true;j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,"script","dataLayer","GTM-XXXXXXX");</script>

The engine sends consent default (all denied) before GTM loads, then consent update on every decision. In GTM, rely on built-in consent checks or the cmp_consent dataLayer event (dataLayer: true). Loading GTM before consent is a legal decision; to block GTM entirely, use type="text/plain" and data-cmp-service on its script instead.

Marketing

Meta Pixel

Measures the effectiveness of ads on Facebook and Instagram.

Cookies removed on decline: _fbc, _fbp

consentServices

{
"name": "meta-pixel",
"cookies": [
"_fbp",
"_fbc"
]
}

consentTranslations → purposes[marketing].services

{
"name": "meta-pixel",
"title": "Meta Pixel",
"description": "Measures the effectiveness of ads on Facebook and Instagram."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="meta-pixel">
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version="2.0";n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,"script","https://connect.facebook.net/en_US/fbevents.js");
fbq("init", "XXXXXXXXXXXXXXX");
fbq("track", "PageView");
</script>
Marketing

LinkedIn Insight Tag

Conversion tracking and retargeting for LinkedIn ads.

Cookies removed on decline: li_fat_id, li_giant, ln_or

consentServices

{
"name": "linkedin-insight",
"cookies": [
"li_fat_id",
"li_giant",
"ln_or"
]
}

consentTranslations → purposes[marketing].services

{
"name": "linkedin-insight",
"title": "LinkedIn Insight Tag",
"description": "Conversion tracking and retargeting for LinkedIn ads."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="linkedin-insight">
window._linkedin_partner_id = "XXXXXXX";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(window._linkedin_partner_id);
</script>
<script type="text/plain" data-cmp-service="linkedin-insight"
data-src="https://snap.licdn.com/li.lms-analytics/insight.min.js"></script>
Marketing

TikTok Pixel

Measures the performance of TikTok ad campaigns.

Cookies removed on decline: _tt_enable_cookie, _ttp

consentServices

{
"name": "tiktok-pixel",
"cookies": [
"_ttp",
"_tt_enable_cookie"
]
}

consentTranslations → purposes[marketing].services

{
"name": "tiktok-pixel",
"title": "TikTok Pixel",
"description": "Measures the performance of TikTok ad campaigns."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="tiktok-pixel">
/* Paste the base code from TikTok Events Manager here, unchanged, e.g.
!function (w, d, t) { … ttq.load("XXXXXXXXXXXXXXXXXXXX"); ttq.page(); }(window, document, "ttq"); */
</script>

Any vendor snippet works the same way: keep the code as it is and only change the opening <script> tag.

Marketing

Pinterest Tag

Conversion tracking and audiences for Pinterest ads.

Cookies removed on decline: ^_pinterest_, _derived_epik, _epik, _pin_unauth

consentServices

{
"name": "pinterest-tag",
"cookies": [
"_pin_unauth",
"_epik",
"_derived_epik",
"^_pinterest_"
]
}

consentTranslations → purposes[marketing].services

{
"name": "pinterest-tag",
"title": "Pinterest Tag",
"description": "Conversion tracking and audiences for Pinterest ads."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="pinterest-tag">
/* Paste the Pinterest base code here, unchanged, e.g.
!function(e){ … }("https://s.pinimg.com/ct/core.js");
pintrk("load", "XXXXXXXXXXXXX"); pintrk("page"); */
</script>

Purpose · media

External media

Load content from third-party platforms such as videos, maps and social posts.

External media

YouTube

Plays embedded videos. YouTube may set cookies once a video loads.

No first-party cookies to remove.

consentServices

{
"name": "youtube"
}

consentTranslations → purposes[media].services

{
"name": "youtube",
"title": "YouTube",
"description": "Plays embedded videos. YouTube may set cookies once a video loads."
}

Structure · Webstudio’s YouTube component in an interaction-mode Consent Gate

Consent Gate            data-cmp-gate="youtube"
data-cmp-gate-mode="interaction"
├─ Gate Notice data-cmp-gate-notice (overlay)
└─ YouTube component data-cmp-gate-content
URL https://www.youtube.com/watch?v=VIDEO_ID
Show preview off
Autoplay off
Preconnect off
Privacy enhanced mode on
Preview Image your own thumbnail

The video stays visible. When the visitor clicks play, the consent notice appears on top; after Load content the video starts. Copy a ready-made gate from the generator, see Consent Gates.

External media

Vimeo

Plays embedded videos hosted on Vimeo.

No first-party cookies to remove.

consentServices

{
"name": "vimeo"
}

consentTranslations → purposes[media].services

{
"name": "vimeo",
"title": "Vimeo",
"description": "Plays embedded videos hosted on Vimeo."
}

Structure · Webstudio’s Vimeo component in an interaction-mode Consent Gate

Consent Gate            data-cmp-gate="vimeo"
data-cmp-gate-mode="interaction"
├─ Gate Notice data-cmp-gate-notice (overlay)
└─ Vimeo component data-cmp-gate-content
URL https://vimeo.com/VIDEO_ID
Show preview off
Autoplay off
Do not track on
Preview Image your own thumbnail

With Show preview on, the component calls the Vimeo API and loads the thumbnail from Vimeo before any consent. Copy a ready-made gate from the generator.

External media

Google Maps

Shows interactive maps.

No first-party cookies to remove.

consentServices

{
"name": "google-maps"
}

consentTranslations → purposes[media].services

{
"name": "google-maps",
"title": "Google Maps",
"description": "Shows interactive maps."
}

Markup · HTML Embed inside a Consent Gate

<template data-cmp-service="google-maps">
<iframe src="https://www.google.com/maps?q=Palma%20de%20Mallorca&output=embed"
title="Google Maps" loading="lazy" referrerpolicy="no-referrer-when-downgrade"
style="display:block;width:100%;aspect-ratio:16/9;border:0"></iframe>
</template>
External media

Spotify

Plays embedded tracks, albums and podcasts.

No first-party cookies to remove.

consentServices

{
"name": "spotify"
}

consentTranslations → purposes[media].services

{
"name": "spotify",
"title": "Spotify",
"description": "Plays embedded tracks, albums and podcasts."
}

Markup · HTML Embed inside a Consent Gate

<template data-cmp-service="spotify">
<iframe src="https://open.spotify.com/embed/track/TRACK_ID"
title="Spotify player" height="152" loading="lazy"
allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
style="display:block;width:100%;border:0;border-radius:12px"></iframe>
</template>
External media

Instagram posts

Shows embedded Instagram posts.

No first-party cookies to remove.

consentServices

{
"name": "instagram"
}

consentTranslations → purposes[media].services

{
"name": "instagram",
"title": "Instagram posts",
"description": "Shows embedded Instagram posts."
}

Markup · HTML Embed inside a Consent Gate

<template data-cmp-service="instagram">
<blockquote class="instagram-media"
data-instgrm-permalink="https://www.instagram.com/p/POST_ID/"></blockquote>
<script async src="https://www.instagram.com/embed.js"></script>
</template>

Scripts inside a template run when the template is inserted, so widget loaders find their markup.

External media

Google Fonts (CDN)

Loads web fonts from Google servers.

No first-party cookies to remove.

consentServices

{
"name": "google-fonts"
}

consentTranslations → purposes[media].services

{
"name": "google-fonts",
"title": "Google Fonts (CDN)",
"description": "Loads web fonts from Google servers."
}

Markup · Custom Code

<link rel="stylesheet" data-cmp-service="google-fonts"
data-href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap">

Better: upload the font files to Webstudio Assets. Self-hosted fonts need no consent and never flash a fallback font.

Purpose · functional

Functional

Enable features such as live chat, scheduling and spam protection.

Functional

Calendly

Lets visitors book appointments directly on the page.

No first-party cookies to remove.

consentServices

{
"name": "calendly"
}

consentTranslations → purposes[functional].services

{
"name": "calendly",
"title": "Calendly",
"description": "Lets visitors book appointments directly on the page."
}

Markup · HTML Embed inside a Consent Gate

<template data-cmp-service="calendly">
<div class="calendly-inline-widget"
data-url="https://calendly.com/YOUR_NAME/30min"
style="min-width:320px;height:700px"></div>
<script src="https://assets.calendly.com/assets/external/widget.js" async></script>
</template>
Functional

HubSpot

Chat, forms and visitor tracking for our CRM.

Cookies removed on decline: __hssc, __hssrc, __hstc, hubspotutk, messagesUtk

consentServices

{
"name": "hubspot",
"cookies": [
"__hstc",
"hubspotutk",
"__hssc",
"__hssrc",
"messagesUtk"
]
}

consentTranslations → purposes[functional].services

{
"name": "hubspot",
"title": "HubSpot",
"description": "Chat, forms and visitor tracking for our CRM."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="hubspot" id="hs-script-loader"
data-src="https://js.hs-scripts.com/XXXXXXXX.js"></script>
Functional

Intercom

Live chat and customer support messenger.

Cookies removed on decline: ^intercom-

consentServices

{
"name": "intercom",
"cookies": [
"^intercom-"
]
}

consentTranslations → purposes[functional].services

{
"name": "intercom",
"title": "Intercom",
"description": "Live chat and customer support messenger."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="intercom">
window.intercomSettings = { api_base: "https://api-iam.intercom.io", app_id: "XXXXXXXX" };
/* followed by the Intercom loader snippet, unchanged */
</script>
Functional

Crisp

Live chat widget.

Cookies removed on decline: ^crisp-client

consentServices

{
"name": "crisp",
"cookies": [
"^crisp-client"
]
}

consentTranslations → purposes[functional].services

{
"name": "crisp",
"title": "Crisp",
"description": "Live chat widget."
}

Markup · Custom Code

<script type="text/plain" data-cmp-service="crisp">
window.$crisp = [];
window.CRISP_WEBSITE_ID = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
(function () { var s = document.createElement("script");
s.src = "https://client.crisp.chat/l.js"; s.async = 1;
document.head.appendChild(s); })();
</script>
Functional

Google reCAPTCHA

Protects forms against spam and abuse.

No first-party cookies to remove.

consentServices

{
"name": "google-recaptcha"
}

consentTranslations → purposes[functional].services

{
"name": "google-recaptcha",
"title": "Google reCAPTCHA",
"description": "Protects forms against spam and abuse."
}

Markup · HTML Embed next to the form

<script type="text/plain" data-cmp-service="google-recaptcha"
data-src="https://www.google.com/recaptcha/api.js"></script>

Wrap the form in a Consent Gate so visitors can allow reCAPTCHA right where they need it.

Copy & paste

Complete configuration

All services on this page combined. Start here, then delete what you don’t need.

consentServices

[
{
"name": "consent-manager",
"required": true
},
{
"name": "google-analytics",
"cookies": [
"^_ga",
"_gid",
"^_gat"
]
},
{
"name": "matomo",
"cookies": [
"^_pk_id",
"^_pk_ses",
"^_pk_ref"
]
},
{
"name": "plausible"
},
{
"name": "rybbit"
},
{
"name": "microsoft-clarity",
"cookies": [
"_clck",
"_clsk"
]
},
{
"name": "hotjar",
"cookies": [
"^_hj"
]
},
{
"name": "google-ads",
"cookies": [
"^_gcl"
]
},
{
"name": "meta-pixel",
"cookies": [
"_fbp",
"_fbc"
]
},
{
"name": "linkedin-insight",
"cookies": [
"li_fat_id",
"li_giant",
"ln_or"
]
},
{
"name": "tiktok-pixel",
"cookies": [
"_ttp",
"_tt_enable_cookie"
]
},
{
"name": "pinterest-tag",
"cookies": [
"_pin_unauth",
"_epik",
"_derived_epik",
"^_pinterest_"
]
},
{
"name": "youtube"
},
{
"name": "vimeo"
},
{
"name": "google-maps"
},
{
"name": "spotify"
},
{
"name": "instagram"
},
{
"name": "google-fonts"
},
{
"name": "calendly"
},
{
"name": "hubspot",
"cookies": [
"__hstc",
"hubspotutk",
"__hssc",
"__hssrc",
"messagesUtk"
]
},
{
"name": "intercom",
"cookies": [
"^intercom-"
]
},
{
"name": "crisp",
"cookies": [
"^crisp-client"
]
},
{
"name": "google-recaptcha"
}
]

consentTranslations[0].purposes (English)

[
{
"id": "essential",
"title": "Essential",
"description": "Required for the website to work, for example to remember your privacy choices.",
"services": [
{
"name": "consent-manager",
"title": "Consent manager",
"description": "Stores your privacy choices in the cmp_consent cookie."
}
]
},
{
"id": "analytics",
"title": "Analytics",
"description": "Help us understand how visitors use the website so we can improve it.",
"services": [
{
"name": "google-analytics",
"title": "Google Analytics 4",
"description": "Collects pseudonymous usage statistics."
},
{
"name": "matomo",
"title": "Matomo",
"description": "Self-hosted or cloud analytics with pseudonymous visitor statistics."
},
{
"name": "plausible",
"title": "Plausible Analytics",
"description": "Cookieless, privacy-friendly website statistics."
},
{
"name": "rybbit",
"title": "Rybbit",
"description": "Cookieless, privacy-friendly web and product analytics."
},
{
"name": "microsoft-clarity",
"title": "Microsoft Clarity",
"description": "Session recordings and heatmaps to improve usability."
},
{
"name": "hotjar",
"title": "Hotjar",
"description": "Heatmaps, recordings and feedback surveys."
}
]
},
{
"id": "marketing",
"title": "Marketing",
"description": "Measure the performance of our advertising and show more relevant ads.",
"services": [
{
"name": "google-ads",
"title": "Google Tag Manager",
"description": "Loads marketing and analytics tags configured in Google Tag Manager."
},
{
"name": "meta-pixel",
"title": "Meta Pixel",
"description": "Measures the effectiveness of ads on Facebook and Instagram."
},
{
"name": "linkedin-insight",
"title": "LinkedIn Insight Tag",
"description": "Conversion tracking and retargeting for LinkedIn ads."
},
{
"name": "tiktok-pixel",
"title": "TikTok Pixel",
"description": "Measures the performance of TikTok ad campaigns."
},
{
"name": "pinterest-tag",
"title": "Pinterest Tag",
"description": "Conversion tracking and audiences for Pinterest ads."
}
]
},
{
"id": "media",
"title": "External media",
"description": "Load content from third-party platforms such as videos, maps and social posts.",
"services": [
{
"name": "youtube",
"title": "YouTube",
"description": "Plays embedded videos. YouTube may set cookies once a video loads."
},
{
"name": "vimeo",
"title": "Vimeo",
"description": "Plays embedded videos hosted on Vimeo."
},
{
"name": "google-maps",
"title": "Google Maps",
"description": "Shows interactive maps."
},
{
"name": "spotify",
"title": "Spotify",
"description": "Plays embedded tracks, albums and podcasts."
},
{
"name": "instagram",
"title": "Instagram posts",
"description": "Shows embedded Instagram posts."
},
{
"name": "google-fonts",
"title": "Google Fonts",
"description": "Loads web fonts from Google servers."
}
]
},
{
"id": "functional",
"title": "Functional",
"description": "Enable features such as live chat, scheduling and spam protection.",
"services": [
{
"name": "calendly",
"title": "Calendly",
"description": "Lets visitors book appointments directly on the page."
},
{
"name": "hubspot",
"title": "HubSpot",
"description": "Chat, forms and visitor tracking for our CRM."
},
{
"name": "intercom",
"title": "Intercom",
"description": "Live chat and customer support messenger."
},
{
"name": "crisp",
"title": "Crisp",
"description": "Live chat widget."
},
{
"name": "google-recaptcha",
"title": "Google reCAPTCHA",
"description": "Protects forms against spam and abuse."
}
]
}
]

Only keep the services you actually use. Every listed service appears in the preferences modal, and removing or adding services asks returning visitors for consent again.

We use cookies and similar technologies for essential functions and, with your consent, for analytics, marketing and embedded media. You can change your choice at any time. Learn more in our privacy policy.

Our services have changed since your last visit. Please review your choice.

Wir verwenden Cookies und ähnliche Technologien für notwendige Funktionen und, mit Ihrer Einwilligung, für Statistik, Marketing und eingebettete Medien. Sie können Ihre Auswahl jederzeit ändern. Mehr dazu in unserer Datenschutzerklärung.

Unsere Dienste haben sich seit Ihrem letzten Besuch geändert. Bitte prüfen Sie Ihre Auswahl.

Usamos cookies y tecnologías similares para funciones esenciales y, con tu consentimiento, para analítica, marketing y contenido incrustado. Puedes cambiar tu elección en cualquier momento. Más información en nuestra política de privacidad.

Nuestros servicios han cambiado desde tu última visita. Revisa tu elección.

نستخدم ملفات تعريف الارتباط والتقنيات المشابهة للوظائف الأساسية، وبموافقتك للإحصاءات والتسويق والمحتوى المضمّن. يمكنك تغيير اختيارك في أي وقت. لمعرفة المزيد، اطّلع على سياسة الخصوصية.

تغيّرت خدماتنا منذ زيارتك الأخيرة. يُرجى مراجعة اختيارك.