Brevo UTM parameters: the values you can change and the ones you can't
Turn on UTM tracking under Settings, UTM parameters, and Brevo tags links in campaigns, templates and automation emails with utm_source=brevo, utm_medium=email and the message name as utm_campaign. The source and medium can't be edited, which keeps every Brevo email in GA4's Email channel. utm_campaign, utm_content, utm_term and utm_id take your own values.
The interactive UTM builder loads with this page, pre-filled for Brevo, and runs entirely in your browser.
brevo and email are the two values Brevo locks, so repeating them keeps a hand-tagged link on the same GA4 rows. The Email channel follows, since brevo isn't a listed site.
Where to put it
Click the account dropdown, then Settings, UTM parameters, then Activate UTM tracking. utm_source, utm_medium and utm_campaign switch on together.
utm_content, utm_term and utm_id are optional. Give utm_content and utm_term a value, then activate any of the three. A parameter that's off here can't be switched on for a single message.
Global settings reach new campaigns, templates and automation messages only. Existing ones need UTM tracking activated in their own settings.
Per message: Edit settings next to Additional settings on a campaign, Show advanced settings on a template, or Edit next to Additional settings on an automation's Send an email step.
Push notifications have a separate page: Settings, Campaigns, Push, UTM parameters.
"You cannot change or override it." Brevo's help says that about utm_source, whose value is always brevo, and says the same about utm_medium, which is always email. For GA4 that's the safe outcome. A medium of email is exactly what the Email channel looks for, and no one on your team can type it any other way. The trade-off is that every Brevo email shares one source and one medium, so utm_campaign, which defaults to the campaign, workflow or template name, is the only field that tells a newsletter from a welcome series.
utm_content can't separate links. Brevo sets utm_content and utm_term once per message, not per link. They'll compare two campaigns or two automation messages, but a button and a text link in the same email report as one row. If one send needs that detail, deactivate UTM tracking for it in its own settings and paste links built here, with brevo and email copied exactly and a separate utm_content for each link.
Google's help reads utm_id differently. Brevo's article says utm_id and custom parameters aren't recognised automatically by your analytics tool. Google's URL builder help lists utm_id as the campaign ID and recommends setting it alongside source, medium and campaign. Brevo's default for it is the campaign, workflow or template ID. The utm_id decoder covers the parameter in detail. Custom parameters are a different case: Brevo's own GA4 steps send you to a custom dimension you configure yourself, and they need a Professional plan (one parameter) or Enterprise (up to 10).
Push links start without a medium. Brevo's push UTM page suggests two starting values, utm_source=push and utm_campaign={{ campaign.brevoPushId }}, and no utm_medium. GA4's Mobile Push Notifications channel reads the medium: one that ends in push, or contains mobile or notification. The only source it accepts is firebase. A source of push with an empty medium matches none of GA4's rules and reports as Unassigned. Brevo push accepts any query parameter, so add utm_medium=push on that page, and remember UTM parameters also have to be activated on each push campaign when you create it.
The click and the session happen at different moments. Brevo records a click when a reader clicks a link in your email. GA4 records a session when the page loads and its tracking code runs. Brevo names the usual gaps: Safari, Firefox and ad blockers blocking Google Analytics, visitors declining consent, pages closed before they load, and pages without the tracking code. Why analytics numbers never match goes further into it.
Questions
Can I change utm_source or utm_medium in Brevo?
No. Brevo's email UTM tracking always writes utm_source=brevo and utm_medium=email, and neither can be edited or overridden. You can change utm_campaign globally or per message, and set values for utm_content, utm_term and utm_id.
Why can't I turn on utm_content for one Brevo campaign?
An optional parameter has to be given a value and activated in the global settings (Settings, UTM parameters) before it appears in a single message's UTM settings. Once it's on globally, you can change or switch it off per message.
Does Brevo add UTM parameters to push notifications?
Yes, through a separate page: Settings, Campaigns, Push, UTM parameters. Brevo suggests utm_source=push and utm_campaign={{ campaign.brevoPushId }} to start. Add a medium ending in push for GA4, and activate UTM parameters on each push campaign as you create it.