Google's John Mueller said on Twitter that it is best to implement your structured data on the page itself and not use Google Tag Manager to implement your structured data. He said the reason is because it makes it "straight-forward & usually easier to monitor/maintain."
John did add that using Google Tag Manager is "great for trying structured data out & fine-tuning." But again, the final implementation, he thinks, should be done directly on the page itself.
Here are those tweets:
GTM can be loaded before users accept cookies, as it doesn't set cookies, but the website you're working with might not do that, what would result in schema via GTM not being available to crawlers that don't accept cookies.
— Eoghan (@rebelytics) January 15, 2021
If you can implement the SD on the page itself, I'd aim for that. GTM is great for trying SD out & fine-tuning it, but on-page SD is much more straight-forward & usually easier to monitor/maintain.
— 🍌 John 🍌 (@JohnMu) January 15, 2021
Google previous said it is okay to use Google Tag Manager for structured data after saying to avoid it for experiments. But then Google added to its developer docs how to use Tag Manager with structured data.
Forum discussion at Twitter.