It may be an anti-pattern, but technically you can get around this limitation by setting your dimensions to the default value.
{{MyCustomDimension}}-foo
If your empty dimensions will display as -foo and forward.
If a dimension has been provided, you expect to see it in analytics as the dimension value, followed by -foo .
Take click events in google tag manager, for example:
{{Click Element}}.{{Click Classes}}
In the above example, we can always expect the click element to be defined, but not an attribute of the element class.
source share