Premier-Only Feature
As of 2025, most major browsers no longer support Cross-Site Scripting. Due to that, Osano's legacy "cross-domain support" option (available in-app) will not function on Google Chrome browsers operating on version 115 or newer, or other relevant browsers with restrictions. If cross-domain support is enabled, users will be prompted to provide consent on all listed domains individually.
Due to the nature of cross-domain support, browser restrictions may apply (e.g., Safari's default settings, Firefox default settings, Chrome v115).
Alternatively, Osano's cross-device consent capability allows you to associate a user's consent choices with a unique identifier, enabling those preferences to follow them as they interact with your brand across different domains and devices. This feature, which can only be enabled by contacting Osano Support, uses the userData API string to link consent behavior to a specific user without ever transmitting raw identifiers to Osano servers.
Normally, a user who visits your properties from multiple devices or browsers must provide consent on each one individually. With cross-device consent enabled and configured, Osano uses your provided userData identifier to:
With this in place, users don't have to re-confirm their choices on every device, and your brand delivers a more consistent, respectful experience. Accepting, rejecting, and withdrawing consent all sync across devices the same way.
Note that cross-device consent does not transmit user identifiers to Osano, and does not automatically merge anonymous and known user sessions.
Step 1: Identify the user. As soon as a user logs in or is otherwise identified, assign a unique, consistent identifier using the userData property.
Step 2: Store consent locally. When a user makes a consent decision, it's stored locally along with a one-way hashed version of the identifier.
Step 3: Retrieve consent elsewhere. If that same identifier is used on another site or device, Osano automatically checks for the user's saved preferences and applies them. No banner is shown unless new purposes are introduced.
Step 4: Clear the identifier on sign-out. When the user signs out, set userData to an empty string ('') or reload the page without setting userData. This clears the consent stored on the device so the next person who uses it is not treated as the previous user.
Cross-device consent affects what your visitors see in two places. Both are shown automatically on every configuration where cross-device consent is enabled, on every banner template and in every region, and neither can be turned off or edited. They exist so that your consent experience meets the multi-device transparency requirements of the IAB Transparency & Consent Framework (Policy v5.0.b) and CNIL's recommendation on multi-device consent.
The first layer of your consent banner includes a sentence letting visitors know that their choices may apply across the devices where they're signed in:
Your preferences are saved across the devices where you're signed in, and may differ from the choices you make here.
It appears in the banner body text, after the category list and before the Privacy Policy links, on every banner load. The rest of your banner text is unchanged. The sentence is translated through the same localization as the rest of your banner.
If a visitor makes a consent choice before signing in, and their account already has a different saved choice, the saved choice is applied when they sign in (see "Visitor consents before logging in" below). Because the visitor just chose something different, Osano shows a short notice so they know which preferences are in effect and how to change them:
Your account's saved preferences now apply, replacing the choices you just made here. Manage Preferences
The Manage Preferences link opens the preference center, where the visitor can make a new choice. A new choice saved there becomes the account's record and syncs to the visitor's other devices.
The notice:
The notice is informational only. It does not ask for or record consent, and it does not re-open the consent banner.
Two settings for the cross-device notice are available in the Osano web app on configurations where cross-device consent is enabled. They are hidden on other configurations.
Where: Consent Management > your configuration > Styles tab, next to the Opt-Out Widget settings.
Sets how long the cross-device notice stays on screen, in whole seconds. The timer pauses while the visitor hovers over the notice, and if they leave the page first, the notice shows again on the next page.
As with any configuration change, save and publish for the new duration to take effect.
Where: Consent Management > your configuration > Preview tab > Simulate cross-device consent conflict.
Shows the cross-device notice on your preview, using your saved duration, so you can see how it looks on your banner template and how long it stays up without creating a real conflict. The preview does not change any stored consent.
This snippet sets the user's ID before Osano loads:
<script>
window.Osano = window.Osano || function () { Osano.data.push(arguments) };
Osano.data = Osano.data || [];
Osano('userData', 'user-12345');
</script>
<script src="https://cmp.osano.com/XXXXXXXX.js"></script>Example usage:
console.log(window.Osano.cm.userData); // Output: 'user-12345'On sign-out:
window.Osano.cm.userData = '';This value can be a string or a number (automatically converted to a string) and must be 128 characters or fewer.
Want help setting it up? Visit the developer docs for more.
osano.js associated with the configurations you want to enable userData usage on.We recommend using a random, opaque identifier, such as a UUID that your system generates for each user, rather than an email address, name, customer number, or any other value that identifies a person on its own.
Although Osano one-way hashes the userData value before storing it and never receives the raw value, an opaque identifier is still the safer choice: it can't be reversed into personal data, and it keeps your consent records separate from your other customer data. For operators subject to CNIL's multi-device consent recommendation (Article 7.5), an identifier that does not itself reveal the user's identity is the expected approach.
Osano does not validate the format of the identifier you send. This is guidance, not enforcement.
Visitor consents before logging in or creating an account
Preferences made before a user identity is established are stored anonymously and cannot be associated with an account after the fact. Once the visitor logs in or creates an account, Osano applies the saved preferences for that user if any exist, even if the visitor's anonymous choice is more recent. If the saved preferences differ from what the visitor just chose, the cross-device notice is shown so the visitor knows which preferences are in effect and can change them. If no saved preferences exist for that user, the visitor is prompted to consent.
Returning user on the same device
If the visitor has previously consented in this browser and their remote record is more recent (for example, because they updated preferences on another device), Osano updates the local record to match. No re-prompt is shown.
Returning user whose local record is more recent
If the local record is newer than the remote one, Osano uses the local version. This typically means the remote record failed to update previously. No re-prompt is shown.
User rejects or withdraws consent on one device
A Reject All, or a withdrawal of consent the user previously gave, syncs to the user's other devices the same way an Accept All does. It is applied on the other device the next time the user loads a page there while identified. On IAB TCF configurations, the refusal is reflected in the TC string and purpose consents on that device as well.
Different user on a shared device
If the user identifier provided does not match the one attached to the local consent record, Osano treats them as a different user. It will apply that user's remote record if one exists, or clear the local record and prompt them to re-consent. The cross-device notice is never shown in this case, and nothing about the previous user's choices is displayed.
User signs out
When your site sets userData to an empty string (or reloads the page without userData), Osano clears the consent stored on the device and shows the banner again for the next visitor. Nothing is recorded to the signed-out user's account. If a cross-device notice was on screen at sign-out, it is hidden; it will show again if the same user signs back in.
When will the banner reappear?
Even with cross-device consent configured correctly, the banner will reappear if the identifier is not recognized (e.g., the user is anonymous), new consent purposes or vendors have been introduced on a property, or the userData value is set after the CMP loads rather than before.
userData value is hashed before storage and never sent to Osano servers.userData Identifier" above.Will a visitor ever lose their consent preferences?
Not permanently. If Osano cannot match a local record to the current user identity, it will prompt the visitor to re-consent. Once they do, those preferences are saved against their user identifier and will sync across devices going forward.
Why is my visitor being prompted to re-consent after logging in?
This is expected behavior when no remote consent record exists for that user yet. It typically happens the first time a visitor logs in after CDC has been enabled, or if they previously consented anonymously before their account was created. After re-consenting, their preferences are tied to their identity and they should not be prompted again.
Why did my visitor see a notice about their saved preferences after logging in?
They made a consent choice before signing in, and their account already had a different choice saved. Osano applied the saved choice and showed the cross-device notice so the visitor knows which preferences are in effect and can change them through Manage Preferences. This is expected and required for multi-device transparency.
Why did the notice show up twice?
The visitor navigated to another page before the notice's timer ran out. The notice shows again on the next page, for the full duration, until it has been displayed in full once or the visitor opens Manage Preferences. You can adjust how long it stays up with the Cross-device notice duration setting on the Styles tab.
Can I turn the notice off, change what it says, or remove the Manage Preferences link?
No. The disclosure text, the notice text, and the Manage Preferences link are fixed. You can change how long the notice stays on screen and which side of the page it appears on (it follows your Opt-Out Widget Position setting).
The notice is overlapping another element on my page. What can I do?
The notice appears above the Osano widget on the side set by your Opt-Out Widget Position setting. Changing that setting moves the notice to the other side. If your site repositions the Osano widgets with custom CSS, the notice may still overlap them while it's on screen.
Do anonymous consent selections carry over when a user logs in?
No. Preferences captured before a user identity is established are stored without a user ID and cannot be linked to an account after the fact. Once the user is identified, Osano looks for a remote record tied to their user identifier instead. If one exists and it differs from the anonymous choice, the visitor sees the cross-device notice.
What happens if the same user is on multiple devices?
Osano compares the local and remote records by timestamp and applies whichever is more recent. If a visitor updated their preferences on another device, those preferences will be applied the next time they visit in this browser, with no re-prompt required.
What happens if two different users share a device?
Osano detects the mismatch between the stored user identifier and the one currently provided. It will not apply one user's preferences to another, and it will not show either user anything about the other's choices. The new user will either have their remote record applied or be prompted to re-consent if no remote record exists. To make sure this works, set userData to an empty string when a user signs out.
Is CDC enabled by default?
No. CDC must be enabled by Osano Support for your individual Osano configurations. If you are unsure whether it is enabled for one of your configs, or if you'd like it to be enabled for one of your configurations, contact Osano Support.