Monday, 20 June 2016

Using Google Tag Manager to Dynamically Generate Schema/JSON-LD Tags

Posted by serpschris

[Estimated read time: 7 minutes]

One of the biggest takeaways from SearchFest in Portland earlier this year was the rapidly rising importance of semantic search and structured data - in particular Schema.org. And while implementing Schema used to require a lot of changes to your site's markup, the JSON-LD format has created a great alternative to adding microdata to a page with minimal code.

mike arnesen searchfest 2016

Check out Mike Arnesen's deck from his SearchFest talk, "Understanding & Facilitating Semantic Search," for a great overview on using structured data.

What was even more exciting was the idea that you could use Google Tag Manager to insert JSON-LD into a page, allowing you to add Schema markup to your site without having to touch the site's code directly (in other words, no back and forth with the IT department).

Trouble is, while it seemed like Tag Manager would let you insert a JSON-LD snippet on the page no problem, it didn't appear to be possible to use other Tag Manager features to dynamically generate that snippet. Tag Manager lets you create variables by extracting content from the page using either CSS selectors or some basic JavaScript. These variables can then be used dynamically in your tags (check out Mike's post on semantic analysis for a good example).

So if we wanted to grab that page URL and pass it dynamically to the JSON-LD snippet, we might have tried something like this:

Using tag manager to insert JSON-LD with dynamic variables

But that doesn't work. Bummer.

Meaning that if you wanted to use GTM to add the the BlogPosting Schema type to each of your blog posts, you would have to create a different tag and trigger (based on the URL) for each post. Not exactly scalable.

But, with a bit of experimentation, I've figured out a little bit of JavaScript magic that makes it possible to extract data from the existing content on the page and dynamically create a valid JSON-LD snippet.

Dynamically generating JSON-LD

The reason why our first example doesn't work is because Tag Manager replaces each variable with a little piece of JavaScript that calls a function - returning the value of whatever variable is called.

We can see this error in the Google Structured Data Testing Tool:

JSON-LD Google Tag Manager variable error

The error is the result of Tag Manager inserting JavaScript into what should be a JSON tag - this is invalid, and so the tag fails.

However, we can use Tag Manager to insert a JavaScript tag, and have that JavaScript tag insert our JSON-LD tag.

Google Tag Manager JSON-LD insertion script

If you're not super familiar with JavaScript, this might look pretty complicated, but it actually works the exact same way as many other tags you're probably already using (like Google Analytics, or Tag Manager itself).

Here, our Schema data is contained within the JavaScript "data" object, which we can dynamically populate with variables from Tag Manager. The snippet then creates a script tag on the page with the right type (application/ld+json), and populates the tag with our data, which we convert to JSON using the JSON.stringify function.

The purpose of this example is simply to demonstrate how the script works (dynamically swapping out the URL for the Organization Schema type wouldn't actually make much sense). So let's see how it could be used in the real world.

Dynamically generating Schema.org tags for blog posts

Start with a valid Schema template

First, build out a complete JSON/LD Schema snippet for a single post based on the schema.org/BlogPosting specification.

example article schema template

Identify the necessary dynamic variables

There are a number of variables that will be the same between articles; for example, the publisher information. Likewise, the main image for each article has a specific size generated by WordPress that will always be the same between posts, so we can keep the height and width variables constant.

In our case, we've identified 7 variables that change between posts that we'll want to populate dynamically:
identify schema properties for dynamic substitution by tag manager

Create the variables within Google Tag Manager


  • Main Entity ID: The page URL.

  • Headline: We'll keep this simple and use the page title.

  • Date Published and Modified: Our blog is on WordPress, so we already have meta tags for "article:published_time" and "article:modified_time". The modified_time isn't always included (unless the post is modified after publishing), but the Schema specification recommends including it, so we should set dateModified to the published date if it there isn't already a modified date. In some circumstances, we may need to re-format the date - fortunately, in this case, it's already in the ISO 860 format, so we're good.

  • Author Name: In some cases we're going to need to extract content from the page. Our blog lists the author and published date in the byline. We'll need to extract the name, but leave out the time stamp, trailing pipe, and spaces.tag manager extract author name from pagetag manager extract author name from page markup


  • Article Image: Our blog has Yoast installed, which has specified image tags for Twitter and Open Graph. Note: I'm using the meta twitter:image instead of the og:image tag value due to a small bug that existed with the open graph image on our blog when I wrote this.

  • Article Description: We'll use the meta description.

Here is our insertion script, again, that we'll use in our tag, this time with the properties swapped out for the variables we'll need to create:

google tag manager json-ld insertion script with dynamic variables

I'm leaving out dateModified right now - we'll cover than in a minute.

Extracting meta values

Fortunately, Tag Manager makes extracting values from DOM elements really easy - especially because, as is the case with meta properties, the exact value we need will be in one of the element's attributes. To extract the page title, we can get the value of the tag. We don't need to specify an attribute name for this one:<p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/576794184cca31.23853501.png" width="738" alt="configuring a google tag manager tag to extract the title value"><br /> </p><p>For meta properties, we can extract the value from the content attribute:<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941901fcb8.76439638.png" width="738" alt="configuring a google tag manager tag to extract the title value"><br /> </p><p>Tag Manager also has some useful built-in variables that we can leverage - in this case, the Page URL:<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/57679419854306.38513113.png" width="618" alt="Tag Manager Page URL built in variable"><br /> </p><h3>Processing page elements</h3><p>For extracting the author name, the markup of our site makes it so that just a straight selector won't work, meaning we'll need to use some custom JavaScript to grab just the text we want (the text of the span element, not the time element), and strip off the last 3 characters (" | ") to get just the author's name.<br /> </p><p>In case there's a problem with this selector, I've also put in a fallback (just our company name), to make sure that if our selector fails a value is returned.<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941a0600f1.80330070.png" width="738" alt="custom JavaScript google tag manager variable to extract and process copy"><br /> </p><h2>Testing</h2><p>Tag Manager has a great feature that allows you to stage and test tags before you deploy them.<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941b683f03.05409682.png" width="400" alt="google tag manager debug mode"><br /> </p><p>Once we have our variables in place, we can enter the Preview mode and head to one of our blog posts:<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941bd03e11.38700283.png" width="738" alt="testing tag manager schema variables"><br /> </p><p>Here we can check the values of all of our variables to make sure that the correct values are coming through.<br /> </p><p>Finally, we set up our tag, and configure it to fire where we want. In this case, we're just going to fire these tags on blog posts:<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941c50bfd3.27970223.png" alt="tag manager trigger configuration"><br /> </p><p>And here's the final version of our tag.<br /> </p><p>For our dateModified parameter, we added a few lines of code that check whether our modified variable is set, and if it's not, sets the "dateModified" JSON-LD variable to the published date. You can find the <a href="https://gist.github.com/chrisgoddard/bbc998efc270929d0a67305d0941c6eb" target="_blank">raw code here</a>.<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941cc21524.15034477.png" width="738" alt="dynamic schema json-ld tag"><br /> </p><p>Now we can save the tag, deploy the current version, and then use the <a href="https://search.google.com/structured-data/testing-tool" target="_blank">Google Structured Data Testing Tool</a> to validate our work:<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941d8ff161.37948276.png" width="738" alt="google structured data testing tool validates dynamically generated JSON-LD"><br /> </p><p>Success!!<br /> </p><hr><p>This is just a first version of this code, which is serving to test the idea that we can use Google Tag Manager to dynamically insert JSON-LD/Schema.org tags. However after just a few days we checked in with Google Search Console and it confirmed the BlogPosting Schema was successfully found on all of our blog posts with no errors, so I think this is a viable method for implementing structured data.<br /> </p><p><img src="http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/5767941e2bb207.78142880.png" width="738" alt="valid structured data found in Google Search Console"><br /> </p><p>Structured data is becoming an increasingly important part of an SEO's job, and with techniques like this we can dramatically improve our ability to implement structured data efficiently, and with minimal technical overhead.<br /> </p><p>I'm interested in hearing the community's experience with using Tag Manager with JSON-LD, and I'd love to hear if people have success using this method!<br /> </p><p>Happy tagging!<br /> </p><br /><p><a href="https://moz.com/moztop10">Sign up for The Moz Top 10</a>, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!</p> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Posted by <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/00189568156989661727' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/00189568156989661727' rel='author' title='author profile'> <span itemprop='name'>Dylan Lord</span> </a> </span> </span> <span class='post-timestamp'> at <meta content='http://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html' itemprop='url'/> <a class='timestamp-link' href='https://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2016-06-20T16:15:00-07:00'>16:15</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1005137305'> <a href='https://www.blogger.com/post-edit.g?blogID=2350501737930558879&postID=3652453258329463848&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=2350501737930558879&postID=3652453258329463848&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=2350501737930558879&postID=3652453258329463848&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=2350501737930558879&postID=3652453258329463848&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=2350501737930558879&postID=3652453258329463848&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=2350501737930558879&postID=3652453258329463848&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> <div class='comments' id='comments'> <a name='comments'></a> <h4>No comments:</h4> <div id='Blog1_comments-block-wrapper'> <dl class='avatar-comment-indent' id='comments-block'> </dl> </div> <p class='comment-footer'> <div class='comment-form'> <a name='comment-form'></a> <h4 id='comment-post-message'>Post a Comment</h4> <p> </p> <a href='https://www.blogger.com/comment/frame/2350501737930558879?po=3652453258329463848&hl=en-GB&saa=85391' id='comment-editor-src'></a> <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe> <script src='https://www.blogger.com/static/v1/jsbin/1167892209-comment_from_post_iframe.js' type='text/javascript'></script> <script type='text/javascript'> BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html'); </script> </div> </p> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://upory1965.blogspot.com/2016/06/searchcap-google-adwords-texting-ads.html' id='Blog1_blog-pager-newer-link' title='Newer Post'>Newer Post</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://upory1965.blogspot.com/2016/06/survey-how-quickly-should-business.html' id='Blog1_blog-pager-older-link' title='Older Post'>Older Post</a> </span> <a class='home-link' href='https://upory1965.blogspot.com/'>Home</a> </div> <div class='clear'></div> <div class='post-feeds'> <div class='feed-links'> Subscribe to: <a class='feed-link' href='https://upory1965.blogspot.com/feeds/3652453258329463848/comments/default' target='_blank' type='application/atom+xml'>Post Comments (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget Profile' data-version='1' id='Profile1'> <h2>About Me</h2> <div class='widget-content'> <a href='https://www.blogger.com/profile/00189568156989661727'><img alt='My photo' class='profile-img' height='72' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYVLXf8QEHOZvUHh4Jv70Kf9D3VLWUSSNzTVjd7NaxxTrJKJzVtW0lk1IdpwuY5TDOaAK0NiK3LDTAZHOnRqfFxSAtIR_YQZNodwprQPyXLzFH6SLPHcd00jZ-FUJqSQ/s220/Dylan+Lord.jpg' width='80'/></a> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://www.blogger.com/profile/00189568156989661727' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'> Dylan Lord </a> </dt> </dl> <a class='profile-link' href='https://www.blogger.com/profile/00189568156989661727' rel='author'>View my complete profile</a> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/'> 2016 </a> <span class='post-count' dir='ltr'>(1997)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/11/'> November </a> <span class='post-count' dir='ltr'>(180)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/10/'> October </a> <span class='post-count' dir='ltr'>(281)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/09/'> September </a> <span class='post-count' dir='ltr'>(203)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/08/'> August </a> <span class='post-count' dir='ltr'>(228)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/07/'> July </a> <span class='post-count' dir='ltr'>(145)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/06/'> June </a> <span class='post-count' dir='ltr'>(138)</span> <ul class='posts'> <li><a href='https://upory1965.blogspot.com/2016/06/user-experience-high-priority-for.html'>User experience a high priority for almost three q...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/3-cs-that-reveal-quality-of-your-blog.html'>3 Cs that Reveal the Quality of Your Blog Post</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/10-illustrations-of-how-fresh-content.html'>10 Illustrations of How Fresh Content May Influenc...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/adult-swim-is-premiering-new-show-on.html'>Adult Swim is premiering a new show on Vine before...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/us-digital-ad-spend-to-outstrip-tv-this.html'>US digital ad spend to outstrip TV this year, all ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-google-eu-charges-bing-ads.html'>SearchCap: Google EU charges, Bing Ads changes & k...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/predicting-intent-what-unnatural.html'>Predicting Intent: What Unnatural Outbound Link Pe...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-ceo-sundar-pichais-quora-account.html'>Google CEO Sundar Pichai's Quora account has been ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/3-unusual-lessons-buffer-learned-by.html'>3 Unusual Lessons Buffer Learned by Studying Over ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apples-pride-celebration-includes-apple.html'>Apple's Pride celebration includes an Apple Watch ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/local-news-photo-captures-current.html'>Local News Photo Captures Current Gestalt</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/4-great-deals-on-high-quality-bluetooth.html'>4 great deals on high-quality Bluetooth earbuds</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/10-ways-beacons-will-change-seo.html'>10 Ways Beacons Will Change #SEO</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/the-rocks-new-youtube-channel-wants-to.html'>The Rock's new YouTube channel wants to 'force hum...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/long-tail-seo-when-how-to-target-low.html'>Long Tail SEO: When & How to Target Low-Volume Key...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apples-gpu-powered-5k-monitor-could-be.html'>Apple's GPU-powered 5K monitor could be amazing fo...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/fbi-falls-2-votes-short-of-viewing-our.html'>FBI falls 2 votes short of viewing our browsing hi...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-has-stopped-using-authorship.html'>Google has stopped using authorship completely, ev...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/marketing-spend-accounts-for-ever.html'>Marketing spend accounts for ever greater percenta...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/5-lessons-learned-from-saas-home-run.html'>5 Lessons Learned from a SaaS Home Run</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/no-seo-isnt-search-engine-manipulation.html'>No, SEO isn't “search engine manipulation” that Go...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/learn-how-to-build-android-apps-google.html'>Learn How to Build Android Apps: Google Debuts Nan...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/soundcloud-finally-brings-algorithmic.html'>SoundCloud (finally) brings algorithmic song recom...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/you-can-now-control-your-sonos-without.html'>You can now control your Sonos without unlocking y...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/smx-east-agenda-is-now-live-check-out.html'>SMX East agenda is now live! Check out the SEO & S...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/4-reasons-snapchat-lenses-are-genius-ad.html'>4 Reasons Snapchat Lenses Are a Genius Ad Product ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-is-killing-legacy-macbook-pro.html'>Apple is killing the legacy MacBook Pro</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/summer-solstice-and-strawberry-moon.html'>Summer solstice and strawberry moon Google doodle ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-to-provide-instant-medical.html'>Google to Provide Instant Medical Information for ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-google-adwords-texting-ads.html'>SearchCap: Google AdWords texting ads, Google heal...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html'>Using Google Tag Manager to Dynamically Generate S...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/survey-how-quickly-should-business.html'>SURVEY: How Quickly Should A Business Respond to a...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/fathers-day-google-doodle-follows-in.html'>Father's Day Google doodle follows in same footste...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/chill-smarter-loungr-inflatable-chair.html'>Chill smarter: The Loungr Inflatable Chair is now ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/11-simple-yet-effective-edits-to.html'>11 Simple Yet Effective Edits to Instantly Improve...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/ace-amazon-web-services-certification.html'>Ace the Amazon Web Services Certification Exams</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-takes-hard-and-ironic-stance.html'>Apple takes a hard (and ironic) stance against the...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/7-lessons-learned-growing-from-1000-to.html'>7 lessons learned growing from $1,000 to $15,000 a...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/rainmaker-rewind-microsoft-just-bought.html'>Rainmaker Rewind: Microsoft Just Bought LinkedIn. ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/why-listing-accuracy-is-important.html'>Why Listing Accuracy is Important - Whiteboard Friday</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-adwords-testing-click-to-sms-ad.html'>Google AdWords testing click to SMS ad extension</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/smx-advanced-local-workshop-tactics.html'>SMX Advanced Local Workshop: tactics from Google, ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/siri-for-your-favorite-apps-will-be.html'>Siri for your favorite apps will be great (eventua...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-google-search-analytics.html'>SearchCap: Google search analytics upgrade, Bing A...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/buffer-company-known-for-public-open.html'>Buffer, the company known for public 'open salary'...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/complaints-and-how-they-can-go-ballistic.html'>Complaints and How They Can Go Ballistic</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/the-content-junkyard-and-why-so-many.html'>The Content Junkyard (and Why So Many Articles Fail)</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-ad-tag-color-changed-to-green.html'>Google 'Ad' Tag Color Changed to Green, Same Color...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/a-complete-failure-what-tech-businesses.html'>"A Complete Failure": What Tech Businesses Can Lea...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/will-younger-generation-turn-away-from.html'>Will the younger generation turn away from Snapcha...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/got-hour-to-kill-check-out-56-minutes.html'>Got an hour to kill? Check out 56 minutes of 'The ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/creating-perfect-marketing-agency.html'>Creating a Perfect Marketing Agency Proposal</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/what-its-really-like-to-start-ultra.html'>What It's Really Like to Start an Ultra-Successful...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/stop-submitting-your-android-n-name.html'>Stop submitting your Android N name suggestions, G...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/now-you-can-edit-text-ads-and-address.html'>Now you can edit text ads and address disapprovals...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/improve-content-quality-using-metrics.html'>Improve Content Quality Using Metrics That Matter ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-says-all-apps-must-use-its-ats.html'>Apple says all apps must use its ATS security prot...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-apple-maps-adwords-spend-seo_14.html'>SearchCap: Apple Maps, AdWords spend & SEO trends</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-patent-shows-company-might-be_14.html'>Apple patent shows the company might be toying wit...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/mobile-payments-rapidly-emerging-from.html'>Mobile payments rapidly emerging from the hype cyc...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/keyword-explorer-upgrades-new-features.html'>Keyword Explorer Upgrades: New Features, More List...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/7-big-changes-coming-to-snapchat-ads-by.html'>7 Big Changes Coming to Snapchat Ads by @DannyNMIG...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/21-juicy-prompts-that-inspire.html'>21 Juicy Prompts that Inspire Fascinating Content</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-apple-maps-adwords-spend-seo.html'>SearchCap: Apple Maps, AdWords spend & SEO trends</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-patent-shows-company-might-be.html'>Apple patent shows the company might be toying wit...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/twitter-aims-to-keep-trolls-at-bay-with.html'>Twitter aims to keep the trolls at bay with improv...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/agencies-do-you-need-account-handler.html'>Agencies: Do you need an account handler?</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/how-to-craft-winning-pitches-for-your.html'>How to Craft Winning Pitches for Your Service Busi...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/sej-wrap-up-2016-internet-trends-report.html'>SEJ Wrap-Up: 2016 Internet Trends Report, New Tool...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/check-it-out-moz-contents-q2-feature.html'>Check It Out: Moz Content's Q2 Feature Updates (To...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/getfivestars-survey-what-happens-when.html'>GetFiveStars SURVEY: What Happens When Things Go S...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/at-wwdc-apple-disguises-fun-as.html'>At WWDC, Apple disguises fun as innovation</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/apple-maps-becomes-platform-with-new.html'>Apple Maps becomes a platform with new extensions ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/our-wwdc-2016-predictions-guesses-and.html'>Our WWDC 2016 predictions, guesses and wants</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/4-tips-for-effective-brand-management.html'>4 Tips for Effective Brand Management by @megcabrera</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/people-really-hate-new-vsco-cam.html'>People really hate the new VSCO Cam</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/sodastream-goes-after-thirsty-keurig.html'>SodaStream goes after thirsty Keurig Kold customer...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/how-to-get-credit-for-your-adwords.html'>How to Get Credit for Your AdWords Conversions by ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/xhamster-enacts-brock-turner-rule.html'>xHamster enacts 'Brock Turner rule' banning rape p...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/infographic-ultimate-guide-to-seo.html'>Infographic: The ultimate guide to SEO-friendly URLs</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/elon-musk-details-his-mind-blowing.html'>Elon Musk details his 'mind blowing' vision for Ma...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-autocomplete-does-not-favor-any.html'>Google: Autocomplete does not favor any candidate ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/what-to-do-when-wrong-page-ranks-for.html'>What to Do When the Wrong Page Ranks for Your Keyw...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/why-you-should-pick-up-why-dutch-are.html'>Why you should pick up “Why the Dutch are different”</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/how-to-prepare-for-adwords-expanded.html'>How to prepare for AdWords' expanded text ads and ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/the-ultimate-emoji-guide-for-marketers.html'>The Ultimate Emoji Guide for Marketers</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/its-sad-day-for-gawker-and-even-sadder.html'>It's a sad day for Gawker and an even sadder day f...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/heres-how-online-backup-got-woman-her.html'>Here's how an online backup got a woman her comput...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/android-launcher-and-search-engine-evie.html'>Android launcher and search engine Evie “reimagine...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/stealing-iphones-from-apple-store-is.html'>Stealing iPhones from the Apple Store is apparentl...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/membership-sites-defined-in-60-seconds.html'>Membership Sites Defined in 60 Seconds [Animated V...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/do-website-engagement-rates-impact.html'>Do Website Engagement Rates Impact Organic Rankings?</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/how-much-are-you-investing-in-mobile.html'>How much are you investing in mobile advertising? ...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/searchcap-google-shopping-ad-filters.html'>SearchCap: Google shopping ad filters, Google maps...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/paypal-wont-refund-twitch-trolls-50000.html'>PayPal won't refund Twitch troll's $50,000 in dona...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/google-contacts-web-app-now-shows.html'>Google Contacts Web App Now Shows Verified Informa...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/11-of-best-responsive-wordpress-themes.html'>11 of the Best Responsive WordPress Themes by @devesh</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/revisiting-digital-marketing.html'>Revisiting Digital Marketing Cornerstones: 140-Cha...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/review-zens-apple-watch-power-bank-is.html'>Review: The Zens Apple Watch power bank is great f...</a></li> <li><a href='https://upory1965.blogspot.com/2016/06/the-secret-to-powerful-products-that.html'>The Secret to Powerful Products that Sell: Meet Ta...</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/05/'> May </a> <span class='post-count' dir='ltr'>(147)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/04/'> April </a> <span class='post-count' dir='ltr'>(145)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/03/'> March </a> <span class='post-count' dir='ltr'>(208)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/02/'> February </a> <span class='post-count' dir='ltr'>(101)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2016/01/'> January </a> <span class='post-count' dir='ltr'>(221)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/'> 2015 </a> <span class='post-count' dir='ltr'>(2857)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/12/'> December </a> <span class='post-count' dir='ltr'>(186)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/11/'> November </a> <span class='post-count' dir='ltr'>(281)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/10/'> October </a> <span class='post-count' dir='ltr'>(486)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/09/'> September </a> <span class='post-count' dir='ltr'>(530)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/08/'> August </a> <span class='post-count' dir='ltr'>(636)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/07/'> July </a> <span class='post-count' dir='ltr'>(486)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://upory1965.blogspot.com/2015/06/'> June </a> <span class='post-count' dir='ltr'>(252)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Simple theme. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1447683341-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY72E0EsbyPRZmSW4ThBkijENkzxkg:1751660908474';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d2350501737930558879','//upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html','2350501737930558879'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '2350501737930558879', 'title': 'Dylan Lord', 'url': 'https://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html', 'canonicalUrl': 'http://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html', 'homepageUrl': 'https://upory1965.blogspot.com/', 'searchUrl': 'https://upory1965.blogspot.com/search', 'canonicalHomepageUrl': 'http://upory1965.blogspot.com/', 'blogspotFaviconUrl': 'https://upory1965.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en-GB', 'localeUnderscoreDelimited': 'en_gb', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Dylan Lord - Atom\x22 href\x3d\x22https://upory1965.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Dylan Lord - RSS\x22 href\x3d\x22https://upory1965.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Dylan Lord - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/2350501737930558879/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Dylan Lord - Atom\x22 href\x3d\x22https://upory1965.blogspot.com/feeds/3652453258329463848/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/f746c2603e3e3303', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en_GB\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'item', 'postId': '3652453258329463848', 'postImageUrl': 'http://d2v4zi8pl64nxt.cloudfront.net/using-google-tag-manager-to-dynamically-generate-schema-org-json-ld-tags/57679413273073.83902637.jpg', 'pageName': 'Using Google Tag Manager to Dynamically Generate Schema/JSON-LD Tags', 'pageTitle': 'Dylan Lord: Using Google Tag Manager to Dynamically Generate Schema/JSON-LD Tags'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard', 'ok': 'Ok', 'postLink': 'Post link'}}, {'name': 'template', 'data': {'name': 'Simple', 'localizedName': 'Simple', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'bold', 'variantId': 'bold'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Using Google Tag Manager to Dynamically Generate Schema/JSON-LD Tags', 'description': 'Posted by serpschris [Estimated read time: 7 minutes] One of the biggest takeaways from SearchFest in Portland earlier this year was the r...', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vskBIDdB0RVObPPnsDB_u7Tk_g4CAHmokB_TxrX3-Vk5Zfs9GxB-6R-20VQlVVdCqEjbfHS3og6C6sSvzY6YQRI3qlmwy2gYPGbpuvCmUJkE_eB6iTVJsVHnLNksRjjZEVSt7ftOABPJh8EgU7bV8Y35hdv3Rzw2aQKbVYy28hX9a8zGPwdBskSqOkGPs9Pt-nJxc4L-IqYG_mxKpwqH4mbCo0mCTC7uI94Ur0-g', 'url': 'https://upory1965.blogspot.com/2016/06/using-google-tag-manager-to-dynamically.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 3652453258329463848}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3236230316-lbx__en_gb.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/123180807-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>