Deployment Paths
DataGrail Consent needs a small piece of JavaScript (consent.js) on your site to host the banner and control your trackers. How that script gets onto the page is the main decision you need to make, and it depends on what tag manager you already run.
This guide walks you through that decision. Each path ends with a link to the full instructions for your setup.
Two Independent Choices
Most confusion about deployment comes from treating these as one decision. They are separate, and you make both:
| Choice | What It Controls | Your Options |
|---|---|---|
| Container type | Whether DataGrail syncs and manages your tag manager's tags | GTM, Adobe, or DataGrail container |
| Script delivery | How consent.js reaches the page | Through your tag manager, or embedded in your <head> |
The important consequence: choosing embedded delivery does not cost you tag management. A GTM or Adobe container with embedded delivery still gates your tags exactly as it would otherwise. You only lose tag management if you pick a DataGrail container, because there is no tag manager connected to sync from.
Choose Your Path
Start with the tag manager you already have on the site.
You would answer yes to "need control over when consent.js loads" if any of the following apply:
- You run A/B testing or personalization software and need consent to load in a specific order relative to it
- Your visitors' browsers or extensions block your tag manager's domain, which would block consent along with it
- You want consent to load even if your tag manager itself fails to load
If none of these apply, take the tag manager delivery route — it is the simplest option and requires no code changes to your site. The same question applies on Adobe, covered in Adobe Tags.
GTM Delivery
This is the recommended path for most websites, and the one most readers are already set up for — over 90% of businesses already have Google Tag Manager on their site. DataGrail publishes consent.js into your GTM container as a tag, so no code changes to your site are needed at all.
| Attribute | Details |
|---|---|
| Best for | Most websites — the simplest, no-code path |
| You place code on your site | No |
| GTM tag management | Yes |
| Prerequisites | GTM on the site, publish permissions, at least one live container version |
Three things make this the strongest option:
- No-code applies to every future change, not just setup. Your GTM tags are gated by consent from DataGrail, so adding or recategorizing a tracker later never requires a developer or a site deploy.
- Tags are synced and surfaced automatically. DataGrail imports your GTM tags for classification and keeps them in sync, alerting you when new ones appear — so a tag added by your marketing team does not silently go ungoverned.
- Google Consent Mode is available on this path. This is the only setup that lets you strike the balance between honoring privacy choices and keeping your analytics and advertising working.
Consent Mode is worth understanding before you choose. It is implemented through GTM's own consent APIs, so it requires a GTM container — there is no equivalent on the Adobe or DataGrail paths. Instead of simply blocking Google tags when a visitor declines, DataGrail passes the consent state to Google, and Google's tags adjust their own behavior. In Advanced mode, denied tags still send anonymous, cookieless pings that carry no personal identifiers, which Google uses to build an advertiser-specific conversion model rather than falling back to a generic one. Without those signals, tags are blocked outright and Google receives nothing at all.
Follow the Google Tag Manager guide →
Embedded Delivery
You keep everything from GTM delivery, and additionally control where consent.js sits on the page. You place a script tag in your <head>, and DataGrail stops injecting the script through GTM.
| Attribute | Details |
|---|---|
| Best for | Sites with load-order requirements or browser blocking concerns |
| You place code on your site | Yes — one script tag in <head> |
| GTM tag management | Yes — unchanged, including Google Consent Mode |
| Prerequisites | GTM on the site with publish permissions, plus the ability to edit your <head> |
Follow the Embedded Containers With GTM instructions →
Deploy the embedded script to your <head> first, then turn on Embedded Deployment and publish. Until you publish, GTM is still loading the script, so this order means the banner is never missing from your site.
Adobe Tags
DataGrail publishes a rule to your Adobe property that loads consent.js, and creates a data element for each consent category. Adobe has no per-tag consent setting, so you gate your own rules by adding a condition that reads those data elements.
| Attribute | Details |
|---|---|
| Best for | Sites running Adobe Experience Platform Tags (formerly Adobe Launch) |
| You place code on your site | No |
| Tag management | Rules are gated by conditions you add to them |
| Prerequisites | Adobe integration connected, property added as a container, edit permissions on the property |
Adobe requires an extra step the GTM paths do not: after adding a consent condition to a rule, you must build it through your own library and promote it through development and staging to production. A change published to development is not yet enforced for real visitors.
You can also deliver consent.js as an embedded script on an Adobe property. Just as with GTM, this is independent of your container type — you keep your consent data elements and rule gating either way, and only change how the script reaches the page. Choose embedded delivery if you need control over load order, or if you want consent to load even when Adobe does not.
Follow the Adobe Experience Platform Tags guide →
Reach out to support@datagrail.io before placing the embedded script on an Adobe property. Your Adobe consent rule loads consent.js on its own, so we need to make sure it stops doing so once your embedded script is live — otherwise the script loads twice.
No Tag Manager
Use a DataGrail container when the site has no supported tag manager. You place the script in your <head>, and there are no tag manager tags to sync — so you manage each tracker directly.
| Attribute | Details |
|---|---|
| Best for | Sites with no supported tag manager |
| You place code on your site | Yes — one script tag in <head> |
| Tag management | None — no tag manager is connected |
| Prerequisites | Ability to edit your <head> |
Because nothing syncs automatically, plan for how you will find and control trackers:
- Use the Privacy Inspector to discover what is running on the site
- Use the ScriptControl plugin for inline scripts
- Use cookie management for cookies not set by a managed script
- Use callbacks for services that need to be told about consent changes
Follow the DataGrail Containers instructions →
Use embedded delivery with a GTM container instead of a DataGrail container. You keep tag syncing, classification, and Google Consent Mode, and you can still deliver consent.js from your own <head>. A DataGrail container would give up tag management for no benefit.
More Than One Container Per Page
consent.js is designed to load exactly once per page. If your site loads more than one tag manager container on the same page, contact support@datagrail.io before you deploy so we can work through the right configuration with you.
If your containers correspond to genuinely different sites or brands rather than one shared page, Consent Projects let you configure and publish each one independently.
Before You Go Live
Whichever path you take, the remaining setup is the same — categorize your trackers, configure policies, and customize the banner. Both deployment guides walk through these in order.
Deploying a consent management platform is a major change to your website, because consent interacts with every other script and cookie on the page. Configure and test on a staging site first, or use Test Mode to preview banner behavior without affecting real consent data.
Once you have published for the first time, follow the testing guide to validate your implementation.
Disclaimer: The information contained in this message does not constitute as legal advice. We would advise seeking professional counsel before acting on or interpreting any material.