It's been a long time since I've had any new implementations in Google Tag Manager - since before the whole tool redesign. I figured I'd write a few thoughts and impressions coming back to it, almost as a new user!
I've always had very mixed feelings on google tag manager. Mostly because the implementations that I've done have never been "conventional" and GTM has always been harder than other comparable tools for the same implementations (e.g. Tealium, Adobe DTM). However, I got the opportunity to do a new implementation over just a couple days with the redesign of GTM and it went a little more smoothly than past implementations.
Data is now more aptly named "variables" to make a little more sense. The variable interface is extremely colorful with a bunch of pre-defined variables you can use:
These are more or less the same functionality as before, however they have a few more flexible options on accessing data layer elements and a few new available variables. Adding a custom variable was much easier to read, except I found the edit icons were a little bit small:
Triggers are more streamlined as well with a pretty interface, similar to the above screenshots. In general, these were much faster to add than the original design, and the summary on the triggers is a little more clear:
The thing that always has frustrated me with GTM is the disconnect between conditions, triggers, and macros/variables. They are all interconnected, but sometimes doing exactly what you want is a little difficult. You can see the example above where I have "Checkout Subscribe is False". I couldn't just make a trigger on an element because the tool was too limited. I had to make extra variables just to add in the logic I needed so I could work with a trigger. Not pictured on this screenshot is one of my regex expressions. I am dumbfounded that triggers still don't have a simple "is empty" or "is not empty". That seems so basic, yet it still isn't in there.
You can see the interface is pretty simplistic for custom html (which was most of my implementation on this go around). Any custom logic still has to be built yourself as a script, either in the tag or as a variable.
I am more of a DTM/Tealium type of guy, so I'd like to compare those briefly to GTM. DTM and GTM are actually very similar in their functionality. Each obviously has their own methods and quirks, but the concept is similar with tags and macros. Triggers are separated out in GTM, whereas "triggers" in DTM would be either variables or their own rules. GTM also has a concept of folders, which is more or less tagging certain items to be grouped together. This is something DTM could sorely use as it can help with organization.
GTM and Tealium is not much of a comparison in my opinion. Both can functionally do a lot of the same things, but Tealium is so much more user friendly and easy to understand with customizations and conditions. GTM is still very confusing for someone with little tag manager experience whereas Tealium has made that much easier to learn. Tealium has a more robust feature set in general as well with publishing and organizing. However, I will definitely hand it to GTM when it comes to tagging events. Tealium is very lacking if you need to tag events through the tag management tool, mostly because their best practice is to do it all in the data layer, since that is the foundation of the tracking. GTM however lets you add almost any event trigger you want, so it can be very flexible for sites that don't have much of a data layer.