0

I have two processes for our website: opt-in & opt-out.

We track the customer button clicks going into each process along with a cancel & confirm button that follow.

I have configured the GA4 events in GTM to fire on their respective buttons as follows:

Opt In:
Enter Button:   Event Name: opt_in, Parameter Name: entry
Cancel Button:  Event Name: opt_in, Parameter Name: cancel
Confirm Button: Event Name: opt_in, Parameter Name: confirm

Opt Out:
Enter Button:   Event Name: opt_out, Parameter Name: entry
Cancel Button:  Event Name: opt_out, Parameter Name: cancel
Confirm Button: Event Name: opt_out, Parameter Name: confirm

From my brief understanding of GA4, in order to report on these I need to have custom dimensions configured.

So I create the following custom dimensions:

Dimension Name: opt_in_entry, Event Parameter: entry
Dimension Name: opt_in_cancel, Event Parameter: cancel
Dimension Name: opt_in_confirm, Event Parameter: confirm

All OK.

When I add in the opt_out parameter is complains with the following error:

There is already a dimension or metric registered with this parameter name.

Do I need to make my event parameter names unique or should I make my event names unique and ditch the parameters?

1 Answer 1

0
+50

Your mistake is binding EPs (Event Parameters) to ENs (Event Names). They're somewhat independent dimensions.

So that you would understand, the limit GA4 sets on the number of distinct event names is about 500. While the limit for the number of distinct custom dimensions is only 50. There is no expectation whatsoever that you would make custom dimensions for specific events. That said, you want your custom dimensions and event properties quite vaguely named.

It is normal to have the same event property and its custom dimension to mean different things depending on event.

In your case, however, they mean the same thing. All you need to do is to name them properly. Instead of having:

Dimension Name: opt_in_entry, Event Parameter: entry
Dimension Name: opt_in_cancel, Event Parameter: cancel
Dimension Name: opt_in_confirm, Event Parameter: confirm

You could have

Dimension Name: entry, Event Parameter: entry
Dimension Name: cancel, Event Parameter: cancel
Dimension Name: confirm, Event Parameter: confirm

It's pretty common and straightforward to name your CDs just as you name your EPs. Much easier to debug and maintain them that way.

However, why are you really wasting three dimensions when you can really just put all of this in one dimension, say calling it CTA or even just type so that it could be reused with other events.

So now your tracking network requests would look like:

...
  en: "opt-in",
  ep.type: "entry",
...

ep.type can be whatever type you want to set there.

And in GA4, in the explorer, you would just pull two events: the opt-in and the opt-out and then just one type dimension for both events. You could also use a segment to limit the type values to these two events since pulling two event names can be awkward given how explorer is still has a long way to go in terms of usability.

This setup is quite elegant and doesn't waste space needlessly, while still allowing every kind of analysis.

Later on, you could reuse the type property/dimension with, let's say, a scroll event. Where you would store in the type variable whether the scroll was done with mouse, or nav bar. If that's valuable to know.

Or you could decide to track the add to cart clicks on product pages, and type could store whether the main CTA had been clicked, or the bottom add to cart CTA, or maybe something else.

This basic custom dimensions recycling is intended and it's a must for proper analytics tracking maintenance. Once you have more custom dimensions and events permutations than you can easily keep track of, it's time to document them and that documentation would be a part of your analytics SDR (Solution Design Reference). Larger and more complex implementations would definitely always have a document like that to make it easier to manage.

5
  • Thank you! That is very helpful. I think I will go with the following: Event name: cta / Dimension Name: cta / Event Parameter: button_name / Event Param Value: entry AND Event Parameter: process / Event Param Value: opt_in. That way I'm only use 2 custom dimensions. How does this sound?
    – Dave
    Commented Feb 13, 2023 at 13:56
  • Don't give your dimensions same names as events, it will get confusing. But yes, otherwise it looks good. I would probably do something like that in your scenario.
    – BNazaruk
    Commented Feb 13, 2023 at 14:59
  • Thanks! The two dimensions will be "button_name" and "process", which I can re-use for other events, so they won't be named the same as my event names. My only concern is that where I create the event in GTM the name is "cta", so I have 6 events named "cta" - should these each be descriptive, e.g. "cta_opt_in_entry" or am I ok having duplicates of "cta" for the event name?
    – Dave
    Commented Feb 13, 2023 at 16:56
  • you don't need to register event names. They will appear in GA as you use them, unlike event properties. Using "cta" for cta tracking events sounds good to me. Occam's razor.
    – BNazaruk
    Commented Feb 13, 2023 at 17:20
  • 1
    Thank you, you've been a massive help. All the best, Dave
    – Dave
    Commented Feb 14, 2023 at 7:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.