# How to Set Up Google Tag Manager

Follow this step-by-step guide to set up Google Tag Manager with Consent Pro.

<iframe class="youtube-tutorial" src="https://www.youtube.com/embed/IQjwteqskfY" title="Consent Pro GTM setup tutorial - Cookie consent for Webflow" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

## Choose triggers and consent checks first

Choose Basic or Advanced for Google measurement before changing Google tags. If you have not decided yet, review both options first.

| Tag purpose                                      | Recommended trigger                      | Consent checks                                                                  |
| ------------------------------------------------ | ---------------------------------------- | ------------------------------------------------------------------------------- |
| Consent Pro defaults                             | Consent Initialization — All Pages       | Establish approved defaults before measurement                                  |
| GA4 initialization — Basic                       | `analytics-activated`                    | Require `analytics_storage`                                                     |
| Google initialization — Advanced                 | Initialization — All Pages               | Built-in consent behavior; no additional `analytics_storage` firing restriction |
| Consent-dependent analytics initialization       | `analytics-activated`                    | Matching analytics consent checks                                               |
| Consent-dependent marketing initialization       | `marketing-activated`                    | Matching marketing consent checks                                               |
| Consent-dependent personalization initialization | `personalization-activated`              | Matching personalization consent checks                                         |
| Purchase, lead, click or SPA navigation          | Keep the original business-event trigger | Appropriate checks for the selected mode and actual purpose                     |

Category activation events fire once per page when the category becomes active, including remembered consent on returning visits. Choose the category from the tag's actual purpose. Reserve `consent-updated` for deliberately configured update handling: it also follows rejection and can occur repeatedly. Review an existing valid setup before replacing its triggers.

Activation does not stop already-loaded code after withdrawal. Test subsequent requests, consent persistence and any vendor shutdown behavior separately. See [Consent-aware GTM troubleshooting](/knowledge/gtm-troubleshooting).

## 1. Remove the `<noscript>` Tag from Google Tag Manager

Go to *Site Settings* > *Custom Code* and remove the Google Tag Manager `<noscript>` tag from the Footer code.

![docs (27).png](</gtm/images/docs_(27).png>)

With scripting enabled, normal HTML `<noscript>` content is inactive. A tracking fallback can run when JavaScript and the CMP are disabled; remove tracking fallbacks while preserving harmless no-script content.

## 2. Import the Consent Pro Template to Google Tag Manager

1. Download the Consent Pro GTM template:

<a class="download-template" href="/gtm/templates/Consent%20Pro%20-%20GTM%20Template.tpl" download>
  <span class="download-template-icon"></span>
  <span class="download-template-info">
    <strong>Consent Pro — GTM Template</strong>
    <small>.tpl &nbsp;·&nbsp; GTM Custom Template</small>
  </span>
  <span class="download-template-cta">Download</span>
</a>

2. Open your **Google Tag Manager** container.
3. Navigate to ’**Templates’** in the left sidebar.
4. In the ’**Templates’ tab**, click **’New’**.

![docs (25).png](</gtm/images/docs_(25).png>)

5. Click the **three dots icon** (⋮) in the top-right corner and select ’**Import’**.

![docs (26).png](</gtm/images/docs_(26).png>)

6. Select the `Consent Pro - GTM Template.tpl` file you just downloaded. The Template Editor will load with the Consent Pro configuration.

![docs (10) (2).png](</gtm/images/docs_(10)_(2).png>)

7. Agree to the **Community Template Gallery Terms of Service**, then click ’**Save’** to add the template to your workspace.

![docs (28).png](</gtm/images/docs_(28).png>)

8. Close the Template Editor.

![docs (9) (2).png](</gtm/images/docs_(9)_(2).png>)

Done ✅

## 3. Create the Consent Initialization Tag

1. In the **’Tags’** section, click on ’**New’**.

![docs (29).png](</gtm/images/docs_(29).png>)

2. Click on ’**Tag Configuration’**

![docs (30).png](</gtm/images/docs_(30).png>)

3. Select ’**Consent Pro - GTM Template’** from the list in the Custom section.

![docs (10) (3).png](</gtm/images/docs_(10)_(3).png>)

4. Click on “**Triggering**”.

![docs (31).png](</gtm/images/docs_(31).png>)

5. Select ’**Consent Initialization - All Pages’**.
   This is crucial as it ensures Consent Pro loads before any collection tags.

![docs (11) (1).png](</gtm/images/docs_(11)_(1).png>)

6. Name your tag (e.g., "Consent Pro Init") and click ’**Save’**.

![docs (12) (1).png](</gtm/images/docs_(12)_(1).png>)

You have successfully added the Consent Init tag ✅

## 4. Configure Region-Specific Consent Settings

Region-specific consent settings allow you to define default consent states based on the user's geographic location. This is particularly useful for complying with regional privacy regulations such as GDPR in the European Union or CCPA in California.

By configuring these settings, you can ensure that users from specific regions have their consent preferences initialized appropriately before any tags fire, providing a compliant and seamless experience across different jurisdictions.

1. In the ‘**Tags’** tab, select the ‘Consent Pro Init’ tag you just added.

![docs (13) (1).png](</gtm/images/docs_(13)_(1).png>)

2. Click on ‘**Tag Configuration’**.

![docs (14) (1).png](</gtm/images/docs_(14)_(1).png>)

3. Click on the ’**Region-Specific Consent Settings’** accordion to expand it.

![docs (32).png](</gtm/images/docs_(32).png>)

4. Click **‘Add Region Setting’** to create a new region configuration.

![docs (33).png](</gtm/images/docs_(33).png>)

5. Select the storage fields based on the examples below.

|                             | **Opt In** | **Opt Out** | **Don't Sell** | **Informational** |
| --------------------------- | ---------- | ----------- | -------------- | ----------------- |
| **Analytics Storage**       | Denied     | Granted     | Granted        | Granted           |
| **Ad Storage**              | Denied     | Granted     | Granted        | Granted           |
| **Functionality Storage**   | Denied     | Granted     | Granted        | Granted           |
| **Personalization Storage** | Denied     | Granted     | Granted        | Granted           |
| **Ad User Data**            | Denied     | Granted     | Granted        | Granted           |
| **Ad Personalization**      | Denied     | Granted     | Granted        | Granted           |

If you have an ‘**Opt-in banner’** added to Consent Pro,

Select **’Denied’** in all fields.

![docs (1) (1).png](</gtm/images/docs_(1)_(1).png>)

If you have an ‘**Opt-out’, ‘Do Not Sell’ or ‘Informational Banner’** added to Consent Pro,

Select **’Granted’** in all fields.

![docs (34).png](</gtm/images/docs_(34).png>)

**Why this matters**

- **Opt In** (e.g., GDPR): Users must explicitly consent before any tracking. GTM defaults use `Denied` for storage and relevant signals. A chosen Basic approach also needs firing gates; Advanced may send cookieless pings while denied.
- **Opt Out / Don't Sell / Informational**: Tracking is allowed by default. GTM defaults should be `Granted` since users can opt out later if they choose.

6. Fill in **‘Regions’** with the region you selected when you created the banner.

Go to **‘Banners’** and click the copy button to copy the regions in the **‘Regions’** column.

Paste them into the **‘Regions’** field in Google Tag Manager.

![docs (5) (1).png](</gtm/images/docs_(5)_(1).png>)

7. Click **‘Add’** to finish the region settings.

![docs (6) (1).png](</gtm/images/docs_(6)_(1).png>)

**Note:** If you have more than one banner created in Consent Pro, feel free to add more region settings. Here is an example of a setup with multiple banners.

![docs (35).png](</gtm/images/docs_(35).png>)

8. **Optional:** review whether you need advanced settings.

![docs (7) (1).png](</gtm/images/docs_(7)_(1).png>)

- **Wait for consent update**: Default is `1000`ms. This briefly delays Google consent processing while an update is expected. It does not wait indefinitely for a visitor, and does not block third-party tags or replace additional consent checks.
- **URL passthrough**: Enable if you want to pass advertising click information (gclid, dclid, etc.) through URLs while waiting for consent. Helps preserve attribution data during consent flow.
- **Ads data redaction**: Enable if you want to remove advertising identifiers from requests when consent is denied. Routes traffic through cookieless domains for privacy compliance.

9. Click **'Save'** to finish the Regions setup.

![docs (36).png](</gtm/images/docs_(36).png>)

## Basic vs Advanced Consent Mode

Consent Pro supports both [Basic and Advanced Google Consent Mode](/webflow/google-consent-mode). Select the intended approach before changing Google tags. Steps 5–7 below describe consent-dependent initialization and additional checks for a chosen Basic approach. Advanced allows supported Google tags to send cookieless pings while storage is denied; use the [dedicated guide](/webflow/google-consent-mode) for its separate Google-tag configuration. Preserve business-event triggers in either approach.

<a id="_5-create-consent-update-trigger"></a>

## 5. Create category activation triggers

Create only the category triggers needed by the approved tags:

1. In **Triggers**, choose **New**.
2. Name the trigger **Analytics Activated**, **Marketing Activated** or **Personalization Activated**.
3. Choose **Custom Event**.
4. Set the exact **Event name** to `analytics-activated`, `marketing-activated` or `personalization-activated`, respectively. Select **All Custom Events** for that exact name; leave regex matching off.
5. Save the trigger.

For GA4 initialization in **Basic** mode, use **Analytics Activated** and require `analytics_storage`. For the ordinary Google tag in **Advanced** mode, use **Initialization — All Pages** with built-in consent behavior instead. The Consent Pro defaults tag stays on **Consent Initialization — All Pages** in both modes.

## 6. Configure consent-aware initialization triggers

Use the matching category trigger for consent-dependent initialization only. For example, a marketing pixel's initialization uses **Marketing Activated** (`marketing-activated`) plus the marketing checks appropriate to its actual purpose.

1. Open the initialization tag under **Tags**.
2. Review its existing triggers, consent settings and firing frequency. An existing valid integration does not need automatic replacement.
3. For an approved change, replace its page-load trigger with the matching category activation trigger. Leaving an ungated page-load trigger attached would still let the tag fire early.
4. Add the matching consent checks in Step 7.
5. Repeat only for approved initialization tags, then verify their behavior in Tag Assistant and the browser.

Keep purchase, lead, form-submit, click and SPA navigation triggers intact. They describe business events, not consent changes. Add appropriate checks for the selected mode and purpose. A blocked business event is not automatically replayed when the visitor later accepts.

`consent-updated` remains available for deliberately configured update handling with appropriate checks and firing frequency. It also follows rejection; do not use it as proof that a category was accepted. Category activation does not stop already-loaded code after withdrawal. See [Consent-aware GTM troubleshooting](/knowledge/gtm-troubleshooting).

## 7. Add the respective additional consent checks for your tags.

Require the consent types that match each blocked tag’s purpose. Native Google tags in Advanced mode use their built-in checks instead; adding additional checks changes that behavior.

1. Ensure the website was scanned recently, or scan the website again.

Our solution will detect the scripts added to Google Tag Manager and help you categorize them. This is an important step to make sure the categories match in the app and in Google Tag Manager.

![docs (53).png](</gtm/images/docs_(53).png>)

And also to show users the tracker details in the preferences panel.

![image.png](/gtm/images/image.png)

**Note:** Category activation events are the recommended starting point for consent-dependent initialization. Preserve business-event triggers. A scan cannot prove enforcement for arbitrary GTM tags; verify the published container in Tag Assistant.

⚠️ If your script uses `document.write`, make sure to enable **“Support document.write”** in the tag settings. Otherwise, the script may not execute correctly and may not be detected by Consent Pro.

1. Select the tag you want to add the additional consent check.
   For this example, we are going to use the **'Facebook Pixel'** tag again:

![docs (46).png](</gtm/images/docs_(46).png>)

2. Click on **‘Tag Configuration’.**

![docs.png](/gtm/images/docs%201.png)

3. Go to **'Advanced Settings'** > **'Consent Settings'** 
   and select **'Require additional consent for tag to fire'.**

![docs (55).png](</gtm/images/docs_(55).png>)

4. Choose the additional consents based on the category in the app.
   (check the visual reference below):

![docs (57).png](</gtm/images/docs_(57).png>)

That means the Facebook Pixel script will only load when the user consents to the **'Marketing'** category or clicks on '**Accept All'**.

5. Visual reference for mapping the Consent Pro categories with additional consents:

![Frame 48096515 (2).png](</gtm/images/Frame_48096515_(2).png>)

| Consent Pro category | Google consent signals                             |
| -------------------- | -------------------------------------------------- |
| Analytics            | `analytics_storage`                                |
| Marketing            | `ad_storage`, `ad_user_data`, `ad_personalization` |
| Personalization      | `functionality_storage`, `personalization_storage` |
| Essential            | `security_storage`                                 |

6. Add applicable checks to consent-dependent tags, including conversion tags with their existing business-event triggers. GTM requires all selected checks to be granted. For supported Google tags in advanced mode, distinguish built-in behavior from additional firing restrictions.

**Note:** Some scripts or tags may set trackers with different categories, such as Gtag. In these cases, add multiple consent checks based on the categories in the app.

## 8. Submit and publish the changes in Google Tag Manager

1. Click on **'Submit'.**

![docs (47).png](</gtm/images/docs_(47).png>)

2. and **'Publish'.**

![docs (48).png](</gtm/images/docs_(48).png>)

## 9. Confirm that the Google Tag Manager setup is completed in the Consent Pro app

In the **‘Actions’** tab, check the checkbox in the Google Tag Manager message within the Consent Pro app.

![docs (49).png](</gtm/images/docs_(49).png>)

## Verify before completing setup

Test fresh rejection, analytics-only acceptance, marketing acceptance, returning visitors, purchase events, repeated updates, and withdrawal. Confirm consent defaults precede ordinary tags and inspect actual requests and cookies. See [the detailed verification checklist](/knowledge/gtm-troubleshooting#verification-checklist).
