{"id":153566,"date":"2025-03-24T11:30:17","date_gmt":"2025-03-24T11:30:17","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/track-content-with-enhanced-ecommerce\/"},"modified":"2025-03-24T11:30:17","modified_gmt":"2025-03-24T11:30:17","slug":"track-content-with-enhanced-ecommerce","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=153566","title":{"rendered":"Track Content With Enhanced Ecommerce"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>My fingers have been tingling to write this article. Ever since I implemented <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/analyticsjs\/enhanced-ecommerce\">Enhanced Ecommerce<\/a> on my blog a couple of weeks ago, I\u2019ve been getting such an impressive amount of useful data that it\u2019s mind-boggling.<\/p>\n<p>In this article, I\u2019ll walk you through the steps I went to implement the solution, along with examples of the data I can now access through Google Analytics\u2019 reporting interface. As you might have guessed, if you\u2019ve read my articles before, I implemented Enhanced Ecommerce with Google Tag Manager. Note, this is not a step-by-step guide, but should rather provide inspiration for you to think out-of-the-box when it comes to Google Analytics\u2019 features.<\/p>\n<p>                <span class=\"simmer\"><br \/>\n  <span class=\"close\">X<\/span><\/p>\n<p>\n    <span class=\"fa fa-md fa-bell\"\/><br \/>\n    <strong>The Simmer Newsletter<\/strong>\n  <\/p>\n<p>\n    Subscribe to the <a href=\"https:\/\/www.simoahava.com\/newsletter\/\">Simmer newsletter<\/a> to get the latest news and content from Simo Ahava into your email inbox!\n  <\/p>\n<p>  <\/span><\/p>\n<h2 id=\"ecommerce-and-content-huh\">Ecommerce and content, huh?<\/h2>\n<div style=\"aspect-ratio: 1597 \/ 874;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-funnel.jpg\" title=\"Checkout Funnel in the reports\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"874\" width=\"1597\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-funnel.jpg#ZgotmplZ\" alt=\"Checkout Funnel in the reports\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>You might be surprised at what the premise of this article is. Usually, Ecommerce plugins are used to track transactions on your web store, so what does this have to do with content? Well, I don\u2019t have a web store on my blog, but every reader who reads an article is valuable to me. If they are valuable, there must be some way to measure their value, and perhaps use this data to benchmark against future products (i.e. articles) I want to create.<\/p>\n<p>Enhanced Ecommerce gives you a <a href=\"https:\/\/support.google.com\/analytics\/answer\/6014872?hl=en\">bunch of useful reports<\/a>, which you can use to track not only store transactions but any kind of user interaction on your site. You just have to see your site in terms of <em>funnels<\/em>. This means that you need to translate Ecommerce terminology to match the conceptual framework of your site, whether it\u2019s a blog, a web store, a news portal, or a brand site.<\/p>\n<p>On my blog, the terminology ended up something like this:<\/p>\n<ul>\n<li>\n<p><strong>Product<\/strong>: A blog article.<\/p>\n<\/li>\n<li>\n<p><strong>Product price<\/strong>: The number of words in the article.<\/p>\n<\/li>\n<li>\n<p><strong>Product impression<\/strong>: At minimum the title, but usually title + ingress combination of articles on various category pages, and in article sidebars.<\/p>\n<\/li>\n<li>\n<p><strong>Product list<\/strong>: A page or widget which holds a number of Product impressions. For example, my home page, category pages, tag pages, and related posts lists are all considered Product lists in my Enhanced Ecommerce setup.<\/p>\n<\/li>\n<li>\n<p><strong>Product list click<\/strong>: A click action on an article title or \u201cRead more\u2026\u201d link in the product lists.<\/p>\n<\/li>\n<li>\n<p><strong>Product detail view<\/strong>: When the article is loaded.<\/p>\n<\/li>\n<li>\n<p><strong>Add to cart<\/strong>: When scrolling begins on the article. I can assume that the reader wants to \u201cbuy\u201d it if they start scrolling.<\/p>\n<\/li>\n<li>\n<p><strong>Checkout<\/strong>: The Checkout funnel in my setup is based on scroll tracking. The first step is when the reader reaches one third of the article, the second step when they scroll two thirds, and the last step is when the article end is reached.<\/p>\n<\/li>\n<li>\n<p><strong>Purchase<\/strong>: Purchase occurs when the checkout funnel is passed through, and a minimum of 60 seconds has elapsed since the article was loaded. This is an arbitrary number of seconds I simply chose to weed out casual readers from actual readers.<\/p>\n<\/li>\n<\/ul>\n<p><strong>UPDATE<\/strong>: Thanks to an idea from <a href=\"http:\/\/www.degordian.com\/blog\/author\/robert-petkovic\/\">Robert Petkovi\u0107<\/a>, I updated the collection method with <strong>Product Detail<\/strong> impressions and <strong>Add To Cart<\/strong> actions. These were missing from the first version of this article. I also changed the checkout funnel to reflect scroll depth.<\/p>\n<h2 id=\"how-to-set-it-up\">How to set it up<\/h2>\n<p>First, here\u2019s the Git repository link for this solution: <a href=\"https:\/\/github.com\/sahava\/eec-gtm\">eec-gtm<\/a>.<\/p>\n<p>I\u2019ll reveal a dirty secret from the get-go: I scrape the DOM for my setup. It\u2019s definitely not the most robust way to go, but since I\u2019m the developer, the marketer, the owner, and the content creator on my site, I can be safe to know that any changes to the page template are totally under my own control.<\/p>\n<p>The way it SHOULD work is to leverage <code>dataLayer<\/code>. You have a number of options when doing this. You could, for example, store every single product on the page into <code>dataLayer<\/code> when the page is rendered, and then pick the relevant objects when impressions are loaded, or when user actions like clicks take place. Another way to go is to store the products in some other global JavaScript variable, which is, perhaps, a bit easier to access, but it does pollute the global namespace which should generally be avoided.<\/p>\n<p>Anyway, I scrape. I\u2019m a scraper. I did it for science, for progress, for technology. And because I was a bit lazy and didn\u2019t want to customise my WordPress hooks. But, in short, here\u2019s how my setup works.<\/p>\n<h3 id=\"1-product-impressions\">1. Product impressions<\/h3>\n<p>On every page which has product lists, I build the <code>ecommerce.impressions<\/code> Array as soon as the DOM has loaded. In this Array, each object is a single article title (+ ingress) that\u2019s visible in one of the possible product lists. Product lists on my site are:<\/p>\n<ul>\n<li>\n<p>Main posts &#8211; the home page listing<\/p>\n<\/li>\n<li>\n<p>Category posts &#8211; if a visitor has chosen to see all posts in a given category<\/p>\n<\/li>\n<li>\n<p>Tag posts &#8211; if a visitor has chosen to see all posts tagged with a specific tag<\/p>\n<\/li>\n<li>\n<p>Search results &#8211; the list of results you get if you use internal search<\/p>\n<\/li>\n<li>\n<p>Recent posts &#8211; the \u201cRecent posts\u201d widget in the sidebar<\/p>\n<\/li>\n<li>\n<p>Recent comments &#8211; the \u201cRecent comments\u201d widget in the sidebar<\/p>\n<\/li>\n<li>\n<p>GTM Tips &#8211; the \u201cGTM Tips\u201d widget in the sidebar<\/p>\n<\/li>\n<\/ul>\n<p>List position is determined by the order of posts in the list. An individual product object would look something like this:<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\">{\n    <span style=\"color:#a50\">'category'<\/span> : <span style=\"color:#a50\">'analytics'<\/span>,\n    <span style=\"color:#a50\">'id'<\/span> : <span style=\"color:#a50\">'TriggerGuideForGoogleTagManager'<\/span>,\n    <span style=\"color:#a50\">'list'<\/span> : <span style=\"color:#a50\">'Main posts'<\/span>,\n    <span style=\"color:#a50\">'name'<\/span> : <span style=\"color:#a50\">'Trigger Guide For Google Tag Manager'<\/span>,\n    <span style=\"color:#a50\">'position'<\/span> : <span style=\"color:#099\">2<\/span>\n}\n<\/code><\/pre>\n<\/div>\n<p>As you can see, it\u2019s very simple. <code>category<\/code> is the WordPress category assigned to the post (there\u2019s only every one category on my articles), <code>id<\/code> is a truncated version of the article title, <code>name<\/code> is the name of the article, and <code>list<\/code> and <code>position<\/code> define where the impression was listed.<\/p>\n<p>So for every impression, I push an object like above into the Array. I also have a <strong>Promotion view<\/strong> for my \u201cWere you looking for my GTM posts?\u2026\u201d info box on the home page of my site, but this hasn\u2019t proven very useful, so I might remove it.<\/p>\n<p>On any given page, the Array might look something like this:<\/p>\n<div style=\"aspect-ratio: 537 \/ 327;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/sample-datalayer.jpg\" title=\"Sample data layer for impressions\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"327\" width=\"537\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/sample-datalayer.jpg#ZgotmplZ\" alt=\"Sample data layer for impressions\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>A very simple setup for a very simple purpose. I send this Array with a <strong>Non-Interaction: True<\/strong> Event tag, because I don\u2019t want to delay my pageview from firing until the impression Array is built, and I don\u2019t want impressions to affect bounce rate.<\/p>\n<h3 id=\"2-product-list-clicks\">2. Product list clicks<\/h3>\n<p>I track product list clicks using a <strong>Link Click<\/strong> trigger. When someone clicks on an article title or the \u201cRead more\u2026\u201d link on the product list, I push details about the clicked product into <code>dataLayer<\/code>, together with the \u2018productClick\u2019 value for the \u2018event\u2019 key, which then triggers an Event tag.<\/p>\n<div style=\"aspect-ratio: 573 \/ 305;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-click-datalayer.jpg\" title=\"Product Click event\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"305\" width=\"573\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-click-datalayer.jpg#ZgotmplZ\" alt=\"Product Click event\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Firing this event lets me see the effectiveness of my product lists. It gives me information about how the different lists fare in light of the entire customer journey from product impression to purchase.<\/p>\n<h3 id=\"3-the-checkout-flow\">3. The Checkout Flow<\/h3>\n<p>The checkout flow combines Product Detail impressions, Add To Cart actions, and the checkout flow itself.<\/p>\n<p>A <strong>Product Detail impression<\/strong> is sent as a Non-interaction: True event as soon as the article is loaded. This impression can thus be interpreted as the reader quickly checking out whether or not they want to read the article.<\/p>\n<p>The <strong>Add To Cart<\/strong> action occurs when the user starts scrolling. The payload is sent with a normal Event tag to Google Analytics. I consider scrolling to be revealing of the reader\u2019s intention to consume the content, but it\u2019s not a checkout yet, as they might just want to skim the first paragraph.<\/p>\n<p>The checkout flow itself is pretty cool. I use the scroll tracking plugin Justin Cutroni <a href=\"http:\/\/cutroni.com\/blog\/2014\/02\/12\/advanced-content-tracking-with-universal-analytics\/\">wrote about<\/a> on his site. I\u2019ve modified it to work with Google Tag Manager, and I also customised it to work with \u201cPurchases\u201d as well (see next chapter).<\/p>\n<p>Here\u2019s how it works right now:<\/p>\n<ol>\n<li>\n<p>I calculate the length of the content DIV in pixels.<\/p>\n<\/li>\n<li>\n<p>When the viewport of the user\u2019s browser reaches one third of this length, the first checkout step is sent as a normal Google Analytics event. This step is labelled \u201cRead one third\u201d.<\/p>\n<\/li>\n<li>\n<p>When the browser reaches two thirds of the content length, the second checkout step is sent as a GA event. This step is labelled \u201cRead two thirds\u201d.<\/p>\n<\/li>\n<li>\n<p>When the browser reaches the end of the content DIV, the final checkout step is sent as a GA event. This step is labelled \u201cReached end of content\u201d.<\/p>\n<\/li>\n<li>\n<p>Finally, if the user has reached Step 3 <em>and<\/em> spent a minimum of 60 seconds on the article page, the \u201cPurchase\u201d event is sent as well (see next chapter).<\/p>\n<\/li>\n<\/ol>\n<div style=\"aspect-ratio: 798 \/ 525;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/enhanced-ecommerce-checkout.jpg\" title=\"Enhanced Ecommerce checkout settings\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"525\" width=\"798\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/enhanced-ecommerce-checkout.jpg#ZgotmplZ\" alt=\"Enhanced Ecommerce checkout settings\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>You\u2019ll need to modify this funnel and the setup to match the type of content you write. You might want to change the dwell time from 60 seconds to something else, and you might want to add more steps to the checkout funnel (25 %, 50 %, 75 %, for example). For me, this level of granularity was enough.<\/p>\n<div style=\"aspect-ratio: 548 \/ 321;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-step.jpg\" title=\"Checkout step\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"321\" width=\"548\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-step.jpg#ZgotmplZ\" alt=\"Checkout step\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>That\u2019s a sample checkout object for the second step of the funnel. As you can see, I have <strong>price<\/strong> as one of the properties of the article. Here\u2019s the kicker: <strong>price is the number of words on the article<\/strong>. Naturally, I\u2019ve turned it into a \u201c.99\u201d number to make it more realistic as an actual price \ud83d\ude42 You\u2019ll see the usefulness of this once I get to the reports.<\/p>\n<h3 id=\"4-purchase\">4. Purchase<\/h3>\n<p>Like I wrote in the previous chapter, a \u201cPurchase\u201d event is pushed when the checkout funnel is completed, and the visitor has spent 60 seconds on the site. The purchase itself is a perfectly standard Enhanced Ecommerce Purchase object, which might look like this:<\/p>\n<div style=\"aspect-ratio: 551 \/ 403;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/purchase-datalayer.jpg\" title=\"Purchase event in dataLayer\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"403\" width=\"551\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/purchase-datalayer.jpg#ZgotmplZ\" alt=\"Purchase event in dataLayer\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The transaction ID is basically <em>epoch timestamp<\/em> plus a string of random characters. The quantity of products in a transaction will always be 1.<\/p>\n<h2 id=\"the-analysis\">The analysis<\/h2>\n<p>So, let\u2019s go over my favorite reports and segments. First, there\u2019s the Shopping Behavior report:<\/p>\n<div style=\"aspect-ratio: 798 \/ 396;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/shopping-behavior.jpg\" title=\"Shopping Behavior report\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"396\" width=\"798\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/shopping-behavior.jpg#ZgotmplZ\" alt=\"Shopping Behavior report\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>As you can see, this shows the interactions during the selected timeframe. In this example, the timeframe is just one day. I\u2019ve removed the absolute numbers, but I\u2019ll update this screenshot once I have more data. The behavior funnel is fairly logical. There\u2019s around 20 % drop-off on each step, with a larger abandonment leading up to purchase. 15 % of people never open an article, which is interesting! This could also be a measurement error thanks to my DOM scraping, but it\u2019s still understandable considering the amount of traffic I get on my blog.<\/p>\n<p>Also, 25 % of the people who start scrolling never reach one third of the article. This is also interesting. It means that there\u2019s something in the first paragraphs that drives the reader away.<\/p>\n<p>This data should next be segmented and carefully analysed. How can I optimise the funnel further? Two immediate concerns I have is the overall low conversion rate (only 25 % of my readers end up reading an entire article while spending more than 60 seconds on the article page), and the fact that only 40 % of people who start reading end up reading the article thoroughly. This is, of course, a sign of normalcy in the blogosphere, but it\u2019s definitely something I want to improve.<\/p>\n<div style=\"aspect-ratio: 1597 \/ 874;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-funnel.jpg\" title=\"The Checkout Funnel report\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"874\" width=\"1597\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/checkout-funnel.jpg#ZgotmplZ\" alt=\"The Checkout Funnel report\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Now <strong>this<\/strong> is interesting! <strong>Half<\/strong> of my readers start in the checkout funnel, and only half of these reach the end <strong>and<\/strong> read for more than 60 seconds. Talk about selective reading! My content is pretty lengthy by average, so it\u2019s interesting to see if article length is a factor here. Or maybe some people just jump straight to the comments, which is perfectly understandable. Actually, I should track this as well! Mental note.<\/p>\n<p>So there\u2019s a big disconnect between starting to read and reaching the end of content. I might have to do something about this. Like, writing more interesting articles. But it\u2019s still respectable how many people actually take their time to read the article.<\/p>\n<p>Naturally, one problem with this Checkout Funnel report is that the checkout funnel varies from article to article. Longer articles have a far higher threshold for hitting the funnel steps (since the steps are dependent on the pixel height of the content DIV), which means I should see a far higher rate for checkouts on shorter articles.<\/p>\n<p>Next, we have the Product Performance report:<\/p>\n<div style=\"aspect-ratio: 798 \/ 352;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-performance.jpg\" title=\"Product Performance report\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"352\" width=\"798\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-performance.jpg#ZgotmplZ\" alt=\"Product Performance report\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Oh, this is so much fun. During the week, almost <strong>six million words<\/strong> have been \u201cPurchased\u201d on my articles! This means that six million words worth of article content passed through the checkout funnel into the Purchase column. Awesome!<\/p>\n<p>(<strong>UPDATE<\/strong>: I\u2019m still waiting to get more data before updating this chapter with Buy-to-Detail and Cart-to-Detail rate analyses.)<\/p>\n<p>If you look at Average Price, you can see that the list is topped by some of my longer articles. It\u2019s still heart-warming to see some shorter ones on the top 10 list, delivering me \u201cword revenue\u201d.<\/p>\n<p>Sales Performance isn\u2019t very useful, since transactions are pretty arbitrary on my blog. I\u2019ll jump straight to Product List Performance (sorry about the poor screenshot):<\/p>\n<div style=\"aspect-ratio: 1597 \/ 404;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-list-performance.jpg\" title=\"Product List Performance\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"404\" width=\"1597\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/12\/product-list-performance.jpg#ZgotmplZ\" alt=\"Product List Performance\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Key takeways from this report are that my sidebar widgets aren\u2019t really useful. I should probably get rid of them as soon as I can think of something value-adding to put there instead. Well, the \u201cRecent posts\u201d list has a pretty high number of clicks, so I might preserve that.<\/p>\n<p>(<strong>UPDATE<\/strong>: I\u2019m still waiting to get more data before updating this chapter with Product Adds To Cart analysis.)<\/p>\n<p>My top-performing list is naturally the home page listing. It has a very respectable CTR of 16.47 %. \u201cCategory posts\u201d and \u201cTag posts\u201d are much less popular, but even they attract clicks quite a bit.<\/p>\n<p>\u201cSearch results\u201d is doing very well, which is important. I want people to find what they were searching for. Naturally, I follow my most searched-for terms like a hawk, getting content ideas at the same time.<\/p>\n<p>Since I have all this amazing data at my fingertips, I can create a bunch of awesome segments as well:<\/p>\n<ul>\n<li>\n<p><em>Whales<\/em>: <strong>Revenue<\/strong> per user &gt; <strong>10000<\/strong> &#8211; To track readers who\u2019ve \u201cpurchased\u201d more than 10,000 words in their lifespan.<\/p>\n<\/li>\n<li>\n<p><em>Passers-by<\/em>: <strong>Transactions<\/strong> per user = <strong>1<\/strong> &#8211; To track readers who\u2019ve only \u201cpurchased\u201d a single article in their lifespan.<\/p>\n<\/li>\n<li>\n<p><em>Skimmers<\/em>: <strong>Transactions<\/strong> per user = <strong>0<\/strong> AND <strong>Event Action<\/strong> exactly matches <strong>Checkout<\/strong> &#8211; To track readers who\u2019ve started the checkout flow but never completed a \u201cpurchase\u201d.<\/p>\n<\/li>\n<li>\n<p><em>Loyal readers<\/em>: (Include Users) <strong>Revenue<\/strong> per hit &gt; <strong>3000<\/strong> &#8211; To track readers who only read my longer articles.<\/p>\n<\/li>\n<\/ul>\n<p>And many other segments as well! Now I can segment my channels to see which channels bring the most valuable readers. Note that I don\u2019t automatically consider it more valuable to have a reader read my longer articles, which is where the whole \u201cwords as price\u201d idea falls down. I enjoy writing short articles as well, and especially my <a href=\"https:\/\/www.simoahava.com\/categories\/gtm-tips\/\">#GTMTips<\/a> posts are usually a bit shorter length-wise.<\/p>\n<h2 id=\"summary\">Summary<\/h2>\n<p>I hope this post has been inspiring. The data I\u2019m getting into my reports is so interesting and actionable. It does require tweaking, however, so I might need to work with the checkout funnel, in order to optimise the flow of reading from article load to the end of content.<\/p>\n<p>With the help of one of my blog commenters, I\u2019ve updated the setup to include Product Detail impressions and Add to Cart actions, but it will still take a week or so to get more data, so you can expect another update to this article soon.<\/p>\n<p>Let me know if you\u2019ve tried something like this or if you have other ideas for tracking content with Enhanced Ecommerce! I\u2019m sorry I can\u2019t really give you a step-to-step guide at this point, but as I\u2019ve done this with DOM scraping, I don\u2019t really want to flaunt the solution, since I don\u2019t consider it best practices. But they key thing in this article is to inspire you to think of your content in terms of funnels and transactions. I really love the new Enhanced Ecommerce reports, and I hope I\u2019ve shown you how flexible they are for other uses as well than just web stores.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>My fingers have been tingling to write this article. Ever since I implemented Enhanced Ecommerce on my blog a couple of weeks ago, I\u2019ve been getting such an impressive amount of useful data that it\u2019s mind-boggling. In this article, I\u2019ll walk you through the steps I went to implement the solution, along with examples of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":153567,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[7222,11161,14269,1018],"dealstore":[],"offerexpiration":[],"class_list":["post-153566","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-content","tag-ecommerce","tag-enhanced","tag-track"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Track Content With Enhanced Ecommerce - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=153566\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Track Content With Enhanced Ecommerce - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"My fingers have been tingling to write this article. Ever since I implemented Enhanced Ecommerce on my blog a couple of weeks ago, I\u2019ve been getting such an impressive amount of useful data that it\u2019s mind-boggling. In this article, I\u2019ll walk you through the steps I went to implement the solution, along with examples of [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=153566\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-24T11:30:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1597\" \/>\n\t<meta property=\"og:image:height\" content=\"874\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=153566#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Track Content With Enhanced Ecommerce\",\"datePublished\":\"2025-03-24T11:30:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566\"},\"wordCount\":2688,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg\",\"keywords\":[\"Content\",\"ECommerce\",\"enhanced\",\"Track\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=153566#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=153566\",\"url\":\"https:\/\/fivemor.com\/?p=153566\",\"name\":\"Track Content With Enhanced Ecommerce - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg\",\"datePublished\":\"2025-03-24T11:30:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=153566#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=153566\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=153566#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg\",\"width\":1597,\"height\":874},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=153566#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Track Content With Enhanced Ecommerce\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Track Content With Enhanced Ecommerce - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=153566","og_locale":"en_US","og_type":"article","og_title":"Track Content With Enhanced Ecommerce - Som2ny Network","og_description":"My fingers have been tingling to write this article. Ever since I implemented Enhanced Ecommerce on my blog a couple of weeks ago, I\u2019ve been getting such an impressive amount of useful data that it\u2019s mind-boggling. In this article, I\u2019ll walk you through the steps I went to implement the solution, along with examples of [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=153566","og_site_name":"Som2ny Network","article_published_time":"2025-03-24T11:30:17+00:00","og_image":[{"width":1597,"height":874,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=153566#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=153566"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Track Content With Enhanced Ecommerce","datePublished":"2025-03-24T11:30:17+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=153566"},"wordCount":2688,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=153566#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg","keywords":["Content","ECommerce","enhanced","Track"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=153566#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=153566","url":"https:\/\/fivemor.com\/?p=153566","name":"Track Content With Enhanced Ecommerce - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=153566#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=153566#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg","datePublished":"2025-03-24T11:30:17+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=153566#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=153566"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=153566#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/checkout-funnel.jpg","width":1597,"height":874},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=153566#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Track Content With Enhanced Ecommerce"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/153566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=153566"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/153566\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/153567"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=153566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=153566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=153566"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=153566"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=153566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}