{"id":59757,"date":"2025-01-31T10:29:33","date_gmt":"2025-01-31T10:29:33","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/track-and-categorize-all-link-clicks-on-the-site-with-google-analytics-4\/"},"modified":"2025-01-31T10:29:33","modified_gmt":"2025-01-31T10:29:33","slug":"track-and-categorize-all-link-clicks-on-the-site-with-google-analytics-4","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=59757","title":{"rendered":"Track And Categorize All Link Clicks On The Site With Google Analytics 4"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<blockquote>\n<p>This is a <strong>guest<\/strong> post by <a href=\"https:\/\/www.linkedin.com\/in\/sebastianp\/\">Sebastian Pospischil<\/a>, Evangelist Digital Analytics at <strong>TRKKN<\/strong>. All credit for the solution goes to him. The <strong>Summary<\/strong> section is the only one authored by Simo Ahava.<\/p>\n<\/blockquote>\n<p>You know the deal.<\/p>\n<p>Each and every day, clients reach out to you asking for <strong>custom click tracking<\/strong> for this call-to-action on that slider, or that button in this section of a page. They reach out to you because such things cannot be answered out of the box in <a href=\"https:\/\/analytics.google.com\/\">Google Analytics 4<\/a>.<\/p>\n<div style=\"aspect-ratio: 1122 \/ 775;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/track-link-clicks-with-link-id.jpg\" title=\"Track all link clicks with link_id\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"775\" width=\"1122\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/track-link-clicks-with-link-id.jpg#ZgotmplZ\" alt=\"Track all link clicks with link_id\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Then you roll up your sleeves, create new tags, triggers, and variables, and ultimately the <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager<\/a> container will look like a mess. Somehow you\u2019ve reached a point where almost each and every page view is <em>also<\/em> tracked with a click event. That makes no sense.<\/p>\n<p><strong>Would you like to overcome this? Do you want to help your clients without messing up their containers? Take a look at what this solution promises to report:<\/strong><\/p>\n<ul>\n<li>In which sections did a click happen?<\/li>\n<li>On what page did the click happen?<\/li>\n<li>To which page did the link redirect?<\/li>\n<li>Which sections were clicked the most in total, per template, or per page?<\/li>\n<li>Which events are generated on which sections of a page or a template?<\/li>\n<\/ul>\n<p>Yes, you read that last bullet correctly \u2013 this works for each and every event, too, and not just page views!<\/p>\n<p>All you need is <strong>one tag<\/strong> and <strong>three little variables<\/strong>.<\/p>\n<blockquote>\n<p>Unfortunately, due to restrictions of the <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/templates\/api\">Custom Template Sandboxed JavaScript<\/a>, you\u2019ll need to implement this solution with <strong>custom JavaScript<\/strong>.<\/p>\n<\/blockquote>\n<p>You can download a workspace with the tag and variables by clicking <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/workspace_link_id.json\">this link<\/a>.<\/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=\"technical-walkthrough\">Technical walkthrough<\/h2>\n<p>You need to <strong>divide your website template into sections<\/strong>, so that the script returns the correct <code>link_id<\/code>. You\u2019ll also need to <strong>define what a link is<\/strong> to get accurate results.<\/p>\n<p>The <strong>tag<\/strong> will then set a <strong>cookie<\/strong> with the <code>link_id<\/code> of each click OR when pressing Enter on the keyboard on a defined link. When reaching the next page, the information will be read out and passed into Google Analytics 4 with the <code>page_view<\/code> event. This helps to prevent event spam in your analytics data.<\/p>\n<p>There will also be a <code>link_id_events_cJS<\/code> variable which can be used to attach the corresponding <code>link_id<\/code> to any event you want to include in this tracking setup. There\u2019s no cookie involved with this approach, because the events take place on the page itself and the information doesn\u2019t need to be persisted to the following page.<\/p>\n<blockquote>\n<p><strong>NOTE!<\/strong> This is not a solution for total GTM \/ web development newbies. You\u2019re expected to know how GTM works and what HTML elements and CSS selectors are. Furthermore, this article does not cover how to use <code>link_id<\/code> for single-page applications (SPAs) specifically.<\/p>\n<\/blockquote>\n<h2 id=\"how-do-i-set-it-up\">How do I set it up?<\/h2>\n<p>The steps you need to take are these:<\/p>\n<ol>\n<li><a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/workspace_link_id.json\">Download<\/a> and <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6106997\">import<\/a> the workspace into your container.<\/li>\n<li>Configure the tag and variables \u2013\u00a0the code is commented with instructions but there are additional tips below. Set the tag to fire on the <strong>All Pages<\/strong> trigger, for example.<\/li>\n<li>Add <code>link_id_page_cJS<\/code> (name the event parameter just <code>link_id<\/code>) and <code>link_id_page_template_var<\/code>(name the event parameter <code>link_id_page_template<\/code>) to your <code>page_view<\/code> tag.<\/li>\n<li>Add <code>link_id_events_cJS<\/code> to your event tag(s) (name the parameter <code>link_id<\/code> again \u2013 it\u2019s easier to have everything under the same parameter name).<\/li>\n<li>Create the dimensions accordingly in the GA4 UI (<code>link_id<\/code> and <code>link_id_page_template<\/code>).<\/li>\n<\/ol>\n<blockquote>\n<p><strong>NOTE!<\/strong> This solution has to set a <strong>first-party cookie<\/strong>. You can name it however you wish, but you need to add it to your privacy policy \/ cookie notice \/ other relevant documentation to be compliant with whatever legal regulation applies to accessing device storage. The value doesn\u2019t contain personal data \u2013 it just encodes details about the page and section that was clicked. The cookie will be deleted as soon as its value is accessed on the following page.<\/p>\n<\/blockquote>\n<h2 id=\"how-to-configure-the-script\">How to configure the script<\/h2>\n<p>If you\u2019re not familiar with <strong>HTML<\/strong> and <strong>CSS selectors<\/strong>, you may struggle with these initially. But I\u2019ll help you, don\u2019t worry!<\/p>\n<p>As an example, I\u2019ll provide you with a walkthrough of my own project. If you want to see this in action, you can visit the site where the setup is running: <a href=\"https:\/\/www.kunstform.org\/\">https:\/\/www.kunstform.org\/<\/a>.<\/p>\n<h3 id=\"divide-the-website-html-template-into-sections\">Divide the website HTML template into sections<\/h3>\n<p>To add information about which <em>section<\/em> of the page the click happened in, you need to define these sections in the <code>clickIdentifier<\/code> configuration.<\/p>\n<p>In Google Tag Manager, open the Custom HTML tag that contains the script.<\/p>\n<p>Under the <code>gtm_link_id<\/code> variable initialization, you\u2019ll see a property called <code>clickIdentifier<\/code>. This is an object where you provide the site section details using a special syntax:<\/p>\n<p><code>\"[CSS SELECTOR]\": \"[DYNAMIC VALUE]#[FIXED VALUE]\"<\/code><\/p>\n<p>For the <strong>CSS selector<\/strong>, add a selector that matches that particular section of the page.<\/p>\n<p>The <strong>fixed value<\/strong> is what the section will always be called in the parameter value.<\/p>\n<p>If you specify a <strong>dynamic value<\/strong>, it attempts to pull in the value from the attribute name(s) you provide.<\/p>\n<p>When a click lands on the element specified by the CSS selector, the tag creates the <code>link_id<\/code> parameter by concatenating the <strong>fixed value<\/strong> first (if available), followed by the <code>&gt;<\/code> separator and the <strong>dynamic value<\/strong>.<\/p>\n<p>For example:<\/p>\n<table>\n<thead>\n<tr>\n<th>Rule<\/th>\n<th>Target element<\/th>\n<th>Label<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\"div#myhome\": \"id#main_section\"<\/code><\/td>\n<td><code\/><\/td>\n<td><code>main_section &gt; myhome<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>\"nav\": \"#navigation\"<\/code><\/td>\n<td><code><\/p>\n<nav\/><\/code><\/td>\n<td><code>navigation<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>\"span[data-gtm]\": \"data-gtm#tagged_element\"<\/code><\/td>\n<td><code><span data-gtm=\"&quot;...&quot;\"\/><\/code><\/td>\n<td><code>tagged_element &gt; ...<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To build this list of sections, you need to refer to the HTML of your page templates. Not all template engines generate useful HTML, so it\u2019s possible you\u2019ll need to talk to your developers to get their help in rewiring the HTML structure of your site to be more tracking-friendly.<\/p>\n<p>Here\u2019s how I set this up on <a href=\"https:\/\/www.kunstform.org\/:\">https:\/\/www.kunstform.org\/:<\/a><\/p>\n<ol>\n<li>\n<p>Open the website, right-click anywhere on the page, and select <strong>Inspect<\/strong> (or similar) from the context menu.<\/p>\n<\/li>\n<li>\n<p>You should now see something like this. When hovering over the HTML code, you\u2019ll notice how the different sections get highlighted. Click these tiny grey arrows in order to only show the main sections. This will be our starting point.<\/p>\n<\/li>\n<\/ol>\n<div style=\"aspect-ratio: 1552 \/ 722;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/inspect-elements.jpg\" title=\"Inspect the HTML of the page\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"722\" width=\"1552\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/inspect-elements.jpg#ZgotmplZ\" alt=\"Inspect the HTML of the page\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<ol start=\"3\">\n<li>Following this example, we would divide the template into the following sections (by ID):\n<ol>\n<li><code>header<\/code><\/li>\n<li><code>navbar<\/code><\/li>\n<li><code>content<\/code><\/li>\n<li><code>left<\/code><\/li>\n<li><code>right<\/code><\/li>\n<li><code>footer<\/code><\/li>\n<li><code>subfooter<\/code><\/li>\n<li><code>cookie_consent<\/code><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Because this site only has the <code>id<\/code> attribute on <code><\/p>\n<div> tags, we can set up this tracking with a <em>very<\/em> simple <code>clickIdentifier<\/code> rule:<\/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\">clickIdentifer: {\n  <span style=\"color:#a50\">\"div[id]\"<\/span>: <span style=\"color:#a50\">\"id\"<\/span>\n}\n<\/code><\/pre>\n<\/div>\n<p>If you recall from above, this means that the script tracks clicks within <em>all<\/em> <code><\/p>\n<div> elements that have the <code>id<\/code> attribute. The label of the section is dynamically pulled from the <code>id<\/code> attribute.<\/p>\n<p>As an example of something different, this is what I would set up on the <a href=\"https:\/\/www.trkkn.com\/\">https:\/\/www.trkkn.com\/<\/a> website:<\/p>\n<div style=\"aspect-ratio: 1913 \/ 1033;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/trkkn-tracking.jpg\" title=\"trkkn.com tracking setup\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1033\" width=\"1913\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/trkkn-tracking.jpg#ZgotmplZ\" alt=\"trkkn.com tracking setup\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\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\">clickIdentifier: {\n  <span style=\"color:#a50\">\"nav\"<\/span>: <span style=\"color:#a50\">\"#navigation\"<\/span>, <span style=\"color:#aaa;font-style:italic\">\/\/ Fixed value: \"navigation\"\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>  <span style=\"color:#a50\">\"footer\"<\/span>: <span style=\"color:#a50\">\"#footer\"<\/span>, <span style=\"color:#aaa;font-style:italic\">\/\/ Fixed value: \"footer\"\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>  <span style=\"color:#a50\">\"header\"<\/span>: <span style=\"color:#a50\">\"#header\"<\/span>, <span style=\"color:#aaa;font-style:italic\">\/\/ Fixed value \"header\"\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>  <span style=\"color:#a50\">\"main section\"<\/span>: <span style=\"color:#a50\">\"class\"<\/span>, <span style=\"color:#aaa;font-style:italic\">\/\/ Dynamic value from the [class] attribute\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>  <span style=\"color:#a50\">\"div[id]\"<\/span>: <span style=\"color:#a50\">\"id\"<\/span> <span style=\"color:#aaa;font-style:italic\">\/\/ Fallback, passes the dynamic value of the [id] attribute of the clicked <p> element\n<span style=\"color:#aaa;font-style:italic\"\/>}\n<\/p>\n<p>Hopefully that\u2019s clear now. After specifying the <em>basic<\/em> sections of the template, we can drill deeper into the content section of the page.<\/p>\n<p>For example, we want to track this slider and this sale section:<\/p>\n\n\n\n<div style=\"aspect-ratio: 1602 \/ 752;\" class=\"figure nocaption\">\n  \n    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/drill-into-content-section.jpg\" title=\"Drill into the content section\">\n  \n    <img decoding=\"async\" class=\"fig-img\" height=\"752\" width=\"1602\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/drill-into-content-section.jpg#ZgotmplZ\" alt=\"Drill into the content section\"\/>\n  \n    <\/a>\n  \n  \n<\/div>\n\n\n<p>Here\u2019s what the updated <code>clickIdentifier<\/code> would look like:<\/p>\n<div class=\"highlight\"><pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\">clickIdentifier: {\n  <span style=\"color:#a50\">\"div#mainstage\"<\/span>: <span style=\"color:#a50\">\"#slider_main\"<\/span>,\n  <span style=\"color:#a50\">\"div#index\"<\/span>: <span style=\"color:#a50\">\"#sale\"<\/span>,\n  <span style=\"color:#a50\">\"div[id]\"<\/span>: <span style=\"color:#a50\">\"id\"<\/span>\n}\n<\/code><\/pre>\n<\/div>\n<p>We added these to the top of the list, because the script evaluates the selectors in order from first to last and uses the first match to generate the label.<\/p>\n<p>You can use the technique to divide your template even more, if you wish.<\/p>\n<blockquote>\n<p>I recommend you start easy at first. Specify the basic sections first and perhaps sprinkle in some detailed sections on the home page. You can then collect data for a while before adding additional content sections on other pages, too.<\/p>\n<\/blockquote>\n<h3 id=\"define-which-interactions-constitute-a-click\">Define which interactions constitute a click<\/h3>\n<p>For this solution to be accurate, we\u2019ll need to specify what we consider to be a \u201clink click\u201d. For example, in addition to <code><a\/><\/code> link elements, some form submissions and some button clicks can generate a redirect, too.<\/p>\n<p>To specify the selectors for what you want to be treated as a link when targeted with a click, edit the <code>clickSelector<\/code> property in the <code>gtm_link_id<\/code> initialization object.<\/p>\n<p>Set its value to a comma-separated list of selectors that match elements upon which a click should be considered a \u201clink click\u201d. For example, this is a good starting point:<\/p>\n<p>clickSelector: \u2018a,input[type=\"submit\u201d],button'`<\/p>\n<p>On the <a href=\"https:\/\/www.kunstform.org\">https:\/\/www.kunstform.org<\/a> site, we need to also add the search field, because pressing enter there will lead to a redirect to the search results page.<\/p>\n<div style=\"aspect-ratio: 1365 \/ 760;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/kunstform-search-field.jpg\" title=\"Kunstform search field\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"760\" width=\"1365\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/kunstform-search-field.jpg#ZgotmplZ\" alt=\"Kunstform search field\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Here\u2019s what the updated <code>clickSelector<\/code> looks like:<\/p>\n<p><code>clickSelector: 'a,input[type=\"submit\"],button,#input_search'<\/code><\/p>\n<p>At this point you might be wondering just how much you need to configure for this to work. Do you need to crawl all the pages of the website to see if you\u2019ve missed something?<\/p>\n<p>It might be a good idea to take a look at the <strong>reports<\/strong> at this point to help soothe your mind.<\/p>\n<h2 id=\"reports-in-google-analytics-4\">Reports in Google Analytics 4<\/h2>\n<p>Here are some sample report configurations you can use once you\u2019ve created the required Custom Dimensions (<code>link_id<\/code> and <code>link_id_page_template<\/code>).<\/p>\n<h3 id=\"which-sections-are-clicked-the-most-overall\">Which sections are clicked the most overall?<\/h3>\n<ul>\n<li>Dimension: <code>link_id<\/code><\/li>\n<li>Filter: <code>event equals page_view<\/code><\/li>\n<\/ul>\n<div style=\"aspect-ratio: 1360 \/ 750;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/which-sections-are-most-clicked.jpg\" title=\"Which sections are clicked the most?\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"750\" width=\"1360\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/which-sections-are-most-clicked.jpg#ZgotmplZ\" alt=\"Which sections are clicked the most?\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Notice the entries marked in yellow? When this solution was deployed on the site, there were some gaps in the data collection. These special entries are used to provide more details.<\/p>\n<ul>\n<li><strong>(back_forward)<\/strong>: The user navigated with the browser\u2019s back or forward button.<\/li>\n<li><strong>(reload)<\/strong>: The user reloaded the page.<\/li>\n<li><strong>(landing page)<\/strong>: The user landed on the site via this page, because the <code>document.referrer<\/code> is a different site than yours.<\/li>\n<li><strong>(cookie missing)(navigate)<\/strong>: There is no cookie but the user definitely navigated. <em>This means that there are still sections that you haven\u2019t tracked as potential navigation sources in <code>clickSelector<\/code><\/em>.<\/li>\n<li><strong>(error)<\/strong>: There was an error with the <a href=\"https:\/\/caniuse.com\/mdn-api_performancenavigationtiming\"><code>PerformanceNavigationTiming<\/code> API<\/a><\/li>\n<\/ul>\n<h3 id=\"how-do-i-fix-cookie-missingnavigate\">How do I fix (cookie missing)(navigate)?<\/h3>\n<ul>\n<li>Dimensions: <code>link_id<\/code>, <code>Page referrer<\/code>, <code>Page path and screen class<\/code><\/li>\n<li>Filter: <code>event equals page_view<\/code>, <code>link_id equals (cookie missing)(navigate)<\/code><\/li>\n<\/ul>\n<p>This report tells us on which page the user was (<code>Page referrer<\/code>) and which page they navigated to (<code>Page path and screen class<\/code>).<\/p>\n<div style=\"aspect-ratio: 1357 \/ 777;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/untracked-sections-report.jpg\" title=\"Report of untracked sections\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"777\" width=\"1357\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/untracked-sections-report.jpg#ZgotmplZ\" alt=\"Report of untracked sections\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In the first entry, when we hover over the <code>Page referrer<\/code> value, we can see that the user navigated from <code>\/shopping_cart<\/code> to <code>\/shopping_cart<\/code>. Huh?<\/p>\n<div style=\"aspect-ratio: 1017 \/ 653;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/shopping-cart-navigation.jpg\" title=\"Shopping cart navigation\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"653\" width=\"1017\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/shopping-cart-navigation.jpg#ZgotmplZ\" alt=\"Shopping cart navigation\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>There are only two interactions that generate a new page load: <strong>UPDATE CART<\/strong> and <strong>REMOVE<\/strong>. Let\u2019s click these two buttons to find out how our solution reacts:<\/p>\n<ul>\n<li>When I click <strong>UPDATE CART<\/strong>, the label for the link is set to <code>content<\/code>, so it works nicely.<\/li>\n<li>When I click <strong>REMOVE<\/strong>, nothing happens. You need to click <strong>UPDATE CART<\/strong> anyway.<\/li>\n<\/ul>\n<p>So it\u2019s neither of these. What could it be?<\/p>\n<p>Well, if I change the quantity of an item in the respective input field and press <code>Enter<\/code>, an event with <strong>(cookie missing)(navigate)<\/strong> is dispatched as the event parameter value. Found it!<\/p>\n<p>If we inspect this field, we can see how we should update <code>clickSelector<\/code>.<\/p>\n<div style=\"aspect-ratio: 1301 \/ 419;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/inspect-cart-update.jpg\" title=\"Inspect the cart quantity field\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"419\" width=\"1301\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/inspect-cart-update.jpg#ZgotmplZ\" alt=\"Inspect the cart quantity field\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This <code><input\/><\/code> element is <em>not<\/em> on our list of valid <code>clickSelector<\/code> options. So, we need to update it. Here\u2019s what the new <code>clickSelector<\/code> looks like:<\/p>\n<p><code>clickSelector: 'a,input[type=\"submit\"],button,#input_search,input[name=\"cart_quantity[]\"]'<\/code><\/p>\n<p>Now when I change the quantity and press <code>Enter<\/code>, the solution tracks it correctly.<\/p>\n<p>You can now do the same run-through with all the obscure entries in the list. If you do your work carefully, the number of <strong>(cookie missing)(navigate)<\/strong> entries will reduce over time.<\/p>\n<h3 id=\"do-people-click-my-slider-on-the-start-page\">Do people click my slider on the start page?<\/h3>\n<ul>\n<li>Dimension: <code>Page path and screen class<\/code><\/li>\n<li>Filter: <code>event equals page_view<\/code>, <code>Page referrer equals https:\/\/www.kunstform.org\/de\/<\/code>, <code>link_id equals mainstage<\/code><\/li>\n<\/ul>\n<p>There are three cards on the home page slider. Which one gets the most clicks?<\/p>\n<div style=\"aspect-ratio: 900 \/ 663;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/front-page-slider.jpg\" title=\"Front page slider\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"663\" width=\"900\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/front-page-slider.jpg#ZgotmplZ\" alt=\"Front page slider\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Here\u2019s what the report tells us:<\/p>\n<div style=\"aspect-ratio: 983 \/ 252;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/slider-images.jpg\" title=\"Slider images compared\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"252\" width=\"983\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/slider-images.jpg#ZgotmplZ\" alt=\"Slider images compared\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In this case, the first slide gets the most clicks. No extra event tracking was needed \u2013 our solution took care of it for us! We can use this information to run A\/B tests, for example, to make sure that our slider attracts users in the best way possible.<\/p>\n<h3 id=\"which-sections-are-clicked-the-most-on-a-given-page\">Which sections are clicked the most on a given page?<\/h3>\n<ul>\n<li>Dimension: <code>link_id<\/code>, <code>Page referrer<\/code><\/li>\n<li>Filter: <code>event equals page_view<\/code>, <code>Page referrer contains [PAGE_TO_BE_ANALYZED]<\/code><\/li>\n<\/ul>\n<div style=\"aspect-ratio: 1359 \/ 784;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/which-sections-most-clicks.jpg\" title=\"Which sections get the most clicks on a page?\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"784\" width=\"1359\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/which-sections-most-clicks.jpg#ZgotmplZ\" alt=\"Which sections get the most clicks on a page?\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In this case, I filtered specifically for clicks on the home page. I wanted to know if users tend to use our <strong>parts finder<\/strong> more than the main navigation.<\/p>\n<p>Based on the report, it certainly looks like the <code>findernav<\/code> is very popular.<\/p>\n<h3 id=\"which-modules-get-clicked-most-per-page-template\">Which modules get clicked most per page template?<\/h3>\n<ul>\n<li>Dimension: <code>link_id<\/code><\/li>\n<li>Filter: <code>event equals page_view<\/code>, <code>link_id_page_template equals product_detail<\/code><\/li>\n<\/ul>\n<div style=\"aspect-ratio: 1358 \/ 738;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/clicks-per-page-template.jpg\" title=\"Clicks per page template\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"738\" width=\"1358\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/clicks-per-page-template.jpg#ZgotmplZ\" alt=\"Clicks per page template\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>On product detail pages, users tend to interact with the price panel first. And that\u2019s good news!<\/p>\n<h3 id=\"what-about-all-the-other-events-besides-page_view\">What about all the other events besides <code>page_view<\/code>?<\/h3>\n<p>The Google Tag Manager variable <code>link_id_events_cJS<\/code> will attach the <code>link_id<\/code> to whatever tag the variable is added to. No cookie needs to be set, because the event happens on the page without a redirect taking place.<\/p>\n<p>Be aware that <code>link_id_page_template<\/code> will contain the value from the previous <code>page_view<\/code> event. If we want to analyze the events per page template, we should use <code>page_type<\/code> in our example below instead.<\/p>\n<div style=\"aspect-ratio: 1067 \/ 474;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2022\/12\/page-type.jpg\" title=\"Page type\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"474\" width=\"1067\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2022\/12\/page-type.jpg#ZgotmplZ\" alt=\"Page type\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Other than that, you can do the same analysis with other events as you\u2019ve done with <code>page_view<\/code>. Just remember that event analysis happens on the same page where the event was collected, so when you build the reports, you can use <code>Page path and screen class<\/code> as the dimension rather than <code>Page referrer<\/code>. This is relevant when you work with single-page applications (SPAs), too.<\/p>\n<h2 id=\"summary-by-simo\">Summary (by Simo)<\/h2>\n<p>Thank you, Sebastian!<\/p>\n<p>This might seem like a complicated thing to get working, but once you figure out the appropriate CSS selectors for your site sections, and once you figure out which element interactions should be classified as \u201clink clicks\u201d, the actual script will do the rest of the work for you.<\/p>\n<p>The end result is a fairly self-sufficient way of tracking clicks that lead to navigation \/ redirect events.<\/p>\n<p>You can use this information to build <strong>navigation pathing reports<\/strong> for sure, but you can also use it for building <strong>heatmaps<\/strong> and for validating which <strong>sections<\/strong> of your page templates receive the most attention.<\/p>\n<p>If you have questions about how to set this up or about the implementation itself, feel free to add them to the blog comments!<\/p>\n<p>            <\/span><\/code><\/div>\n<\/p><\/div>\n<footer id=\"footer\" class=\"main-content-wrap\">\n  <span class=\"copyrights\"><br \/>\n    \u00a9 2025 Simo Ahava. All Rights Reserved<br \/>\n  <\/span><br \/>\n<\/footer>\n<p>      <\/code><\/p>\n<\/div>\n<p>    <\/code><\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>This is a guest post by Sebastian Pospischil, Evangelist Digital Analytics at TRKKN. All credit for the solution goes to him. The Summary section is the only one authored by Simo Ahava. You know the deal. Each and every day, clients reach out to you asking for custom click tracking for this call-to-action on that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":59758,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[12765,33406,16032,1531,921,7476,1018],"dealstore":[],"offerexpiration":[],"class_list":["post-59757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-analytics","tag-categorize","tag-clicks","tag-google","tag-link","tag-site","tag-track"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Track And Categorize All Link Clicks On The Site With Google Analytics 4 - 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=59757\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Track And Categorize All Link Clicks On The Site With Google Analytics 4 - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"This is a guest post by Sebastian Pospischil, Evangelist Digital Analytics at TRKKN. All credit for the solution goes to him. The Summary section is the only one authored by Simo Ahava. You know the deal. Each and every day, clients reach out to you asking for custom click tracking for this call-to-action on that [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=59757\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-31T10:29:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1440\" \/>\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=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=59757#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Track And Categorize All Link Clicks On The Site With Google Analytics 4\",\"datePublished\":\"2025-01-31T10:29:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757\"},\"wordCount\":2142,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg\",\"keywords\":[\"Analytics\",\"Categorize\",\"Clicks\",\"Google\",\"Link\",\"SITE\",\"Track\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=59757#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=59757\",\"url\":\"https:\/\/fivemor.com\/?p=59757\",\"name\":\"Track And Categorize All Link Clicks On The Site With Google Analytics 4 - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg\",\"datePublished\":\"2025-01-31T10:29:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=59757#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=59757\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=59757#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg\",\"width\":2560,\"height\":1440},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=59757#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Track And Categorize All Link Clicks On The Site With Google Analytics 4\"}]},{\"@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 And Categorize All Link Clicks On The Site With Google Analytics 4 - 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=59757","og_locale":"en_US","og_type":"article","og_title":"Track And Categorize All Link Clicks On The Site With Google Analytics 4 - Som2ny Network","og_description":"This is a guest post by Sebastian Pospischil, Evangelist Digital Analytics at TRKKN. All credit for the solution goes to him. The Summary section is the only one authored by Simo Ahava. You know the deal. Each and every day, clients reach out to you asking for custom click tracking for this call-to-action on that [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=59757","og_site_name":"Som2ny Network","article_published_time":"2025-01-31T10:29:33+00:00","og_image":[{"width":2560,"height":1440,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=59757#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=59757"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Track And Categorize All Link Clicks On The Site With Google Analytics 4","datePublished":"2025-01-31T10:29:33+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=59757"},"wordCount":2142,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=59757#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg","keywords":["Analytics","Categorize","Clicks","Google","Link","SITE","Track"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=59757#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=59757","url":"https:\/\/fivemor.com\/?p=59757","name":"Track And Categorize All Link Clicks On The Site With Google Analytics 4 - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=59757#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=59757#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg","datePublished":"2025-01-31T10:29:33+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=59757#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=59757"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=59757#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/track-all-link-clicks-with-link-id.jpg","width":2560,"height":1440},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=59757#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Track And Categorize All Link Clicks On The Site With Google Analytics 4"}]},{"@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\/59757","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=59757"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/59757\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/59758"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59757"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=59757"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=59757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}