Tools
Your GA4 is only as good as the links that reach it.
UTM builder with naming standards, GA4 channel prediction, link auditor, Tag Manager templates, media calculators and checklists. Everything runs in your browser: nothing you type leaves it.
pain points that come up most in forums and support
what’s different from a regular URL builder
| Situation | Simple URL builder | Here |
|---|---|---|
| Everyone writes campaign names their own way | Accepts any text | Team naming convention with a dictionary and validation |
| Knowing which channel the session will land in | You find out later, in the report | Prediction from GA4’s official rules before you publish |
| Paid ads with macros | Builds one link at a time | One macro string per platform + ad set and ad names |
| Printed material | No QR code, no record of the piece’s age | QR code in PNG/SVG, size control and CSV batches |
| Links that are already live | Doesn’t check them | Bulk auditor: case, duplicates, # before the UTM, click IDs |
| Setting up GA4 from scratch | Out of scope | GTM container to import, ready-made dataLayer and implementation service |
plans
Free with 4 links every 24 hours. Pro with 30 links per day, bulk builder, templates and labels for US$ 9.90 per month. Max with no link limit and your brand on QR codes and reports for US$ 20 per month.
sources used for the rules and pain points
- Google: GA4 default channel group (channel rules and the official source list)
- Google: custom channel groups
- Bing: import sites from Google Search Console
- Optimize Smart: why GA4 ignores UTM parameters
- Stape: unassigned and not set traffic (in Portuguese)
UTM builder
Only parameters GA4 reads natively, readable names and the channel prediction. Name formatting follows the Naming convention tab.
1. destination url
2. channel
3. campaign
4. ad sets
5. ads
4. piece (utm_content)
| campaign | ad set | ad | url with macros |
|---|
| channel | campaign | piece | url |
|---|
Naming convention
Choose the separator, case and delimiter (underscore, hyphen, brackets, braces, pipe or key:value), then define the fields and the dictionary. The UTM builder starts using this pattern and the validator flags anything that breaks it.
template
fields and dictionary
share with your team
build a name
validate and break down existing names
campaign, ad set and ad names
take it to your report
Link auditor
Paste the URLs that are already live (ads, bio, email, QR). The auditor points out what GA4 will read wrong and which channel each link lands in.
| # | source / medium | campaign | predicted channel | issues |
|---|
what the auditor checks
- source, medium and campaign present; uppercase letters that split the same source into different rows in the report.
- The same source or medium written with different case in the pasted list (Facebook and facebook).
#before the?, UTM after the#, a duplicate?and repeated parameters.- Spaces in the value, raw or encoded (
%20,+), and UTM values longer than 100 characters. utm_parameters GA4 doesn’t read natively and copied click IDs (gclid, fbclid, ttclid, msclkid).- Leftover macros in the link:
{{...}}from Meta,__X__from TikTok,{x}from Google Ads, Microsoft Ads or Pinterest. shop,shoppingorcross-networkin utm_campaign, which send the session to another GA4 channel.- UTM on internal links, when you enter your site’s domain.
- Destinations without a page carrying the GA4 tag: PDF, image, app store,
mailto:andtel:. - It doesn’t follow redirects, so it doesn’t check whether the site keeps the UTM after one. For that, open the link and look at the final URL.
Bulk builder
Paste a spreadsheet with URL, source, medium and campaign and get every link ready, validated and with its predicted GA4 channel.
Build the rows for influencers
| # | final url | predicted channel | issues |
|---|
GA4 channels
Simulate which default channel a session lands in and build a custom channel group to get WhatsApp, offline and marketplaces out of the wrong place.
channel simulator
| order | channel | rule | match? |
|---|
custom channel group
Check what you use. The tool tells you which channels to create, the condition and where to place them (GA4 evaluates from top to bottom).
Regex builder
For GA4 filters, GTM triggers, channel groups and Looker Studio. GA4 uses RE2 syntax: no lookahead and no backreferences.
build from a list
test
dataLayer for your developer
Pick the events and hand your developer the code and the spec. It follows GA4’s recommended ecommerce format, with event_id to deduplicate with conversion APIs.
events
parameters per event
| event | when to fire | parameters |
|---|
Cross-platform event map
Same action, different names on each platform. Use it to set up GTM and to check that the pixel and the API send the same event.
| action | GA4 | Meta | TikTok | Google Ads (category) | key parameters |
|---|
rules that prevent duplicate data
- The pixel and the conversion API must send the same
event_id(Meta uses eventID / event_id) so the platform can deduplicate. - Value always numeric and currency as an ISO code (
USD,BRL), with no currency symbol and no comma. transaction_idunique per order: it’s what stops a purchase from being counted twice when the customer reloads the thank-you page.
GTM web: ready-to-import container
Fill in the IDs, check the events and download the JSON. In Tag Manager: Admin, Import Container, choose a new workspace and the Merge option.
ids
events
view json
update.what this container doesn’t do
- TikTok Pixel: use the official template from the GTM Community Template Gallery and map the events from the Event map tab.
- It doesn’t create the dataLayer on the site: generate the code in the dataLayer tab and hand it to your developer.
- Google Ads enhanced conversions need user data in the dataLayer and setup in the account.
Server-side (sGTM)
Interactive guide to move tracking out of the browser and send it through your own subdomain. Progress is saved in this browser.
your setup
Tag scanner
Open the site, press Ctrl+U (page source), copy everything and paste it here. The scanner lists what’s installed and flags duplicates and outdated code.
found
issues
Search Console, Bing and IndexNow
Domain verification, sitemap, robots.txt and fast URL submission. Bing Webmaster Tools imports the sites already verified in Search Console, so the shortest path is to do Google first.
check the domain’s dns
robots.txt
indexnow (bing and others)
shortcuts
Keyword combiner
Combines lists, applies match types and exports in Google Ads Editor format. Here, brackets and quotes have a job: they are the match type.
list a
list b
list c (optional)
Text ads
Counter and preview for Google responsive search ads and for Meta copy. One line per headline or description.
approximate preview
meta (truncation reference, not a limit)
Media calculators
Each number comes with the formula below it so you can check it. Use a dot or a comma as the decimal separator.
break-even roas and max cpa
reverse funnel (revenue target to budget)
campaign metrics
compare two periods
Budget pacing
How much should have been spent by today, how much is left per day and where the month will close at the current pace.
| platform | monthly budget | spent so far | ideal so far | deviation | per day from now on | projection |
|---|
Creative specs and safe zones
A quick aspect ratio reference and a visual test: upload the vertical artwork and see what ends up under the interface.
safe zone test (9:16)
most used aspect ratios
| platform | placement | aspect ratio | suggested size |
|---|
Brazil retail calendar
Dates calculated for the year (Carnival, Easter, Mother’s Day, Father’s Day and Black Friday move every year). Export them to your calendar.
| date | event | plan from | launch by | days left |
|---|
Launch checklist
Before you put budget behind it. Saved per client in this browser.
WhatsApp link with source
One wa.me link per source, with a short code in the message so your support team knows where the person came from.
UTM capture for CRM
Generates a script that stores the visit’s UTMs and fills in the form fields, so the lead source reaches your CRM even when the person converts on another page.
Destination and rules
Parameters and fields
| store | parameter | field name | first-touch field |
|---|
How to install and test
capturaUTM.primeiro() and capturaUTM.ultimo() in the console.Checkout parameters
Builds the checkout link with the parameters each platform reads and generates the script that carries the UTMs from the sales page to the buy button.
Platform and link
UTMs
| parameter | value | what the platform does with it |
|---|
Script for the sales page
Where to paste it and how to test
Checkout on another domain
List the domains in your funnel and get the GA4 steps to measure across domains, the unwanted referrals to add and a test of the URL that reached the checkout.
Your domains
Test the URL that reached the checkout
3. Check
- Open a page on your site that links to one of the domains in the list and click the link.
- Check that the destination page opened and that its address has the
_glparameter. Paste the address into the test next to it. - No
_gl: check that the configured domain is the same as the link’s and that no redirect along the way strips the parameter.
_gl parameter is added when the person clicks. A button that opens the checkout via JavaScript, or a script that calls stopPropagation() on the click, keeps the parameter from being added.Instagram links
One UTM link for each place on Instagram (bio, Stories, Reels, Direct and profile), with a source and medium that land in Organic Social in GA4, plus the version for paid ads.
Placements
Paid ad
Source and medium normalizer
Paste your GA4 export and see the source and medium variants grouped, with the proposed standard name, the predicted channel and formulas to clean up the report.
Summary
| standard source | standard medium | predicted channel | sessions | merged variants | issues |
|---|
Formulas to clean up the report
Pixel and CAPI deduplication
Paste the events the browser and the server sent and see which ones the platform merges, which ones it counts twice and why.
Accepts source;event_name;event_id;time lines (source: pixel or server; the pixel column is optional), fbq('track', ..., {eventID}) and ttq.track(..., {event_id}) calls, the facebook.com/tr?ev=&eid= image and the JSON sent to the API ({"data":[...]}, with event_time in seconds). The time can come at the start of the code line.
Nothing you paste leaves the browser. Source: Meta, deduplicate pixel and server events; Meta, server event parameters; TikTok, event deduplication and TikTok, 5-minute and 48-hour windows.
Summary
Paste the events or load the example.
| event | event_id | browser | server | result | why |
|---|
Conversions API hashing
Normalizes email, phone, name and address and generates their SHA-256 the way Meta’s documentation asks, to send in the Conversions API.
One customer
Nothing you type leaves the browser: the hash is made here, with the browser’s Web Crypto. Source: Meta, customer information parameters.
Why Meta, GA4 and your store don’t match
Enter the purchases on each side and how each one is set up: the tool shows the difference and the causes that each platform’s official rules explain. With the files, it matches order by order.
Purchases in the same period
How each side is set up
Everything is calculated in the browser.
Differences and causes
| order | status | store | GA4 | GA4 purchases | what to check |
|---|
The files stay in the browser. Source: Google, minimize duplicate events with the transaction ID.
Implementation by a specialist
For people who don’t have time to set it up, don’t trust their own GA4, or already tried and the numbers don’t match the ad platform.