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

SituationSimple URL builderHere
Everyone writes campaign names their own wayAccepts any textTeam naming convention with a dictionary and validation
Knowing which channel the session will land inYou find out later, in the reportPrediction from GA4’s official rules before you publish
Paid ads with macrosBuilds one link at a timeOne macro string per platform + ad set and ad names
Printed materialNo QR code, no record of the piece’s ageQR code in PNG/SVG, size control and CSV batches
Links that are already liveDoesn’t check themBulk auditor: case, duplicates, # before the UTM, click IDs
Setting up GA4 from scratchOut of scopeGTM 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

The channel rules were checked in October 2026. Google warns they can change, so check them again every quarter.

UTM builder

Only parameters GA4 reads natively, readable names and the channel prediction. Name formatting follows the Naming convention tab.

1. destination url

Paste the clean URL. If it already has a parameter, the builder appends with &.

2. channel

3. campaign

No date in the name: you filter the period in the report.

4. ad sets

5. ads

The version goes up within the same type and format. The +v button creates the next version.
platform fills in you type fixed
campaign name
ad sets
    ads
      how it lands in ga4
      all combinations
      campaignad setadurl with macros

      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

      Allowed values separated by commas. Leave it empty for free text. The first 4 fields feed the campaign name in the UTM builder.

      share with your team

      With an account, the convention is saved per client and the whole team uses the same one.

      build a name

      result

      validate and break down existing names

      With the name split into columns, you can report by objective, audience or format without a lookup spreadsheet.

      campaign, ad set and ad names

      campaign
      ad set
      ad
      The campaign comes from “build a name”. Ad set and ad use the same separator, case and delimiter, without key:value, just like the UTM builder.

      take it to your report

      regex that breaks down the campaign name
      
              
      Looker Studio calculated field
      
              
      Maps source and medium, lowercased and trimmed, to one channel per source in the convention, with the values the UTM builder uses. Use the field name as it appears in your data source; if the editor doesn’t recognize it, type the beginning and pick the field from the list.
      BigQuery SQL (GA4 export)
      
              
      The dataset is named analytics_ followed by the property ID. The SQL uses collected_traffic_source, which is the UTM recorded on each event; the comments show how to switch to the session source and to the user’s first source.

      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.

      With the domain filled in, the auditor flags UTM on internal links, from one page of your site to another.
      #source / mediumcampaignpredicted channelissues

      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, shopping or cross-network in 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: and tel:.
      • 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.

      Paste the spreadsheet rows
      With a header in the first row, column order doesn’t matter. Accepts tabs, semicolons or commas. Excel file: save it as CSV before opening it here. Pro: up to 50 rows at a time. Max: up to 500.
      Build the rows for influencers
      Each creator becomes one row per network, with the name in utm_content. A network with an unknown name goes in as is. Organic posts land in Organic Social; boosted posts, in Paid Social.

      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

      orderchannelrulematch?
      Rules for manual traffic (UTM). Traffic with gclid follows the Google Ads rules by campaign type. The source list used here is Google’s full official spreadsheet, with 818 sources, checked in October 2026; Google’s page has the latest version.

      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).

        step by step in ga4

        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

        regex

        test

        In GA4, “matches regex” compares the whole value; “partially matches regex” accepts a fragment. The test uses the browser’s engine, which accepts more than RE2; the warnings next to it point out the most common differences.

        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

          code
          
                

          parameters per event

          eventwhen to fireparameters

          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.

          actionGA4MetaTikTokGoogle Ads (category)key parameters
          Names marked with * change more often or vary between accounts. Check the platform’s current documentation before publishing.

          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_id unique 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

            what goes in the container
            view json
            Always import into a separate workspace, review it in Preview and only publish after you see the events in GA4 DebugView.
            consent mode v2 (before the gtm snippet)
            
                    
            Whether the default is denied or granted is a legal decision for each company under privacy law (LGPD in Brazil), not a technical one. The cookie banner tool is what calls 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.
            Prefer to get this installed and validated on your site?

            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

            Cost: the server is billed by usage, by the hosting you choose. Check sizing and current pricing before promising a timeline or a price to the client.
            guide
              event_id to deduplicate pixel and api
              Misconfigured server-side counts conversions twice. Want us to set it up and validate it?

              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.

              Browsers don’t let one site read another site’s code, so you paste it instead of typing the URL. Tags that GTM injects later don’t show up in the page source; for those, use Tag Manager Preview.

              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

              Public DNS lookup made by your browser (DNS-over-HTTPS). DNS changes can take hours to show up.

              robots.txt

                result
                
                        
                Blocking a page in robots.txt doesn’t remove it from the index. To take it off Google, use noindex or the Removals tool.

                indexnow (bing and others)

                Upload the .txt file to the site root before submitting. As far as I know, Google doesn’t use IndexNow; for Google, the path is the sitemap in Search Console.
                google search console
                  bing webmaster tools

                    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)

                    CSV columns: Campaign, Ad group, Keyword, Criterion Type. When you import into Editor, check that the column names match your version.

                    Text ads

                    Counter and preview for Google responsive search ads and for Meta copy. One line per headline or description.

                    google headlines (up to 15, 30 characters)
                    google descriptions (up to 4, 90 characters)

                    approximate preview

                    Google combines headlines and descriptions on its own. The preview only shows one possible combination.

                    meta (truncation reference, not a limit)

                    Truncation varies by placement and device. The numbers are a practical reference so your text doesn’t disappear behind “See more”.

                    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.

                    platformmonthly budgetspent so farideal so fardeviationper day from now onprojection

                    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)

                    Approximate starting percentages. Platforms change their interfaces; adjust the fields to each one’s current guidance.

                    most used aspect ratios

                    platformplacementaspect ratiosuggested size
                    A reference for common aspect ratios and resolutions. Video length, file size and limits change often: check the platform’s help center.

                    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.

                    dateeventplan fromlaunch bydays 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.

                    The code uses letters and numbers that can’t be confused (no 0, O, 1, I or L in the draw) and is always the same for the same source. If two sources get the same code, the second one gets a different one.
                    Generated links
                    WhatsApp only receives the number and the text. The code shows the source when the person doesn’t delete the message before sending it. This link doesn’t count clicks; that needs a redirect, which comes later. For the opposite path, a link sent on WhatsApp that leads to your site, use the UTM builder with the WhatsApp channel.
                    Source: WhatsApp’s help center documents only the number and the text parameter in wa.me links (faq.whatsapp.com/5913398998672934). UTM added to a wa.me link goes nowhere.

                    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

                    storeparameterfield namefirst-touch field
                    A domain starting with a dot makes the cookie valid on all subdomains (store.com and checkout.store.com). Leave it empty to make it valid only on the address where the script runs.
                    Code for your site
                    
                          

                    How to install and test

                      The script has no library dependencies and is ES5, which GTM Custom HTML accepts. It doesn’t record visits without UTM: people who arrive directly or from search keep what was already stored. A form inside an iframe from another domain is out of reach of any script on the page. To check it in the browser, run 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

                      Pasted a URL with UTM? The fields below fill in on their own with what it carries.

                      UTMs

                      Checkout link with parameterstest
                      parametervaluewhat the platform does with it

                      Script for the sales page

                      Code
                      
                              

                      Where to paste it and how to test

                        Everything here runs in your browser: the link and the UTMs you paste don’t leave it.

                        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

                        Only domains where your GA4 tag runs with the same G- ID go here. A checkout where you don’t install your tag stays out: it goes in the list below.
                        Google’s example: a third-party payment processor, when the person pays there and comes back to your thank-you page.

                        Test the URL that reached the checkout

                        Open your sales page, click the buy button and copy the address of the page that opened.
                        1. Configure your domains in GA4
                          2. List unwanted referrals

                            3. Check

                            1. Open a page on your site that links to one of the domains in the list and click the link.
                            2. Check that the destination page opened and that its address has the _gl parameter. Paste the address into the test next to it.
                            3. No _gl: check that the configured domain is the same as the link’s and that no redirect along the way strips the parameter.
                            The _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.
                            What you type and paste here stays in your browser. Nothing goes to a server.

                            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

                            Each placement’s text goes in utm_content. Uncheck the placements you don’t use.

                            Paid ad

                            Link kit
                            Why app traffic shows up as Direct: when the click arrives without UTM and without a clear referral source, GA4 classifies the visit as (direct) / (none). With UTM, the source comes from the link itself and doesn’t depend on the app.
                            The links are built in your browser. Nothing you type leaves it.
                            Source: Google, default channel group (Organic Social: source in the social sites list or medium social; Paid Social: social source and a medium that matches ^(.*cp.*|ppc|retargeting|paid.*)$) and Google, traffic-source dimensions ((direct) / (none)).

                            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.

                            Works with the “Session source / medium” column (also with the Portuguese interface) or with source and medium in separate columns, plus the sessions column if there is one. Lines that start with # (the header GA4 adds to the file) are ignored.

                            Summary

                            Groups and standard name
                            standard sourcestandard mediumpredicted channelsessionsmerged variantsissues
                            The channel follows the same rules as the simulator in the GA4 channels tab, with Google’s official source list. Edit a group’s standard source or medium; groups that end up with the same pair are merged.

                            Formulas to clean up the report

                            Calculated field: standard source
                            Calculated field: standard medium
                            Calculated field: standard source / medium
                            In Looker Studio: Resource, Manage added data sources, Edit, Add a field, then paste one formula per field. If your interface is in another language, the fields have translated names: change the names above in advanced mode.

                            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.

                            What you paste stays in the browser. To get the server events, copy the request body from your server, from server-side GTM or from the integration log. In the browser, Meta Pixel Helper and the Network tab (filter facebook.com/tr or analytics.tiktok.com) show the name and ID of each hit.

                            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.

                            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

                            A phone without a leading + gets the country code. With 55, a 10 or 11 digit number (area code + number) becomes 55 + area code + number, and a leading zero (021) is dropped. A value that already looks like a SHA-256 (64 characters from 0 to 9 and a to f) goes as is.

                            Nothing you type leaves the browser: the hash is made here, with the browser’s Web Crypto. Source: Meta, customer information parameters.

                            Normalized and in SHA-256
                            
                                
                            CSV batch
                            Columns recognized by name: email, phone, first_name, last_name, city, state, zip, country and external_id (the Portuguese names also work). Order doesn’t matter. Accepts tabs, semicolons or commas. The downloaded file has a row number column, columns with Meta’s names (em, ph, fn, ln, ct, st, zp, country, external_id) and a warnings column.

                            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 by order: store vs. GA4
                            In GA4: Reports, Monetization, Ecommerce purchases or Transactions, with the Transaction ID dimension and the Ecommerce purchases and Purchase revenue metrics; export as CSV. The # lines at the start of the GA4 file are ignored. IDs are compared without the leading #, without spaces and ignoring case. In a store file with one line per item, the first value of each order counts.

                            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.

                            request a quote