Import your GTM container
Most sites arrive with a working container: a GA4 configuration, a handful of event tags, an Ads conversion, a Meta pixel pasted into a Custom HTML tag two agencies ago. The importer reads that container, shows you what each entity would become in TagEasy, and creates the rows you tick — keeping every GTM id so the next sync updates the originals in place instead of adding a copy next to each one.
Two ways to read the container
- Connected GTM workspace. If the site is connected through the Tag Manager API (Install tab), TagEasy reads tags, triggers, variables, enabled built-in variables and folders straight from the workspace. Every workspace sees the whole container, so the TagEasy workspace is a complete view.
- Upload a container export. In GTM go to Admin → Export Container, pick the live version, and upload the JSON (up to 5 MB). This works without an API connection — ids are kept so a later connection picks the originals up.
How to run an import
- Open the GTM sub-tab of your website (Events → GTM) and click Import existing container next to the publish panel. Choose the connected workspace or an export file and press Preview import.
- Review the plan. Each tag, trigger, trigger group and variable is listed with its classification (GA4 event, Google Ads conversion, Meta Pixel, Custom HTML, …), its account id, and the TagEasy row it would become. Supported entities are ticked by default; untick anything you want to leave alone.
- Read the findings. The review doubles as an audit of the container: duplicate tags, tags with no trigger, paused tags, legacy Universal Analytics, unused triggers and variables, ids that disagree between tags, Google Ads tags without a Conversion Linker, and ad pixels in Custom HTML with no consent settings. Each finding carries a suggested action.
- Import, then sync. Applying the plan creates the TagEasy rows inside one transaction and records a container version before and after, so the import is one restore away from being undone. Nothing changes in GTM until you press Sync TagEasy & publish.
What is adopted
| In GTM | In TagEasy |
|---|---|
| GA4 Configuration / Google tag with a G- id | GA4 Config tag |
| GA4 Event | GA4 Event tag (event parameters and user properties carried over) |
| Google Ads Conversion Tracking, Remarketing, Conversion Linker | The matching native tag type |
| Custom HTML — Meta, TikTok, Pinterest, Snap, LinkedIn, Microsoft UET, Reddit, X | Custom HTML tag with the vendor and id recognised; the canonical Meta / TikTok base snippet becomes the typed pixel tag |
| Other Custom HTML | Custom HTML tag, verbatim |
| Custom Event trigger | A link to the TagEasy event that listens for the same dataLayer event, or a native Custom Event trigger when there is none |
| Click, link click, form, scroll, visibility, timer, history, YouTube, page view, DOM ready, window loaded, initialization, consent initialization | Native trigger with its filters and settings |
| Trigger group | Trigger group with its importable members |
| Constant, JavaScript, Data Layer, Lookup table, RegEx table, URL, JavaScript variable, 1st-party cookie | GTM variable of the same type |
Tag consent settings ("require additional consent") become a TagEasy consent condition on the tag, so the gate survives the move. Priority, firing option, setup and teardown tags and the paused flag are carried over too.
What stays in GTM
- Universal Analytics tags, image pixels and community-template tags — listed with the reason.
- Tags with no firing trigger (they would never sync anyway).
- Anything TagEasy created itself (the
te:prefix) — it is already managed. - Entities whose name clashes with a TagEasy row you already have — shown as conflicts; rename one side and preview again.
Why nothing is duplicated
Every adopted row stores the GTM id it came from. When TagEasy syncs, it looks the workspace resource up by that id before falling back to the name, so the original tag, trigger or variable is updated in place — native triggers and variables are renamed to the te:convention as part of that update. Tags that fired on a Custom Event trigger matched to a TagEasy event are re-pointed to that event's trigger; the original Custom Event trigger is left untouched and shows up as unused in the next hygiene check.
Adopting what the inventory scan finds
The tag inventory now reads account ids off the page. Each detected vendor with an id gets a Manage in TagEasy action: ad vendors become a destination on your purchase and lead events with that id, GA4 fills the measurement id when none is set, and other vendors become a managed Custom HTML tag built from the vendor's official loader.
Plan
The preview and findings are free on every plan. Applying an import is a Pro feature — see pricing, or GTM tags & variables for what TagEasy does with the rows once they are yours.