<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Bluerivermountains.com - Blog (EN)]]></title><description><![CDATA[Analytics & SEO]]></description><link>https://bluerivermountains.com</link><generator>GatsbyJS</generator><lastBuildDate>Wed, 23 Oct 2024 08:04:52 GMT</lastBuildDate><item><title><![CDATA[7 Complexities of Implementing Meta's Conversions API]]></title><description><![CDATA[7 Complexities of Implementing Meta's Conversions API Welcome to the world of  Meta's Conversions API , where the landscape is far more intricate than mere server-side data transmission.  I literally…]]></description><link>https://bluerivermountains.com/en/complexities-meta-conversions-api</link><guid isPermaLink="false">https://bluerivermountains.com/en/complexities-meta-conversions-api</guid><pubDate>Fri, 24 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;7 Complexities of Implementing Meta&amp;#x27;s Conversions API&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Welcome to the world of &lt;strong&gt;Meta&amp;#x27;s Conversions API&lt;/strong&gt;, where the landscape is far more intricate than mere server-side data transmission. &lt;/p&gt;&lt;p&gt;I literally have people reaching out asking &lt;em&gt;if we could implement this next Monday&lt;/em&gt;, hence this deep dive unveils the scope of implementing this &lt;strong&gt;tracking solution&lt;/strong&gt; in reality.&lt;/p&gt;&lt;p&gt;I hope to reveal why it&amp;#x27;s an endeavor that goes beyond initial expectations.&lt;/p&gt;&lt;h2&gt;1. The Deceptive Simplicity of the API&lt;/h2&gt;&lt;p&gt;Many perceive &lt;strong&gt;Meta&amp;#x27;s Conversions API&lt;/strong&gt; implementation as a straightforward process, but this perception is misleading.&lt;/p&gt;&lt;p&gt;The API&amp;#x27;s true power lies in its ability to attach detailed &lt;strong&gt;user data&lt;/strong&gt;—like names, contact details, and location—to events, a feature demanding far more effort than initially anticipated.&lt;/p&gt;&lt;p&gt;Spooky? I know. Needless to say that a proper &lt;strong&gt;cookie management platform&lt;/strong&gt; (&lt;em&gt;CMP&lt;/em&gt;) has to collect &lt;strong&gt;tracking consent&lt;/strong&gt; and have it be a requirement before leveraging marketing tags in the &lt;div to=&quot;/en/tag-management&quot;&gt;tag management system&lt;/div&gt;.&lt;/p&gt;&lt;h2&gt;2. Technical Hurdles and Data Considerations&lt;/h2&gt;&lt;p&gt;As a general requirement, &lt;strong&gt;Google Tag Manager server-side tagging&lt;/strong&gt; should be set up. A custom sub-domain for the server is not a must, but strongly recommended.&lt;/p&gt;&lt;p&gt;When it comes to Meta&amp;#x27;s &lt;a href=&quot;https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters&quot;&gt;&lt;strong&gt;user data parameters&lt;/strong&gt;&lt;/a&gt;, the devil is in the details.&lt;/p&gt;&lt;p&gt;Implementing the API involves navigating complex requirements like:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Phone number normalization&lt;/li&gt;&lt;li&gt;SHA256 encryption&lt;/li&gt;&lt;li&gt;ISO-formatting for countries, towns&lt;/li&gt;&lt;li&gt;Event de-duplication between front- &amp;amp; backend hits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This often leads to necessary &lt;em&gt;post-implementation fixes&lt;/em&gt; due to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Incorrect formatting&lt;/li&gt;&lt;li&gt;Mismatched data, especially with &lt;em&gt;null&lt;/em&gt; or &lt;em&gt;undefined&lt;/em&gt; data fields&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;3. Upgrading the Data Layer&lt;/h2&gt;&lt;p&gt;A critical step in this journey is therefore to update the &lt;div to=&quot;/en/data-layer&quot;&gt;data layer&lt;/div&gt; to ensure user data is readily available in the right format when triggering Facebook events. This upgrade is not a must, but recommended.&lt;/p&gt;&lt;p&gt;Alternatively you can implement a logic that collects (&lt;em&gt;scrapes&lt;/em&gt;) and &lt;strong&gt;persists user data&lt;/strong&gt; throughout the user journey. &lt;/p&gt;&lt;p&gt;Providing the correctly formated data fields is essential for harnessing the full potential of the API, so it adds another layer of complexity to the implementation process.&lt;/p&gt;&lt;h2&gt;4. Leveraging Google Analytics Tags to Use the FB Conversions API&lt;/h2&gt;&lt;p&gt;While the current &lt;strong&gt;FB web tags&lt;/strong&gt; fall short in leveraging the &lt;strong&gt;Conversions API&lt;/strong&gt;, there&amp;#x27;s a workaround. You can utilize &lt;strong&gt;GA4 tags&lt;/strong&gt; to send the necessary data to your own &lt;strong&gt;GTM Server&lt;/strong&gt;, which includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Event data&lt;/li&gt;&lt;li&gt;Ecommerce data&lt;/li&gt;&lt;li&gt;User data&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Consequently, it&amp;#x27;s imperative to update your current &lt;div to=&quot;/en/google-analytics-setup&quot;&gt;Google Analytics Setup&lt;/div&gt; in GTM. Ensure it runs through your GTM server and includes all &lt;a href=&quot;https://developers.facebook.com/docs/marketing-api/conversions-api/parameters&quot;&gt;required data fields for Facebook&amp;#x27;s API&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;5. Timeframe and Project Scope Realities&lt;/h2&gt;&lt;p&gt;If you&amp;#x27;re marking your calendar for a quick turnaround, think again. Contrary to the optimistic one-day projections, a realistic timeline spans around a few weeks, plus or minus a few days.&lt;/p&gt;&lt;p&gt;This duration is necessary, considering that feedback and validation of data fields occur within &lt;strong&gt;Facebook&amp;#x27;s Ads&lt;/strong&gt; interface, which takes up to 48 hours to update warning and info notifications about your events.&lt;/p&gt;&lt;h2&gt;6. Feedback and Corrections: A Time-Consuming Endeavor&lt;/h2&gt;&lt;p&gt;Implementing the API is akin to a meticulous grind. Facebook&amp;#x27;s interface takes about 36 to 48 hours to reflect changes in their info warnings, turning the process into a cycle of make-change-wait-and-review.&lt;/p&gt;&lt;p&gt;This iterative process is crucial for ensuring data accuracy however.&lt;/p&gt;&lt;h2&gt;7. Expanding the Scope Beyond Facebook&lt;/h2&gt;&lt;p&gt;Once you&amp;#x27;ve navigated the waters of Facebook&amp;#x27;s API, leveraging your efforts for other platforms like &lt;strong&gt;TikTok&lt;/strong&gt; and &lt;strong&gt;Google Ads&lt;/strong&gt;, which also support server-side user data transmission (&lt;a href=&quot;https://ads.tiktok.com/help/article/events-api?lang=en&quot;&gt;TikTok Events API&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://developers.google.com/tag-platform/tag-manager/server-side/ads-setup&quot;&gt;G Ads Enhanced Conversions&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Data validation across multiple platforms significantly ramps up the complexity, requiring a keen eye on &lt;strong&gt;data formatting&lt;/strong&gt;, &lt;strong&gt;error-handling&lt;/strong&gt; and &lt;strong&gt;falsy values&lt;/strong&gt; across all channels.&lt;/p&gt;&lt;h2&gt;Conversion Rate Improvements and Business Impact&lt;/h2&gt;&lt;p&gt;Despite these complexities, the payoff can be substantial. Implementing the Conversions API has shown to &lt;strong&gt;improve conversion rates by a minimum of 5%, with some cases soaring as high as 12-13%&lt;/strong&gt; due to its &lt;a href=&quot;https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching&quot;&gt;advanced matching&lt;/a&gt; capabilities.&lt;/p&gt;&lt;p&gt;This improvement varies across different niches but underscores the tangible benefits of this technical undertaking.&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Reflecting on the sheer scale of implementing &lt;strong&gt;Meta&amp;#x27;s Conversions API&lt;/strong&gt;, it becomes clear that this is not a task to be underestimated.&lt;/p&gt;&lt;p&gt;It demands a thorough contemplation of the effort involved versus the potential gains. Make your decision wisely, considering both the complexities and the promising rewards.&lt;/p&gt;&lt;h2&gt;Resources&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters&quot;&gt;Requirements for Facebooks Customer Information Params&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching&quot;&gt;Formatting requirements for Facebook&amp;#x27;s Advanced Matching&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.facebook.com/docs/marketing-api/conversions-api/parameters&quot;&gt;Conversions API parameter overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/tag-platform/tag-manager/server-side/ads-setup&quot;&gt;Googles Enhanced Conversions Feature&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://ads.tiktok.com/help/article/events-api?lang=en&quot;&gt;TikToks Event API&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Track Google Form Views with GA4]]></title><description><![CDATA[Track Google Form Views with GA4 & Marketing Pixels Do you want to know  how many visitors visit your Google Form?  - In this tutorial I explain how to use  Google Analytics  to track visits to a…]]></description><link>https://bluerivermountains.com/en/track-google-form-views-with-ga4</link><guid isPermaLink="false">https://bluerivermountains.com/en/track-google-form-views-with-ga4</guid><pubDate>Wed, 12 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Track Google Form Views with GA4 &amp;amp; Marketing Pixels&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Do you want to know &lt;strong&gt;how many visitors visit your Google Form?&lt;/strong&gt; - In this tutorial I explain how to use &lt;strong&gt;Google Analytics&lt;/strong&gt; to track visits to a Google Form to measure engagement and form views. After that, we&amp;#x27;ll learn how to use the visits for &lt;strong&gt;Google Ads campaigns&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;I&amp;#x27;ll also show how, using the same principle, you can implement other &lt;strong&gt;Tracking Pixels&lt;/strong&gt; from &lt;strong&gt;Facebook, Linkedin or Twitter&lt;/strong&gt; on the form to target visitors through &lt;strong&gt;Retargeting Campaigns&lt;/strong&gt;, for example.&lt;/p&gt;&lt;p&gt;As a &lt;div to=&quot;/en/google-analytics-consultant&quot;&gt;Google Analytics Consultant&lt;/div&gt; I have set up tracking for Google forms quite a few times. So I will explain you why it is smart to track your form with additional &lt;strong&gt;tracking tools&lt;/strong&gt; and what the advantages are.&lt;/p&gt;&lt;h2&gt;Why is it important to track Google Form attendance with GA4?&lt;/h2&gt;&lt;p&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.google.com/forms/u/0/&quot; target=&quot;_blank&quot;&gt;Google Forms&lt;/a&gt; are an attractive solution to create online forms for websites. By March 2023, Google Forms is used by &lt;a rel=&quot;nofollow&quot; href=&quot;https://trends.builtwith.com/widgets/feedback-forms-and-surveys/traffic/Entire-Internet&quot; target=&quot;_blank&quot;&gt;0.26%&lt;/a&gt; of websites across the Internet as a solution for feedback forms. &lt;a rel=&quot;nofollow&quot; href=&quot;https://webtechsurvey.com/technology/google-forms/changes&quot; target=&quot;_blank&quot;&gt;Popular websites using Google Forms&lt;/a&gt; include &lt;em&gt;washingtonpost.com&lt;/em&gt;, &lt;em&gt;techcrunch.com&lt;/em&gt;, and &lt;em&gt;usatoday.com&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Why?&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;advantages of Google Forms&lt;/strong&gt; are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free with no limits &lt;/li&gt;&lt;li&gt;Forms can be created quickly and easily in minutes&lt;/li&gt;&lt;li&gt;Free upload feature&lt;/li&gt;&lt;li&gt;Many templates available&lt;/li&gt;&lt;li&gt;Compatible with desktop and mobile devices&lt;/li&gt;&lt;li&gt;Instant access to entered data in Google Sheets&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Tracking the individual views of a Google Form with Google Analytics or Marketing Pixels from Facebook, Linkedin or Twitter is not possible without overcoming a few technical hurdles. &lt;/p&gt;&lt;p&gt;Yet it is worth it! &lt;/p&gt;&lt;p&gt;Tracking individual page views of Google forms has compelling &lt;strong&gt;advantages&lt;/strong&gt;:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In Google Analytics 4, you can link your conversions to your Google Ads account, for example, to run &lt;strong&gt;retargeting campaigns&lt;/strong&gt;. This means that if you &lt;strong&gt;configure the form visit as a conversion&lt;/strong&gt; (!), the visitors will be added to a Google Ads segement for campaigns. Thus, you can later show promotional offers to the visitors.
So, for marketing purposes, the visitors of the form are completely available.&lt;/li&gt;&lt;li&gt;You get to know how many visitors visit the form. If you subtract the number of completed forms from the visits, you know the potential of the campaign. GA4 engagement tracking additionally tells you how much time visitors spend on the form - which helps to improve the form in case visitors spend too much time filling it out.&lt;/li&gt;&lt;li&gt;By tracking with &lt;strong&gt;Facebook&lt;/strong&gt; or the &lt;strong&gt;Linkedin&lt;/strong&gt; tracking pixel, you can learn more about the interests or demographics of your visitors, thereby improving communication with your customer segments.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So if you combine the general advantages of Google Forms with the benefits of tracking with Marketing Pixels, Google Forms becomes a super efficient &amp;amp; free solution for digital campaigns with contact forms!&lt;/p&gt;&lt;h2&gt;How to Track Google Form Visits with GA4&lt;/h2&gt;&lt;p&gt;View Tracking for Google Forms in GA is achieved by embedding the Google Form Iframe together with the &lt;strong&gt;Google Analytics Tracking Code&lt;/strong&gt; on the same page.&lt;/p&gt;&lt;p&gt;Since Google Analytics tracks every load of the website as a page view and the page contains the form, the views to the form can thus be tracked as well without having direct access to the form&amp;#x27;s code.&lt;/p&gt;&lt;p&gt;Simple, right?&lt;/p&gt;&lt;p&gt;Let me explain how you do this exactly, whether you have your own website or not.&lt;/p&gt;&lt;h3&gt;Measure attendance of Google Forms through embedding&lt;/h3&gt;&lt;p&gt;First of all, you should always embed Google Forms in a webpage, as this will allow you to insert your own Google Analytics tracking code into the page to measure the number of visitors to the form.
I repeat: you should &lt;strong&gt;not&lt;/strong&gt; send the direct link to the Google Form to your users.&lt;/p&gt;&lt;p&gt;If you use the Google form embed code on your own website and also add your Google Analytics snippet, every &lt;strong&gt;visit to the form&lt;/strong&gt; will be recorded as a page view in Google Analytics.
This gives you the advantage of being able to track the &lt;strong&gt;form attendance&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;In addition, you can now also implement &lt;strong&gt;Tracking Pixel&lt;/strong&gt; for Google Ads, Facebook, Twitter or Linkedin on the page - which would not be possible otherwise.&lt;/p&gt;&lt;p&gt;Don&amp;#x27;t have a website where you can embed the Google Form? That&amp;#x27;s no problem. You can create a hosted HTML page in seconds and embed the Google form in it. &lt;/p&gt;&lt;p&gt;For example, use the &lt;a rel=&quot;nofollow&quot; href=&quot;https://glitch.com/edit/#!/remix/glitch-hello-website&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Basic Website&lt;/em&gt; starter from glitch.com&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; href=&quot;https://pages.github.com/&quot; target=&quot;_blank&quot;&gt;Github Pages&lt;/a&gt; or simply upload your HTML file to &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.netlify.com/&quot; target=&quot;_blank&quot;&gt;Netlify&lt;/a&gt;. Below I give an example of Glitch and Netlify.&lt;/p&gt;&lt;h3&gt;1. Embedded Google Form with GA tracking on custom website&lt;/h3&gt;&lt;p&gt;First, copy the embed code for your Google Form.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/google-forms-embed-code.png&quot; alt=&quot;Google Form Embed Code&quot; caption=&quot;Copy the embed code for your Google Form to embed it as an iFrame on your own site.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h3&gt;2. Create a single custom web page&lt;/h3&gt;&lt;p&gt;If you already have your own website, create a new page with any address path and add the embed code.
If you don&amp;#x27;t have your own website, follow one of the examples below.&lt;/p&gt;&lt;p&gt;First create an empty HTML page with a &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.freecodecamp.org/news/basic-html5-template-boilerplate-code-example/&quot; target=&quot;_blank&quot;&gt;default boilerplate code&lt;/a&gt;and add the Google Form snippet and the Google Analytics tracking code. Then upload the file to a web host.&lt;/p&gt;&lt;h4&gt;Glitch Example&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Start a new web page with the &lt;a href=&quot;https://glitch.com/edit/#!/remix/glitch-hello-website&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;Basic Website&lt;/em&gt; Starter from glitch.com&lt;/a&gt; and add the embed code for the Google Form at the top of the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;. Delete the rest of the code in the body tag.&lt;div src=&quot;google-forms-submission-tracking-ga4/google-forms-embed-code-on-glitch.png&quot; alt=&quot;Insert embed code on Glitch&quot; caption=&quot;Insert embed code into the body tag and delete the rest.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Add Google Analytics 4 Snippet&lt;/strong&gt;: Now add the Google Analytics snippet.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Alternatively, you could also add a GTM container snippet with a GA4 page view tag enabled.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/google-forms-embed-code-on-glitch-with-ga4.png&quot; alt=&quot;Insert GA4 Snippet on Glitch&quot; caption=&quot;Now add the GA4 snippet to our custom HTML page.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Copy the new link to your Google Form&lt;/strong&gt;: Next copy the link to your glitch page.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Under &lt;strong&gt;Preview -&amp;gt; Preview in a new Window&lt;/strong&gt; you get the created page opened in a new browser tab. From now on use this link to invite visitors to your form.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/copy-glitch-link.png&quot; alt=&quot;Copy Glitch Link&quot; caption=&quot;Copy the newly generated link to your created HTML page with embedded Google Form.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h4&gt;Netlify Drop Example&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Create a &lt;a href=&quot;https://www.freecodecamp.org/news/basic-html5-template-boilerplate-code-example/&quot; rel=&quot;nofollow&quot;&gt;HTML page from a boilerplate template&lt;/a&gt; and add the copied embed code of the Google Form to the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;. Then save the file as index.html in an empty folder.&lt;/li&gt;&lt;li&gt;Visit Netlify.com and log in with your preferred login service.&lt;/li&gt;&lt;li&gt;After that, go visit &lt;a href=&quot;https://app.netlify.com/drop&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;
Netlify Drop&lt;/a&gt; and drag the folder with the index.html file into the drag &amp;amp; drop area.&lt;div src=&quot;google-forms-submission-tracking-ga4/netlify-deply-after-drop.png&quot; alt=&quot;Netlify deployment after upload&quot; caption=&quot;Screenshot after you uploaded the folder with the index.html file to Netlify. The page is already hosted and online!&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/netlify-live-example.png&quot; alt=&quot;Example of the page hosted on Netlify&quot; caption=&quot;Example of the page online, hosted by Netlify in just seconds&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h3&gt;3. Test if everything works&lt;/h3&gt;&lt;p&gt;To test GA4 tracking you can simply visit the real-time report. On the events widget you can click the &lt;code&gt;page_view&lt;/code&gt; event and then select the &lt;code&gt;page_location&lt;/code&gt; parameter. This will show you all web addresses of the last minutes.&lt;/p&gt;&lt;p&gt;There you should see the URL to the page with the Google Form.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/Validation-Google-Form-with-Google-Analytics-4-real-time-report.png&quot; alt=&quot;Validation of the Google Form with real-time report in Google Analytics 4&quot; caption=&quot;When you access the real-time report in GA4, you will notice that each pageview with the Google Form is now being tracked.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h2&gt;Analysis of form views in GA4&lt;/h2&gt;&lt;p&gt;GA4 tracks engagement metrics like &lt;a rel=&quot;nofollow&quot; href=&quot;https://support.google.com/analytics/answer/13391283?visit_id=638167351549791683-3231046854&amp;amp;rd=1&amp;amp;hl=en&quot; target=&quot;_blank&quot;&gt;average engagement time&lt;/a&gt; by default.&lt;/p&gt;&lt;p&gt;When the form is called, the engagement tracking starts automatically, so you can look at the average engagement time (time tracking) of the visitors with the form later in Google Analytics.&lt;/p&gt;&lt;p&gt;To create a time tracking report you then build e.g. an &lt;em&gt;Exploration Report&lt;/em&gt; with the values &lt;strong&gt;User Engagement&lt;/strong&gt; and as dimension for the rows the &lt;strong&gt;Page Path&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;Also add &lt;strong&gt;views&lt;/strong&gt; to the values to show the total number of form visits (form attendance).&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/GA4-page-view-analysis-and-engagement.png&quot; alt=&quot;Analysis of Google Form pageviews and engagement in Google Analytics 4&quot; caption=&quot;In the analysis of GA4 data, we can see how often the Google Form was accessed and with engagement tracking, how much time users spent on the form.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h2&gt;Track Google Form Visits with the Facebook Pixel and other Marketing Pixels (Twitter, Linkedin etc.)&lt;/h2&gt;&lt;p&gt;Also, you can insert all sorts of marketing tracking pixels on the page as well. See here an example for the Facebook Pixel. The FB snippet is simply inserted after the GA4 snippet.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/google-forms-embed-code-on-glitch-with-ga4-and-facebook.png&quot; alt=&quot;Facebook Pixel and GA4 snippet embedded in Google Form&quot; caption=&quot;We have now added the Facebook Pixel to the Google Form as well.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;After you have implemented the Facebook, Twitter, Pinterest, Linkedin or any other pixel, you need to test if the implementation worked.&lt;/p&gt;&lt;p&gt;The easiest solution is to log in to the respective platform of the marketing pixel. After 24 hours at the latest you should see traffic there.&lt;/p&gt;&lt;p&gt;If you don&amp;#x27;t want to wait that long, there are extensions for most tracking pixel browsers that show information about the pixel when it is working.&lt;/p&gt;&lt;p&gt;For Facebook there is the &lt;a rel=&quot;nofollow&quot; href=&quot;https://chrome.google.com/webstore/detail/meta-pixel-helper/fdgfkebogiimcoedlicjlajpkdmockpc&quot; target=&quot;_blank&quot;&gt;Meta Pixel Helper&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;After the extension is installed in the browser and we call the Google Form with the implemented FB Pixel, the Pixel Helper confirms that the tracking is working.&lt;/p&gt;&lt;div src=&quot;google-forms-submission-tracking-ga4/Validation-Google-Form-with-Facebook-Pixel-Debugger.png&quot; alt=&quot;Check Facebook Pixel Tracking in Google Form&quot; caption=&quot;The Facebook Pixel Helper Extension confirms that Facebook tracking is working.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;There are also similar Pixel Helper extensions for &lt;a rel=&quot;nofollow&quot; href=&quot;https://chrome.google.com/webstore/detail/Linkedin-insight-tag-chec/feeednoflloccfhgoiiohjammanphoef&quot; target=&quot;_blank&quot;&gt;Linkedin&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; href=&quot;https://chrome.google.com/webstore/detail/twitter-pixel-helper/jepminnlebllinfmkhfbkpckogoiefpd&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; to check the functionality of the pixel.&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;I hope I could convince you of the importance of embedding the forms, so that you take the extra effort in the future instead of sharing the direct link.&lt;/p&gt;&lt;p&gt;Especially for YouTube or email campaigns, this way of quickly creating a landing page that is visually the same but offers many advantages in terms of marketing is a good idea.&lt;/p&gt;&lt;p&gt;We also looked at how to co-implement other tracking tools on Google Forms so that you have more metrics available for data analysis 😎.&lt;/p&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Blocking GA4 pageviews with URL parameters]]></title><description><![CDATA[Block page view with query parameter in Google Analytics Learn in this tutorial  how to exclude pageviews from Google Analytics tracking when they have unwanted URL query parameters .  Any  query…]]></description><link>https://bluerivermountains.com/en/block-ga4-pageviews-with-url-parameters</link><guid isPermaLink="false">https://bluerivermountains.com/en/block-ga4-pageviews-with-url-parameters</guid><pubDate>Fri, 10 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Block page view with query parameter in Google Analytics&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefined min read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Learn in this tutorial &lt;strong&gt;how to exclude pageviews from Google Analytics tracking when they have unwanted URL query parameters&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;Any &lt;div to=&quot;/en/ga4-query-parameter-exclusion&quot;&gt;query strings&lt;/div&gt; in Page URLs or JavaScript redirects can cause tracking issues. For example, a CMS might embed user data in the URL, which can lead to limitations in analysis and expose user data to all services on the website. Therefore, you can simply exclude such pageviews from tracking by their URL parameters.&lt;/p&gt;&lt;p&gt;In my previous tutorial, we already discussed &lt;div to=&quot;/en/ga4-query-parameter-exclusion&quot;&gt;how to filter query parameters from the URL&lt;/div&gt;, so that the parameters no longer appear in Google Analytics reports.&lt;/p&gt;&lt;p&gt;If you don&amp;#x27;t want to have such pageviews in your analytics data at all, I will now show you how to completely block tracking for certain query parameters.&lt;/p&gt;&lt;p&gt;And - I will show you two different methods to achieve that!&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;first method&lt;/strong&gt; is easy and only requires the use of Google Tag Manager in combination with a special trigger configuration that checks for the presence of the parameter.&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;second method&lt;/strong&gt; achieves the same result in a different way, and therefore we will also look at it.&lt;/p&gt;&lt;p&gt;Both methods work with a single URL parameter or with a &lt;strong&gt;list of query parameters&lt;/strong&gt;.&lt;/p&gt;&lt;h2&gt;How to block Google Analytics pageviews with URL query parameters?&lt;/h2&gt;&lt;p&gt;To illustrate the following methods, let&amp;#x27;s assume that we want to block all pageviews that contain the &lt;code&gt;exclude=true&lt;/code&gt; parameter.&lt;/p&gt;&lt;p&gt;We can either add a condition to a pageview trigger or alternatively, we can create a blocking trigger. Let&amp;#x27;s look at both options 🤓.&lt;/p&gt;&lt;h3&gt;Adding query parameter conditions to a pageview trigger&lt;/h3&gt;&lt;p&gt;In Google Tag Manager, there is a built-in variable called &lt;strong&gt;Page URL&lt;/strong&gt;. This variable contains the entire browser address as a string, which means that we can check it against any query parameters in the trigger configuration settings.&lt;/p&gt;&lt;p&gt;To do this, go to your triggers in the GTM container and create a new pageview trigger. Select that this trigger should only fire on some pageviews.&lt;/p&gt;&lt;p&gt;Next, select the Page URL variable from the dropdown menu and add the &amp;quot;does not contain&amp;quot; rule, along with the example parameter mentioned above, &lt;code&gt;exclude=true&lt;/code&gt;.&lt;/p&gt;&lt;div src=&quot;block-pageview-by-query-param/en-all-pageviews-trigger-with-param-condition.png&quot; alt=&quot;Trigger condition for blocked pageviews&quot; caption=&quot;Trigger condition to not fire a tag if the web address contains a the query string exclude=true&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;If you click save now, you have created a trigger that fires on all pageviews, except those that contain the query parameter 💪.&lt;/p&gt;&lt;p&gt;Next, use this trigger for the Google Analytics 4 tag that sends the event for pageviews. In most cases, this is the GA4 Configuration tag, if the checkbox for &amp;quot;Send a page view event when this configuration loads&amp;quot; is checked there.&lt;/p&gt;&lt;div src=&quot;block-pageview-by-query-param/en-all-pageviews-ga4-tag.png&quot; alt=&quot;GA4 configuration tag with trigger&quot; caption=&quot;GA4 configuration tag with our newly created trigger&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;Done.&lt;/p&gt;&lt;h3&gt;How to Stop GA Tracking for a List of Query Parameters?&lt;/h3&gt;&lt;p&gt;If you have a &lt;strong&gt;list of query strings&lt;/strong&gt; for which tracking should be suspended every time they appear in the web address, then set the trigger with a Regex matching rule. Don&amp;#x27;t worry, you don&amp;#x27;t have to learn Regex specifically for this.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Regex&lt;/strong&gt; (short for Regular Expressions) is a sequence of characters that describe a pattern in a string, which can be used to search text and perform an action when there is a match. &lt;/p&gt;&lt;h4&gt;Creating Regex Rule for URL Parameters&lt;/h4&gt;&lt;p&gt;Let&amp;#x27;s assume we want to exclude all page views that contain the following query strings from web tracking:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;exclude=true&lt;/code&gt; &lt;/li&gt;&lt;li&gt;&lt;code&gt;debug=4387969876&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;userName=hans.hansen&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;email=hans@hansens.com&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Multiple strings can be concatenated in Regex using the &lt;em&gt;pipe&lt;/em&gt; symbol. &lt;/p&gt;&lt;p&gt;Since the values for the variables &lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;userName&lt;/code&gt;, and &lt;code&gt;email&lt;/code&gt; are dynamic, we also include a &lt;em&gt;wildcard&lt;/em&gt; in the Regex rule:&lt;/p&gt;&lt;p&gt;Regex matching rule: &lt;code&gt;exclude=true|debug=.*|userName=.*|email=.*&lt;/code&gt;&lt;/p&gt;&lt;h4&gt;Using GTM Trigger with Regex Rule&lt;/h4&gt;&lt;p&gt;Next, we create a new trigger in Google Tag Manager in which the &lt;strong&gt;Page URL&lt;/strong&gt; &lt;em&gt;does not match the regular expression&lt;/em&gt;.&lt;/p&gt;&lt;div src=&quot;block-pageview-by-query-param/en-trigger-witht-regex-rule.png&quot; alt=&quot;GTM trigger settings with regular expression&quot; caption=&quot;GTM trigger settings with regular expression for URL parameters&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;Afterwards save the trigger and apply it to your page view tag. Finished.&lt;/p&gt;&lt;h3&gt;Create blocking trigger with URL parameter&lt;/h3&gt;&lt;p&gt;The &lt;strong&gt;second method&lt;/strong&gt; is to add a blocking trigger to an event or page view tag.&lt;/p&gt;&lt;p&gt;The difference is that with the first method, you change the general trigger for page views by specifying the URL parameters. However, this change can lead to complications due to effects on other tags with the same trigger 🙄.&lt;/p&gt;&lt;p&gt;Therefore, it is usually easier to create a single blocking trigger and then add it to the tag as a trigger &lt;strong&gt;exception&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;So in the second method, we leave the page load trigger as is and just add our blocking trigger to the tags where we want the query strings to stop the tag.&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;advantage&lt;/strong&gt; of this method is that in a GTM container with many tags, you can easily add an additional block trigger to any tag without affecting other tags.
This is better than with the first method, where we make changes to the general page view tag and all other tags with the same trigger are also affected.&lt;/p&gt;&lt;p&gt;To create the blocking trigger, follow the same steps as described above for the page view trigger.&lt;/p&gt;&lt;p&gt;After that, visit the tag that should not be executed on page views with parameters.&lt;/p&gt;&lt;p&gt;Then click on &lt;strong&gt;Exceptions&lt;/strong&gt; in the trigger section and add the trigger as an exception.&lt;/p&gt;&lt;p&gt;You can hence continue to use e.g. a general page view trigger (&amp;quot;All Pages&amp;quot;) as the regular trigger for the tag in combination with the exception. The tag will always be executed unless the condition with the query parameters in the exception trigger applies.&lt;/p&gt;&lt;div src=&quot;block-pageview-by-query-param/blocking-pageview-trigger-en.png&quot; alt=&quot;Blocking trigger for blocked pageviews&quot; caption=&quot;Blocking trigger as exception for page views with URL parameters&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;After that, click save and publish the GTM container.&lt;/p&gt;&lt;h3&gt;How to block events other than page views based on query strings&lt;/h3&gt;&lt;p&gt;It is also possible to block events other than page loads based on query parameters in the URL. &lt;/p&gt;&lt;p&gt;To do this, the type of the blocking trigger must be modified to respond to any type of event. Then, the modified blocking trigger can be used &lt;strong&gt;for all possible events&lt;/strong&gt; in Google Tag Manager.&lt;/p&gt;&lt;p&gt;If the associated URL sent with the event contains the defined query parameter, the event will be blocked as stated.&lt;/p&gt;&lt;p&gt;To do this, change the previously created trigger and set the trigger type to &amp;quot;Custom event&amp;quot;. As event name write &lt;code&gt;.*&lt;/code&gt; and check the box &amp;quot;Use regular expression match&amp;quot;.&lt;/p&gt;&lt;p&gt;We use a Regex wildcard for the event name, because this way any event name will be accepted.&lt;/p&gt;&lt;div src=&quot;block-pageview-by-query-param/regex-blocking-trigger-en.png&quot; alt=&quot;Blocking trigger with Regex wildcard for all types of events&quot; caption=&quot;Blocking trigger with Regex wildcard for all types of events, taking into account URL parameters.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;Now set this trigger on any tag if you don&amp;#x27;t want it to fire when the defined query parameters are in the URL.&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In this article, you have now learned how to stop page views in Google Analytics through multiple methods.&lt;/p&gt;&lt;p&gt;The most important thing in this tutorial is to learn how to use negative conditions in GTM triggers or trigger exceptions (blocking triggers).&lt;/p&gt;&lt;p&gt;If &lt;a href=&quot;https://regexone.com/&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Regex&lt;/a&gt; was new to you, I recommend taking a closer look at it, as it is a great help for data filtering and is supported in a large number of tools 🤓.&lt;/p&gt;&lt;h2&gt;FAQ&lt;/h2&gt;&lt;div class=&quot;FaqComponent__StyledDiv-sc-1dswcso-0 bxebgR&quot;&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do I exclude a URL from Google Analytics 4?&lt;/summary&gt;&lt;p&gt;To exclude a URL from GA4, utilize Google Tag Manager (GTM) and set up a trigger that checks for specific query parameters in the URL. If the URL contains unwanted parameters, the trigger prevents the pageview from being tracked.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do I block a URL in Google Analytics?&lt;/summary&gt;&lt;p&gt;In GTM, create a pageview trigger that fires only when certain conditions are met. Use the &amp;quot;Page URL&amp;quot; variable and set a rule like &amp;quot;does not contain&amp;quot; followed by the undesired parameter, such as &amp;quot;exclude=true&amp;quot;. This ensures the trigger doesn&amp;#x27;t fire for URLs with that parameter.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Can you exclude pages from Google Analytics?&lt;/summary&gt;&lt;p&gt;Absolutely! By leveraging GTM and its trigger configurations, you can exclude specific pages from being tracked in Google Analytics based on their URL parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do I exclude a landing page in Google Analytics?&lt;/summary&gt;&lt;p&gt;To exclude a landing page, set up a trigger in GTM that checks the &amp;quot;Page URL&amp;quot; variable. If the URL matches the landing page&amp;#x27;s address or contains specific query parameters, the trigger won&amp;#x27;t fire, thus excluding the landing page from tracking.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you exclude page views in Google Analytics?&lt;/summary&gt;&lt;p&gt;There are two primary methods: a. Add conditions to a pageview trigger in GTM, ensuring it doesn&amp;#x27;t fire for URLs with certain parameters. b. Create a blocking trigger that acts as an exception for specific pageview tags, preventing them from firing when certain URL parameters are present.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do I disable page views in GA4?&lt;/summary&gt;&lt;p&gt;To disable pageviews in GA4, use GTM to set up triggers that check for specific URL parameters. If these parameters are detected, the triggers prevent the GA4 tag responsible for sending pageview events from firing.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What are the issues caused by any query strings in Page URLs or JavaScript redirects?&lt;/summary&gt;&lt;p&gt;Query strings in Page URLs or JavaScript redirects can cause tracking issues. For instance, a CMS might embed user data in the URL, which could result in limitations in analysis and expose user data to all services on the webpage.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can I exclude pageviews from tracking by their URL parameters?&lt;/summary&gt;&lt;p&gt;You can exclude such pageviews from tracking by their URL parameters. This process involves adding certain conditions or creating a blocking trigger in Google Tag Manager.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can I completely block tracking for certain query parameters?&lt;/summary&gt;&lt;p&gt;You can block tracking for certain query parameters by either adding a condition to a pageview trigger or creating a blocking trigger. These two methods allow you to block all pageviews that contain a specified parameter.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the first method to block tracking for certain query parameters?&lt;/summary&gt;&lt;p&gt;The first method requires the use of Google Tag Manager in combination with a special trigger configuration that checks for the presence of the parameter. This method involves creating a new pageview trigger and setting it up to fire only on some pageviews that do not contain the specified parameter.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the second method to block tracking for certain query parameters?&lt;/summary&gt;&lt;p&gt;The second method achieves the same result as the first but in a different way. Instead of changing the general trigger for page views, you create a single blocking trigger and then add it to the tag as a trigger exception. This method is usually easier and does not affect other tags with the same trigger.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How does the first method work?&lt;/summary&gt;&lt;p&gt;The first method uses a built-in variable in Google Tag Manager called Page URL. This variable contains the entire browser address as a string, allowing you to check it against any query parameters in the trigger configuration settings. By selecting the &amp;quot;does not contain&amp;quot; rule, you can create a trigger that fires on all pageviews, except those that contain the specified query parameter.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to block Google Analytics pageviews with URL query parameters?&lt;/summary&gt;&lt;p&gt;To block Google Analytics pageviews with URL query parameters, you can either add a condition to a pageview trigger or create a blocking trigger. For the first option, you create a new pageview trigger in Google Tag Manager that does not contain the specified parameter. For the second option, you create a blocking trigger and add it as an exception to the tag.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you stop GA tracking for a list of query parameters?&lt;/summary&gt;&lt;p&gt;To stop GA tracking for a list of query parameters, you need to set the trigger with a Regex matching rule. Regex (short for Regular Expressions) is a sequence of characters that describe a pattern in a string, which can be used to search text and perform an action when there is a match. This allows you to create a rule for multiple query strings and apply it to your page view tag.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the second method to add a blocking trigger to an event or page view tag?&lt;/summary&gt;&lt;p&gt;The second method involves creating a blocking trigger and adding it as an exception to the tag. This method allows you to block the tracking of certain query parameters without affecting other tags in the Google Tag Manager container.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you block events other than page views based on query strings?&lt;/summary&gt;&lt;p&gt;It is possible to block events other than page loads based on query parameters in the URL. To do this, the type of the blocking trigger must be modified to respond to any type of event. This involves setting the trigger type to &amp;quot;Custom event&amp;quot; and using a Regex wildcard for the event name to accept any event name.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the most important thing to learn from this tutorial?&lt;/summary&gt;&lt;p&gt;The most important thing in this tutorial is to learn how to use negative conditions in GTM triggers or trigger exceptions (blocking triggers). This skill is essential for data filtering and is supported in a large number of tools.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the advantage of the second method (creating a blocking trigger)?&lt;/summary&gt;&lt;p&gt;The advantage of the second method is that it allows for more flexibility. In a GTM container with many tags, you can easily add an additional block trigger to any tag without affecting other tags. This is a more efficient approach as compared to the first method where changes to the general page view tag could potentially affect all other tags with the same trigger.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to create a blocking trigger with a URL parameter?&lt;/summary&gt;&lt;p&gt;To create a blocking trigger with a URL parameter, you follow the same steps as for creating a page view trigger. Then, you visit the tag that should not be executed on page views with parameters, click on Exceptions in the trigger section, and add the trigger as an exception. This allows you to continue using a general page view trigger as the regular trigger for the tag in combination with the exception.&lt;/p&gt;&lt;/details&gt;&lt;/div&gt;&lt;script type=&quot;application/ld+json&quot;&gt;{&quot;@context&quot;:&quot;https://schema.org&quot;,&quot;@type&quot;:&quot;FAQPage&quot;,&quot;mainEntity&quot;:[{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do I exclude a URL from Google Analytics 4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To exclude a URL from GA4, utilize Google Tag Manager (GTM) and set up a trigger that checks for specific query parameters in the URL. If the URL contains unwanted parameters, the trigger prevents the pageview from being tracked.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do I block a URL in Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;In GTM, create a pageview trigger that fires only when certain conditions are met. Use the \&quot;Page URL\&quot; variable and set a rule like \&quot;does not contain\&quot; followed by the undesired parameter, such as \&quot;exclude=true\&quot;. This ensures the trigger doesn&apos;t fire for URLs with that parameter.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Can you exclude pages from Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Absolutely! By leveraging GTM and its trigger configurations, you can exclude specific pages from being tracked in Google Analytics based on their URL parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do I exclude a landing page in Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To exclude a landing page, set up a trigger in GTM that checks the \&quot;Page URL\&quot; variable. If the URL matches the landing page&apos;s address or contains specific query parameters, the trigger won&apos;t fire, thus excluding the landing page from tracking.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you exclude page views in Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;There are two primary methods: a. Add conditions to a pageview trigger in GTM, ensuring it doesn&apos;t fire for URLs with certain parameters. b. Create a blocking trigger that acts as an exception for specific pageview tags, preventing them from firing when certain URL parameters are present.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do I disable page views in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To disable pageviews in GA4, use GTM to set up triggers that check for specific URL parameters. If these parameters are detected, the triggers prevent the GA4 tag responsible for sending pageview events from firing.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What are the issues caused by any query strings in Page URLs or JavaScript redirects?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query strings in Page URLs or JavaScript redirects can cause tracking issues. For instance, a CMS might embed user data in the URL, which could result in limitations in analysis and expose user data to all services on the webpage.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can I exclude pageviews from tracking by their URL parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;You can exclude such pageviews from tracking by their URL parameters. This process involves adding certain conditions or creating a blocking trigger in Google Tag Manager.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can I completely block tracking for certain query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;You can block tracking for certain query parameters by either adding a condition to a pageview trigger or creating a blocking trigger. These two methods allow you to block all pageviews that contain a specified parameter.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the first method to block tracking for certain query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The first method requires the use of Google Tag Manager in combination with a special trigger configuration that checks for the presence of the parameter. This method involves creating a new pageview trigger and setting it up to fire only on some pageviews that do not contain the specified parameter.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the second method to block tracking for certain query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The second method achieves the same result as the first but in a different way. Instead of changing the general trigger for page views, you create a single blocking trigger and then add it to the tag as a trigger exception. This method is usually easier and does not affect other tags with the same trigger.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How does the first method work?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The first method uses a built-in variable in Google Tag Manager called Page URL. This variable contains the entire browser address as a string, allowing you to check it against any query parameters in the trigger configuration settings. By selecting the \&quot;does not contain\&quot; rule, you can create a trigger that fires on all pageviews, except those that contain the specified query parameter.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to block Google Analytics pageviews with URL query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To block Google Analytics pageviews with URL query parameters, you can either add a condition to a pageview trigger or create a blocking trigger. For the first option, you create a new pageview trigger in Google Tag Manager that does not contain the specified parameter. For the second option, you create a blocking trigger and add it as an exception to the tag.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you stop GA tracking for a list of query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To stop GA tracking for a list of query parameters, you need to set the trigger with a Regex matching rule. Regex (short for Regular Expressions) is a sequence of characters that describe a pattern in a string, which can be used to search text and perform an action when there is a match. This allows you to create a rule for multiple query strings and apply it to your page view tag.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the second method to add a blocking trigger to an event or page view tag?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The second method involves creating a blocking trigger and adding it as an exception to the tag. This method allows you to block the tracking of certain query parameters without affecting other tags in the Google Tag Manager container.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you block events other than page views based on query strings?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;It is possible to block events other than page loads based on query parameters in the URL. To do this, the type of the blocking trigger must be modified to respond to any type of event. This involves setting the trigger type to \&quot;Custom event\&quot; and using a Regex wildcard for the event name to accept any event name.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the most important thing to learn from this tutorial?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The most important thing in this tutorial is to learn how to use negative conditions in GTM triggers or trigger exceptions (blocking triggers). This skill is essential for data filtering and is supported in a large number of tools.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the advantage of the second method (creating a blocking trigger)?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The advantage of the second method is that it allows for more flexibility. In a GTM container with many tags, you can easily add an additional block trigger to any tag without affecting other tags. This is a more efficient approach as compared to the first method where changes to the general page view tag could potentially affect all other tags with the same trigger.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to create a blocking trigger with a URL parameter?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To create a blocking trigger with a URL parameter, you follow the same steps as for creating a page view trigger. Then, you visit the tag that should not be executed on page views with parameters, click on Exceptions in the trigger section, and add the trigger as an exception. This allows you to continue using a general page view trigger as the regular trigger for the tag in combination with the exception.&quot;}}]}&lt;/script&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Exclude URL Query Parameters in Google Analytics]]></title><description><![CDATA[Exclude Query Parameters in Google Analytics 4 In this tutorial you will learn how to exclude  query parameters  from web addresses in Google Analytics 4. However, I have another tutorial in case you…]]></description><link>https://bluerivermountains.com/en/ga4-query-parameter-exclusion</link><guid isPermaLink="false">https://bluerivermountains.com/en/ga4-query-parameter-exclusion</guid><pubDate>Sat, 22 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Exclude Query Parameters in Google Analytics 4&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In this tutorial you will learn how to exclude &lt;strong&gt;query parameters&lt;/strong&gt; from web addresses in Google Analytics 4.&lt;/p&gt;&lt;p&gt;However, I have another tutorial in case you want to completely &lt;div to=&quot;/en/block-ga4-pageviews-with-url-parameters&quot;&gt;block page views from GA tracking because of their URL parameters&lt;/div&gt;.&lt;/p&gt;&lt;p&gt;You can also use this tutorial to clean other URLs (e.g. video or link addresses) from query strings.&lt;/p&gt;&lt;p&gt;To do this we will create a filter functionality with Google Tag Manager (GTM). It will filter any parameter from a URL string that we define.&lt;/p&gt;&lt;p&gt;If you are looking for a solution to not send personal data via query parameters to your GA4 property, then read further down below under &lt;strong&gt;Redact Personal Information in GA4&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;This guide requires that you use GTM for your tracking with GA4.&lt;/p&gt;&lt;p&gt;Before we start solving the problem let’s first define what query parameters are to be aligned.&lt;/p&gt;&lt;h2&gt;What is a query parameter?&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Query parameters&lt;/strong&gt; are part of the web address for a web page.&lt;/p&gt;&lt;p&gt;A query parameter starts with ? behind the usual web address and assigns values to variables. Several query parameters result in a query string.&lt;/p&gt;&lt;p&gt;Programmers sometimes use query strings so a server can tell from the parameters that it should serve a modified version of the requested web page.&lt;/p&gt;&lt;p&gt;For example, a &lt;strong&gt;query string&lt;/strong&gt; might look like this:&lt;/p&gt;&lt;p&gt;&lt;code&gt;?site=bluerivermountains.com&amp;amp;referrer=google.com&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The entire web address including query parameters then looks like this:&lt;/p&gt;&lt;p&gt;&lt;code&gt;https://bluerivermountains.com?site=bluerivermountains.com&amp;amp;referrer=google.com&lt;/code&gt;&lt;/p&gt;&lt;p&gt;With that cleared up, let&amp;#x27;s now learn how to create a filter function for query parameters in GA4 with the help of Google Tag Manager (GTM).&lt;/p&gt;&lt;h2&gt;What causes query parameters in the Google Analytics reports?&lt;/h2&gt;&lt;h3&gt;User input&lt;/h3&gt;&lt;p&gt;Every time a web page is loaded, the GA4 library sends the URL of the page to Google&amp;#x27;s server with an event. &lt;/p&gt;&lt;p&gt;That means that any visitor can theoretically insert a parameter into the URL and thus send it to your GA reports.&lt;/p&gt;&lt;p&gt;Try it. Add the following query parameter to the end of any web address in the browser and press Enter:&lt;/p&gt;&lt;p&gt;&lt;code&gt;?testParameter=true&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The page will load without problems in most cases. And so the parameter was also sent to Google Analytics when the page was loaded.&lt;/p&gt;&lt;h3&gt;Tracking Services&lt;/h3&gt;&lt;p&gt;Many tools and services use parameters in URLs to track clicks on links.&lt;/p&gt;&lt;p&gt;Examples are e.g. Google Ads, where the parameter &lt;code&gt;?gclid=&lt;/code&gt; is added to the link when clicking on an advertising link.&lt;/p&gt;&lt;p&gt;Another example are &lt;div to=&quot;/en/wiki-analytics/utm-parameter&quot;&gt;UTM parameters&lt;/div&gt;, which are used for campaign tracking in Google Analytics.&lt;/p&gt;&lt;p&gt;The only reason these parameters don&amp;#x27;t show up in Google Analytics reports is that they are &lt;strong&gt;automatically filtered out&lt;/strong&gt; as the parameters are part of Google&amp;#x27;s tracking system.&lt;/p&gt;&lt;p&gt;So all other non-Google parameters of Tools &amp;amp; Services are not automatically filtered out. There are countless examples, since parameters for tracking are a common solution.&lt;/p&gt;&lt;p&gt;Here is a short list of tracking services and the associated query parameters:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Tracking Service&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Query-Parameter&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Bing Ads&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?msclkid=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Facebook Ads&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?fbclid=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Google DoubleClick&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?gclsrc=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Adobe Analytics&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?s_kwcid=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Klaviyo&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?_ke=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Hubspot&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?hsa_cam=&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Ebay&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;?mkcid=&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;p&gt;So if any service adds its custom tracking parameter to a link to your site, you will later find it in the Google Analytics reports.&lt;/p&gt;&lt;h2&gt;Why are query parameters a problem?&lt;/h2&gt;&lt;p&gt;Parameters are not necessarily a problem. But in some scenarios they generate one. For example:&lt;/p&gt;&lt;h3&gt;Data privacy issues&lt;/h3&gt;&lt;p&gt;Many website systems use parameters during the registration process to send user data to the backend.&lt;/p&gt;&lt;p&gt;If such websites are tracked with Google Analytics or the Facebook pixel, you are now automatically breaking Google&amp;#x27;s and Facebook&amp;#x27;s terms of use, because you send private data to their servers via the query parameters in the web addresses.&lt;/p&gt;&lt;p&gt;Afterwards you either get warnings or, in the worst case, you have to expect the your account to be blocked. On top of that you are also breaking EU data protection rules (GDPR).&lt;/p&gt;&lt;div src=&quot;exclude-query-params-in-ga4/example-user-data.png&quot; alt=&quot;User data in the query string&quot; caption=&quot;In Google Analytics 4, the web address of an event can contain personal data such as names and email addresses. By sending this data to Google&amp;#x27;s servers, the terms of use are automatically violated.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;div src=&quot;exclude-query-params-in-ga4/facebook-query-parameter-violating-personal-data-law.png&quot; alt=&quot;Facebook Personal Information Warning&quot; caption=&quot;Parameters with private information also trigger warnings in the Facebook interface.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h3&gt;Problems with Facebook event matching&lt;/h3&gt;&lt;p&gt;If you operate Facebook tracking via the browser and via the server using Facebook&amp;#x27;s Conversion API, tracking data must be deduplicated. Among other things, for the deduplication the web addresses are used.
Query parameters that contain personal data are often only filtered out in one of the two data sources, i.e. either in the browser or on the server. Thus, the event matching scores on Facebook plummet.&lt;/p&gt;&lt;h3&gt;Problems with data analysis&lt;/h3&gt;&lt;p&gt;Tracking tools mostly treat URL&amp;#x27;s as ordinary strings. This means that parameters are not filtered out automatically. This creates problems in data analysis since data for the same page path is not grouped.&lt;/p&gt;&lt;p&gt;See the following table as an example:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Video URL&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Views&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/coolSpring?kjh1249nnj=1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/hotSpring?kasd1249nnj=12&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/hotSpring?123456=true&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/coolSpring?kjdkj49nnj=asasjhb328&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;43&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/hotSpring?k123nj=false&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;https://myvideos/coolSpring?asf45nj&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;15&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;p&gt;As you can hopefully see in the table above, it&amp;#x27;s difficult to calculate the sum of views for a video when the video URL&amp;#x27;s contain parameters.&lt;/p&gt;&lt;h2&gt;How to exclude query parameters in GA4&lt;/h2&gt;&lt;p&gt;How can we filter out query parameters from web addresses in Google Analytics 4?&lt;/p&gt;&lt;p&gt;First we will create a JavaScript variable that will clear the entire query parameter if there is a previously defined parameter in the URL. We then send the URL to Google Analytics without query parameters.&lt;/p&gt;&lt;p&gt;Here we go!&lt;/p&gt;&lt;h3&gt;1. Delete query parameters in GTM&lt;/h3&gt;&lt;p&gt;To remove the question mark &lt;code&gt;?&lt;/code&gt; at the end of the web address and the rest of the query string, the first thing we will do in Google Tag Manager is create a new custom variable of type &amp;quot;Custom JavaScript&amp;quot; called &lt;strong&gt;Page Location - Custom&lt;/strong&gt;&lt;/p&gt;&lt;div src=&quot;exclude-query-params-in-ga4/create-js-variable-in-gtm.png&quot; alt=&quot;create a JavaScript variable&quot; caption=&quot;Create a custom JavaScript variable in GTM&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;Next, let&amp;#x27;s add the following custom JS code:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function() {
    // define parameters to exclude
    var excludeStrings = [
        &amp;quot;hsa_acc&amp;quot;,
        &amp;quot;fbclid&amp;quot;,
        &amp;quot;wbraid&amp;quot;,
        &amp;quot;hsa_cam&amp;quot;,
        &amp;quot;hsa_grp&amp;quot;,
        &amp;quot;hsa_ad&amp;quot;,
        &amp;quot;hsCtaTracking&amp;quot;,
        &amp;quot;submissionGuid&amp;quot;,
        &amp;quot;hsa_src&amp;quot;,
        &amp;quot;hsa_tgt&amp;quot;,
        &amp;quot;hsa_kw&amp;quot;,
        &amp;quot;hsa_mt&amp;quot;,
        &amp;quot;hsa_net&amp;quot;,
        &amp;quot;hsa_ver&amp;quot;,
        &amp;quot;li_fat_id&amp;quot;,
        &amp;quot;q&amp;quot;,
        &amp;quot;msclkid&amp;quot;,
        &amp;quot;ref&amp;quot;,
        &amp;quot;cache&amp;quot;,
        &amp;quot;_x_tr_sl&amp;quot;,
        &amp;quot;_sm_nck&amp;quot;
    ];
    var addressString = new URL(document.location);
    var queryString = addressString.search;

    // check if query string holds any parameters, otherwise just return the url without them
    if (queryString.indexOf(&amp;quot;?&amp;quot;) != -1) {
        // https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
        var getQueryParamsFromURL = function getQueryParamsFromURL() {
            var match,
                search = /([^&amp;amp;=]+)=?([^&amp;amp;]*)/g,
                decode = function decode(s) {
                    return decodeURIComponent(s);
                },
                query = addressString.search.substring(1);

            var urlParams = {};

            while ((match = search.exec(query))) {
                urlParams[decode(match[1])] = decode(match[2]);
            }

            return urlParams;
        };
        // create param object from query string
        var urlParams = getQueryParamsFromURL();

        // if it holds any of the defined parameters, remove the key and keep the rest
        Object.keys(urlParams).map(function (key) {
            if (excludeStrings.includes(key)) delete urlParams[key];
        });

        // Create filtered query string
        var queryString = new URLSearchParams(urlParams).toString();

        // add ? to querystring unless it&amp;#x27;s empty
        if (queryString != &amp;quot;&amp;quot;) queryString = &amp;quot;?&amp;quot; + queryString;
    }

    // return cleaned URL
    return addressString.origin + addressString.pathname + queryString;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now look at the third line of code, which defines the &lt;code&gt;excludeStrings&lt;/code&gt; variable:&lt;/p&gt;&lt;p&gt;An array with a list of parameters for filtering is defined. Each of these strings represents the name of a query parameter. If one of the parameters appears in the web address, it will be deleted.&lt;/p&gt;&lt;p&gt;The rest of the URL and the query string remain intact so that important parameters such as &lt;em&gt;gclid&lt;/em&gt; parameters (Google Ads) or &lt;em&gt;UTM&lt;/em&gt; parameters (campaign tracking) are not accidentally deleted.&lt;/p&gt;&lt;p&gt;The above parameter list from the code snippet resulted over time from Hubspot and Facebook parameters. If you want, delete all parameters and then add your own parameters. However, note the syntax: &lt;code&gt;&amp;quot;parameter1&amp;quot;, &amp;quot;parameter2&amp;quot;, &amp;quot;parameter3&amp;quot;&lt;/code&gt;etc.&lt;/p&gt;&lt;p&gt;For example, if you wanted to add a personal parameter named &lt;code&gt;myPersonalParam&lt;/code&gt;, the array would look like this (see end):&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;    // define parameters to exclude
    var excludeStrings = [
        &amp;quot;hsa_acc&amp;quot;,
        &amp;quot;fbclid&amp;quot;,
        &amp;quot;wbraid&amp;quot;,
        &amp;quot;hsa_cam&amp;quot;,
        &amp;quot;hsa_grp&amp;quot;,
        &amp;quot;hsa_ad&amp;quot;,
        &amp;quot;hsCtaTracking&amp;quot;,
        &amp;quot;submissionGuid&amp;quot;,
        &amp;quot;hsa_src&amp;quot;,
        &amp;quot;hsa_tgt&amp;quot;,
        &amp;quot;hsa_kw&amp;quot;,
        &amp;quot;hsa_mt&amp;quot;,
        &amp;quot;hsa_net&amp;quot;,
        &amp;quot;hsa_ver&amp;quot;,
        &amp;quot;li_fat_id&amp;quot;,
        &amp;quot;q&amp;quot;,
        &amp;quot;msclkid&amp;quot;,
        &amp;quot;ref&amp;quot;,
        &amp;quot;cache&amp;quot;,
        &amp;quot;_x_tr_sl&amp;quot;,
        &amp;quot;_sm_nck&amp;quot;,
        &amp;quot;myPersonalParam&amp;quot;
    ];
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We are nearly finished. Go on.&lt;/p&gt;&lt;h3&gt;2. Set GA4 configuration&lt;/h3&gt;&lt;p&gt;Next, let&amp;#x27;s go to the tags in our Google Tag Manager container and open the &lt;strong&gt;GA4 configuration&lt;/strong&gt; tag.&lt;/p&gt;&lt;p&gt;Now add the field &lt;em&gt;page_location&lt;/em&gt; to the fields to be defined and define our created JavaScript &lt;strong&gt;Page Location - Custom&lt;/strong&gt; as the value:&lt;/p&gt;&lt;div src=&quot;exclude-query-params-in-ga4/g4-configuration-update.png&quot; alt=&quot;Adjust GA4 configuration&quot; caption=&quot;In the configuration tag of GA4 we now set our variable as the web address.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;This setting overrides the web address we send to Google Analytics with our own custom web address.&lt;/p&gt;&lt;p&gt;That means, if the query parameter name was specified in the code snippet, this custom web address no longer contains the parameter.&lt;/p&gt;&lt;p&gt;Finished.&lt;/p&gt;&lt;h2&gt;Filter out all query parameters in GA4&lt;/h2&gt;&lt;p&gt;The previous solution  is based on the assumption that we have no way of knowing which parameters will be added to the URLs and whether or not they should be filtered out.&lt;/p&gt;&lt;p&gt;The analyst must first notice the parameters in the GA4 reports, then decide if they need to be removed and finally expand the parameter list in the JS variable.&lt;/p&gt;&lt;p&gt;On the one hand, the solution gives the user control, since each filtration is considered at least once; on the other hand, updating the list can be cumbersome.&lt;/p&gt;&lt;p&gt;An alternative solution is to &lt;strong&gt;filter out all query parameters&lt;/strong&gt;, except for the one required by Google Analytics (namely &lt;em&gt;gclid-&lt;/em&gt; and &lt;em&gt;utm-&lt;/em&gt; campaign parameters).&lt;/p&gt;&lt;p&gt;However, the disadvantage of this approach is that control over the filtered out parameters is lost. Actually, you only know which parameters are retained (gclid and utm parameters) and nothing more.&lt;/p&gt;&lt;p&gt;Such a solution ensures consistent web addresses in Google Analytics without manual effort.
Therefore, if you are willing to give up some control, you can put the following JS code in the &lt;strong&gt;Page Location - Custom&lt;/strong&gt; variable instead of the above script:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function() {
    // define parameters to keep if available
    var includeStrings = [
        &amp;quot;gclid&amp;quot;,
        &amp;quot;utm_&amp;quot;,
        &amp;quot;gtm_debug&amp;quot;
    ];
    var addressString = new URL(document.location);
    var queryString = addressString.search;

    // check if query string holds any parameters, otherwise just return the url without them
    if (queryString.indexOf(&amp;quot;?&amp;quot;) != -1) {
        // transpile ES2016 =&amp;gt; ES2015
        var _defineProperty = function (obj, key, value) {
            if (key in obj) {
                Object.defineProperty(obj, key, {
                    value: value,
                    enumerable: true,
                    configurable: true,
                    writable: true
                });
            } else {
                obj[key] = value;
            }
            return obj;
        };

        // https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
        var getQueryParamsFromURL = function getQueryParamsFromURL() {
            var match,
                search = /([^&amp;amp;=]+)=?([^&amp;amp;]*)/g,
                decode = function decode(s) {
                    return decodeURIComponent(s);
                },
                query = addressString.search.substring(1);

            var urlParams = {};

            while ((match = search.exec(query))) {
                urlParams[decode(match[1])] = decode(match[2]);
            }

            return urlParams;
        };

        var filterParamsFromList = function filterParamsFromList(obj, list) {
            var urlParamKeysFinal = [];
            var urlParamKeys = Object.keys(obj);

            // test each param for availability and create array with final keys
            for (var i = 0; i &amp;lt; list.length; i++) {
                urlParamKeysFinal.push(
                    urlParamKeys.filter(function (key) {
                        return key.includes(list[i]);
                    })
                );
            }

            // merge all keys into one list
            // https://stackoverflow.com/questions/10865025/merge-flatten-an-array-of-arrays
            urlParamKeysFinal = [].concat.apply([], urlParamKeysFinal);
            return urlParamKeysFinal.reduce(function (cur, key) {
                return Object.assign(cur, _defineProperty({}, key, obj[key]));
            }, {});
        };

        // create param object from query string
        var urlParams = getQueryParamsFromURL(); // Create filtered query string

        queryString = new URLSearchParams(
            // remove any non-matching keys from param object
            filterParamsFromList(urlParams, includeStrings)
        ).toString();

        // add ? to querystring unless it&amp;#x27;s empty
        if (queryString != &amp;quot;&amp;quot;) queryString = &amp;quot;?&amp;quot; + queryString;
    }

    // return cleaned URL
    return addressString.origin + addressString.pathname + queryString;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that at the beginning of the script, the variable &lt;code&gt;includeStrings&lt;/code&gt; is defined with all the &lt;strong&gt;parameter names&lt;/strong&gt; that definitely should always be kept in the URL: gclid and utm parameters.&lt;/p&gt;&lt;p&gt;If there are other parameters you want to be ignored, just add them to the array.&lt;/p&gt;&lt;p&gt;I also added the &lt;code&gt;gtm_debug&lt;/code&gt; parameter. It signals Google Analytics when a page is visited in GTM debug mode. As a result, page views are filtered out of the GA reports during debugging.&lt;/p&gt;&lt;h2&gt;Filter query strings from other event parameters in GA4&lt;/h2&gt;&lt;p&gt;You can also use the above scripts for other event parameters in GA4.
For example for &lt;strong&gt;Video URLs&lt;/strong&gt; or URLs of external links.&lt;/p&gt;&lt;p&gt;Almost at the beginning of my code I define the variable &lt;code&gt;addressString&lt;/code&gt;.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;var addressString = new URL(document.location);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now instead generate the variable from the GTM variable that outputs the video URL:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;var addressString = new URL({{Video URL}});
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The script will from now on remove the query strings from the video URL.&lt;/p&gt;&lt;p&gt;Then you can replace the &lt;code&gt;{{Video URL}}&lt;/code&gt; in the GA4 event tag with the new JavaScript variable.&lt;/p&gt;&lt;h2&gt;Be careful when filtering gclid parameters and UTM parameters&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Gclid&lt;/em&gt; parameters are query parameters that Google Ads adds to the web address of the landing page when an ad is clicked. For attribution in Google Analytics, it is important that these parameters remain in the URL so that the click can be attributed to the paid search channel.&lt;/p&gt;&lt;p&gt;&lt;em&gt;UTM&lt;/em&gt; parameters are campaign parameters that Google Analytics users add to links to your website. Using the &lt;em&gt;utm&lt;/em&gt; parameter, the user can later see in the Google Analytics reports exactly which website or campaign a visitor came from.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Gclid&lt;/em&gt; parameters and &lt;em&gt;UTM&lt;/em&gt; parameters are automatically filtered out by Google Analytics during data processing and &lt;strong&gt;are not visible in the reports&lt;/strong&gt;. These parameters therefore do not have to be filtered out manually with Google Analytics.&lt;/p&gt;&lt;h2&gt;Redact Personal Information in GA4&lt;/h2&gt;&lt;p&gt;GA4 has recently released a new Gtag-feature: Data redaction for query parameters.&lt;/p&gt;&lt;p&gt;Meaning, if your website is picking up personal information or simply unwanted data in query parameters, you now have an easy way to tell GA4 to ignore the values of those query parameters.&lt;/p&gt;&lt;p&gt;Head to GA4&amp;#x27;s Admin Panel and find the new feature here:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Admin -&amp;gt; Data Streams -&amp;gt; Choose your stream -&amp;gt; Redact Data&lt;/strong&gt;&lt;/p&gt;&lt;div src=&quot;exclude-query-params-in-ga4/exclude-query-params-in-GA4-interface.png&quot; alt=&quot;Redact PII (personal identifying information) from Query Params automatically in GA4&quot; caption=&quot;Define the query parameters to let GA4 redact their values.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;This is a quick and easy way to make sure that you won&amp;#x27;t be sending personal data to Google Analytics servers. &lt;/p&gt;&lt;p&gt;However, it won&amp;#x27;t help you with other services like Facebook. For third-party platforms, you will still the above solution to clean URL strings before sending.&lt;/p&gt;&lt;p&gt;This is how the URL will look liked after GA4 redacted the values:&lt;/p&gt;&lt;div src=&quot;exclude-query-params-in-ga4/redacted-param-values.png&quot; alt=&quot;Url with redacted query param values&quot; caption=&quot;Your query params will still show up in the GA4 interface, but values are redacted.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h2&gt;FAQ&lt;/h2&gt;&lt;div class=&quot;FaqComponent__StyledDiv-sc-1dswcso-0 bxebgR&quot;&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you redact data in GA4?&lt;/summary&gt;&lt;p&gt;In GA4, use the &amp;quot;Data redaction for query parameters&amp;quot; feature. Head to Admin -&amp;gt; Data Streams -&amp;gt; Choose your stream -&amp;gt; Redact Data. Define which query parameters to redact.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you exclude query parameters in GA4?&lt;/summary&gt;&lt;p&gt;Use Google Tag Manager. Create a JavaScript variable that clears specific query parameters from URLs before sending to GA4.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to strip query parameters out of URL GA4?&lt;/summary&gt;&lt;p&gt;With Google Tag Manager, set up a custom JavaScript variable. This will remove specific or all query parameters, except essentials like gclid and utm.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Can we remove query params from URL in GA4?&lt;/summary&gt;&lt;p&gt;Yes, using Google Tag Manager. Set up a custom JavaScript variable to filter out query parameters before sending the URL to GA4.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Why exclude URL query parameters?&lt;/summary&gt;&lt;p&gt;Main reasons: Address data privacy concerns, avoid Facebook event matching issues, and ensure accurate data analysis.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the difference between query and params in URL?&lt;/summary&gt;&lt;p&gt;Query parameters follow a &amp;quot;?&amp;quot; in a URL, assigning values to variables. They help servers deliver modified web pages based on these parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the meaning of a query parameter?&lt;/summary&gt;&lt;p&gt;Query parameters are part of a web address. They begin with a &amp;quot;?&amp;quot; and assign values to variables. When you have multiple, they form a query string.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Does Google Analytics track URL parameters?&lt;/summary&gt;&lt;p&gt;Absolutely. Every time a webpage loads, GA4 sends the URL, including its parameters, to Google&amp;#x27;s servers.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is an example of a URL with query params?&lt;/summary&gt;&lt;p&gt;Here&amp;#x27;s an example: `https://bluerivermountains.com?site=bluerivermountains.com&amp;amp;referrer=google.com`&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is an example with multiple query params?&lt;/summary&gt;&lt;p&gt;Here&amp;#x27;s that same example: `https://bluerivermountains.com?site=bluerivermountains.com&amp;amp;referrer=google.com`&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can a URL have multiple query parameter values?&lt;/summary&gt;&lt;p&gt;Multiple query parameters in a URL are separated using the &amp;quot;&amp;amp;&amp;quot; symbol: `https://bluerivermountains.com?site=bluerivermountains.com&amp;amp;referrer=google.com`&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How would you define URL parameters?&lt;/summary&gt;&lt;p&gt;Query parameters are parts of a web address that start with a &amp;quot;?&amp;quot; and assign values to different variables.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Why do UTM parameters not show up in the URLs in Google Analytics?&lt;/summary&gt;&lt;p&gt;UTM parameters don&amp;#x27;t appear in Google Analytics reports because they&amp;#x27;re automatically filtered out, being part of Google&amp;#x27;s tracking system.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How do you exclude query parameters in GA4?&lt;/summary&gt;&lt;p&gt;In GA4, to exclude query parameters, you&amp;#x27;d use Google Tag Manager. You&amp;#x27;d set up a custom JavaScript variable that filters out specific or all query parameters from the URL before it&amp;#x27;s sent to GA4.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is a query parameter?&lt;/summary&gt;&lt;p&gt;Query parameters are part of the web address for a web page. A query parameter starts with `?` behind the usual web address and assigns values to variables. Several query parameters result in a query string.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What causes query parameters in the Google Analytics reports?&lt;/summary&gt;&lt;p&gt;The causes are twofold: User input and Tracking Services. Every time a web page is loaded, the GA4 library sends the URL of the page to Google&amp;#x27;s server with an event, allowing any visitor to theoretically insert a parameter into the URL. Additionally, many tools and services use parameters in URLs to track clicks on links.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What should you be cautious about when filtering gclid parameters and UTM parameters?&lt;/summary&gt;&lt;p&gt;Gclid parameters are query parameters added by Google Ads to the web address of the landing page when an ad is clicked. UTM parameters are campaign parameters added by Google Analytics users to links. Both are automatically filtered out by Google Analytics during data processing and do not need to be filtered out manually.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How does the URL look after GA4 redacts the values?&lt;/summary&gt;&lt;p&gt;Your query params will still show up in the GA4 interface, but values are redacted.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;Why are query parameters a problem?&lt;/summary&gt;&lt;p&gt;Query parameters can cause data privacy issues as many website systems use parameters during the registration process to send user data to the backend. If such websites are tracked with Google Analytics or the Facebook pixel, you are automatically breaking Google&amp;#x27;s and Facebook&amp;#x27;s terms of use. They can also cause problems with Facebook event matching and data analysis.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to exclude query parameters in GA4?&lt;/summary&gt;&lt;p&gt;You can exclude query parameters in GA4 by creating a JavaScript variable that will clear the entire query parameter if there is a previously defined parameter in the URL, and then sending the URL to Google Analytics without query parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to filter out all query parameters in GA4?&lt;/summary&gt;&lt;p&gt;To filter out all query parameters, except for the ones required by Google Analytics (namely gclid- and utm- campaign parameters), you can use a JavaScript code provided in the article.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How to redact personal information in GA4?&lt;/summary&gt;&lt;p&gt;GA4 has a new Gtag-feature: Data redaction for query parameters. You can define the query parameters to let GA4 redact their values in the Admin Panel.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the purpose of query parameters in a web address?&lt;/summary&gt;&lt;p&gt;Query parameters are part of the web address for a web page. They start with `?` behind the usual web address and assign values to variables, allowing a server to serve a modified version of the requested web page based on these parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How does Google Analytics end up with query parameters in its reports?&lt;/summary&gt;&lt;p&gt;Every time a web page is loaded, the GA4 library sends the URL of the page to Google&amp;#x27;s server with an event. This means that any visitor can theoretically insert a parameter into the URL and send it to your GA reports. Tools and services also use parameters in URLs to track clicks on links, which can end up in the reports.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What problems can arise from using query parameters?&lt;/summary&gt;&lt;p&gt;Query parameters can lead to data privacy issues, problems with Facebook event matching, and difficulties in data analysis. For instance, if websites use parameters to send user data during the registration process, and if these sites are tracked with Google Analytics or the Facebook pixel, it results in a breach of Google&amp;#x27;s and Facebook&amp;#x27;s terms of use.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can one exclude query parameters from web addresses in Google Analytics 4?&lt;/summary&gt;&lt;p&gt;To exclude query parameters from web addresses in Google Analytics 4, one can create a JavaScript variable that will clear the entire query parameter if there is a previously defined parameter in the URL. Then, the URL can be sent to Google Analytics without query parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is an alternative solution for filtering out all query parameters in Google Analytics 4?&lt;/summary&gt;&lt;p&gt;An alternative solution is to filter out all query parameters, except for the ones required by Google Analytics (namely gclid- and utm- campaign parameters). However, this approach sacrifices some control over the filtered out parameters.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can one redact personal information in Google Analytics 4?&lt;/summary&gt;&lt;p&gt;GA4 has a feature called Data redaction for query parameters. Users can define the query parameters to let GA4 redact their values. This feature can be found in the GA4&amp;#x27;s Admin Panel under Data Streams.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;How can one filter query strings from other event parameters in GA4?&lt;/summary&gt;&lt;p&gt;The same scripts used for excluding and filtering out all query parameters in URLs can be used for other event parameters in GA4, such as Video URLs or URLs of external links.&lt;/p&gt;&lt;/details&gt;&lt;details class=&quot;FaqComponent__StyledDetails-sc-1dswcso-1 hBfdCd&quot;&gt;&lt;summary class=&quot;FaqComponent__StyledSummary-sc-1dswcso-2 brDzQe&quot;&gt;What is the importance of gclid parameters and UTM parameters in Google Analytics?&lt;/summary&gt;&lt;p&gt;Gclid parameters are query parameters that Google Ads adds to the web address of the landing page when an ad is clicked. They are important for attribution in Google Analytics. UTM parameters are campaign parameters that Google Analytics users add to links to your website, helping the user to see exactly which website or campaign a visitor came from.&lt;/p&gt;&lt;/details&gt;&lt;/div&gt;&lt;script type=&quot;application/ld+json&quot;&gt;{&quot;@context&quot;:&quot;https://schema.org&quot;,&quot;@type&quot;:&quot;FAQPage&quot;,&quot;mainEntity&quot;:[{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you redact data in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;In GA4, use the \&quot;Data redaction for query parameters\&quot; feature. Head to Admin -&gt; Data Streams -&gt; Choose your stream -&gt; Redact Data. Define which query parameters to redact.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you exclude query parameters in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Use Google Tag Manager. Create a JavaScript variable that clears specific query parameters from URLs before sending to GA4.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to strip query parameters out of URL GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;With Google Tag Manager, set up a custom JavaScript variable. This will remove specific or all query parameters, except essentials like gclid and utm.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Can we remove query params from URL in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Yes, using Google Tag Manager. Set up a custom JavaScript variable to filter out query parameters before sending the URL to GA4.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Why exclude URL query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Main reasons: Address data privacy concerns, avoid Facebook event matching issues, and ensure accurate data analysis.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the difference between query and params in URL?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters follow a \&quot;?\&quot; in a URL, assigning values to variables. They help servers deliver modified web pages based on these parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the meaning of a query parameter?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters are part of a web address. They begin with a \&quot;?\&quot; and assign values to variables. When you have multiple, they form a query string.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Does Google Analytics track URL parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Absolutely. Every time a webpage loads, GA4 sends the URL, including its parameters, to Google&apos;s servers.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is an example of a URL with query params?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Here&apos;s an example: `https://bluerivermountains.com?site=bluerivermountains.com&amp;referrer=google.com`&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is an example with multiple query params?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Here&apos;s that same example: `https://bluerivermountains.com?site=bluerivermountains.com&amp;referrer=google.com`&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can a URL have multiple query parameter values?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Multiple query parameters in a URL are separated using the \&quot;&amp;\&quot; symbol: `https://bluerivermountains.com?site=bluerivermountains.com&amp;referrer=google.com`&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How would you define URL parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters are parts of a web address that start with a \&quot;?\&quot; and assign values to different variables.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Why do UTM parameters not show up in the URLs in Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;UTM parameters don&apos;t appear in Google Analytics reports because they&apos;re automatically filtered out, being part of Google&apos;s tracking system.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How do you exclude query parameters in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;In GA4, to exclude query parameters, you&apos;d use Google Tag Manager. You&apos;d set up a custom JavaScript variable that filters out specific or all query parameters from the URL before it&apos;s sent to GA4.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is a query parameter?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters are part of the web address for a web page. A query parameter starts with `?` behind the usual web address and assigns values to variables. Several query parameters result in a query string.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What causes query parameters in the Google Analytics reports?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The causes are twofold: User input and Tracking Services. Every time a web page is loaded, the GA4 library sends the URL of the page to Google&apos;s server with an event, allowing any visitor to theoretically insert a parameter into the URL. Additionally, many tools and services use parameters in URLs to track clicks on links.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What should you be cautious about when filtering gclid parameters and UTM parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Gclid parameters are query parameters added by Google Ads to the web address of the landing page when an ad is clicked. UTM parameters are campaign parameters added by Google Analytics users to links. Both are automatically filtered out by Google Analytics during data processing and do not need to be filtered out manually.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How does the URL look after GA4 redacts the values?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Your query params will still show up in the GA4 interface, but values are redacted.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;Why are query parameters a problem?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters can cause data privacy issues as many website systems use parameters during the registration process to send user data to the backend. If such websites are tracked with Google Analytics or the Facebook pixel, you are automatically breaking Google&apos;s and Facebook&apos;s terms of use. They can also cause problems with Facebook event matching and data analysis.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to exclude query parameters in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;You can exclude query parameters in GA4 by creating a JavaScript variable that will clear the entire query parameter if there is a previously defined parameter in the URL, and then sending the URL to Google Analytics without query parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to filter out all query parameters in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To filter out all query parameters, except for the ones required by Google Analytics (namely gclid- and utm- campaign parameters), you can use a JavaScript code provided in the article.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How to redact personal information in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;GA4 has a new Gtag-feature: Data redaction for query parameters. You can define the query parameters to let GA4 redact their values in the Admin Panel.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the purpose of query parameters in a web address?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters are part of the web address for a web page. They start with `?` behind the usual web address and assign values to variables, allowing a server to serve a modified version of the requested web page based on these parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How does Google Analytics end up with query parameters in its reports?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Every time a web page is loaded, the GA4 library sends the URL of the page to Google&apos;s server with an event. This means that any visitor can theoretically insert a parameter into the URL and send it to your GA reports. Tools and services also use parameters in URLs to track clicks on links, which can end up in the reports.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What problems can arise from using query parameters?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Query parameters can lead to data privacy issues, problems with Facebook event matching, and difficulties in data analysis. For instance, if websites use parameters to send user data during the registration process, and if these sites are tracked with Google Analytics or the Facebook pixel, it results in a breach of Google&apos;s and Facebook&apos;s terms of use.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can one exclude query parameters from web addresses in Google Analytics 4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;To exclude query parameters from web addresses in Google Analytics 4, one can create a JavaScript variable that will clear the entire query parameter if there is a previously defined parameter in the URL. Then, the URL can be sent to Google Analytics without query parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is an alternative solution for filtering out all query parameters in Google Analytics 4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;An alternative solution is to filter out all query parameters, except for the ones required by Google Analytics (namely gclid- and utm- campaign parameters). However, this approach sacrifices some control over the filtered out parameters.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can one redact personal information in Google Analytics 4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;GA4 has a feature called Data redaction for query parameters. Users can define the query parameters to let GA4 redact their values. This feature can be found in the GA4&apos;s Admin Panel under Data Streams.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;How can one filter query strings from other event parameters in GA4?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;The same scripts used for excluding and filtering out all query parameters in URLs can be used for other event parameters in GA4, such as Video URLs or URLs of external links.&quot;}},{&quot;@type&quot;:&quot;Question&quot;,&quot;name&quot;:&quot;What is the importance of gclid parameters and UTM parameters in Google Analytics?&quot;,&quot;acceptedAnswer&quot;:{&quot;@type&quot;:&quot;Answer&quot;,&quot;text&quot;:&quot;Gclid parameters are query parameters that Google Ads adds to the web address of the landing page when an ad is clicked. They are important for attribution in Google Analytics. UTM parameters are campaign parameters that Google Analytics users add to links to your website, helping the user to see exactly which website or campaign a visitor came from.&quot;}}]}&lt;/script&gt;&lt;h2&gt;References&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;div to=&quot;/en/wiki-analytics/utm-parameter&quot;&gt;What are UTM parameters?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.google.com/analytics/answer/6366371?hl=en&quot; target=&quot;_blank&quot;&gt;Google&amp;#x27;s best practices to avoid sending PII&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Read more about Google Analytics view on PII data in their &lt;a rel=&quot;nofollow&quot; href=&quot;https://marketingplatform.google.com/about/analytics/terms/us/&quot; target=&quot;_blank&quot;&gt;terms of service&lt;/a&gt; in Section 7, &amp;quot;Privacy&amp;quot; &lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Trigger a tag only on the first page view with GTM]]></title><description><![CDATA[Trigger a tag only on the first page view with GTM The default page view triggers in a  Google Tag Manager setup  are not enough to cover all tag management use-cases.  Example : Let's say you want to…]]></description><link>https://bluerivermountains.com/en/trigger-first-page-view</link><guid isPermaLink="false">https://bluerivermountains.com/en/trigger-first-page-view</guid><pubDate>Mon, 18 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Trigger a tag only on the first page view with GTM&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The default page view triggers in a &lt;div to=&quot;/en/google-tag-manager-setup&quot;&gt;Google Tag Manager setup&lt;/div&gt; are not enough to cover all tag management use-cases. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: Let&amp;#x27;s say you want to show a pop-up to each website visitor at the beginning of their session. &lt;/p&gt;&lt;p&gt;For that you would need the tag to &lt;strong&gt;only fire on the first page view&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;So in this tutorial, we will create a custom event trigger that fires only once on the first page view. &lt;/p&gt;&lt;p&gt;The code will be simple and we won&amp;#x27;t use any &lt;div to=&quot;/en/wiki-analytics/cookies&quot;&gt;cookies&lt;/div&gt; to store the data.&lt;/p&gt;&lt;h2&gt;How to trigger a tag only on the first page view?&lt;/h2&gt;&lt;p&gt;We&amp;#x27;ll need a custom HTML tag to evaluate on each page view if it is the first of the session or not. &lt;/p&gt;&lt;p&gt;We&amp;#x27;ll store that information in the browser storage. Then we&amp;#x27;ll need a JavaScript variable to check against that value in a trigger.&lt;/p&gt;&lt;p&gt;Let&amp;#x27;s get started. &lt;/p&gt;&lt;h3&gt;1. Create a custom HTML tag in GTM&lt;/h3&gt;&lt;p&gt;First, create a new Custom HTML tag with the following code:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;lt;script&amp;gt;
// check if item has been set on a previous hit
if  (window.sessionStorage)  {
    if  (sessionStorage.getItem(&amp;quot;firstHit&amp;quot;))  {
        sessionStorage.setItem(&amp;#x27;firstHit&amp;#x27;,  &amp;#x27;false&amp;#x27;);
    }  else  {
// otherwise set this hit as first page view
        sessionStorage.setItem(&amp;#x27;firstHit&amp;#x27;,  &amp;#x27;true&amp;#x27;);
    }
}
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Set the &lt;strong&gt;trigger type&lt;/strong&gt; to be the &lt;strong&gt;all pages&lt;/strong&gt; trigger and hit &lt;strong&gt;save&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If your website is a single-page application then this tag should be fired on each &lt;em&gt;history change event&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;On the first page view of the session the code creates an object in the session storage with &lt;code&gt;firstHit&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt;. And on any following page views it will set the variable to &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;So when we check this value with a custom JavaScript variable in GTM, it will return &lt;code&gt;true&lt;/code&gt; on the first page view and &lt;code&gt;false&lt;/code&gt; on any other page view.&lt;/p&gt;&lt;p&gt;Let&amp;#x27;s go and do that.&lt;/p&gt;&lt;h3&gt;2. Create a custom JavaScript Variable in GTM&lt;/h3&gt;&lt;p&gt;In Google Tag Manager go to variables and create a new variable of type &lt;em&gt;custom JavaScript&lt;/em&gt; and name it “First page view”.&lt;/p&gt;&lt;p&gt;Add the following JavaScript code:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;  function() {
      return sessionStorage.getItem(&amp;quot;firstHit&amp;quot;);
  }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This variable returns &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt; indicating if the current page view is the first page view of the session.&lt;/p&gt;&lt;p&gt;Now we can use this variable as a condition in our &lt;strong&gt;custom trigger&lt;/strong&gt;.&lt;/p&gt;&lt;h3&gt;3. Create custom GTM Trigger&lt;/h3&gt;&lt;p&gt;Next, go to triggers and create a new &lt;strong&gt;Window Loaded Trigger&lt;/strong&gt; that fires only on &lt;em&gt;Some window loaded events&lt;/em&gt;. &lt;/p&gt;&lt;p&gt;As a condition, the &lt;strong&gt;First page view&lt;/strong&gt; variable shall equal &lt;code&gt;true&lt;/code&gt; (see below).&lt;/p&gt;&lt;div src=&quot;first-page-view/gtm-configuration-fire-tag-on-first-page-view-en.png&quot; alt=&quot;GTM trigger configuration&quot; caption=&quot;GTM trigger configuration that checks if the current page view is the first of the session&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;Click &lt;strong&gt;save&lt;/strong&gt;. And we are finished. &lt;/p&gt;&lt;p&gt;With this custom GTM trigger you can now fire any tag or code snippet on the first page view only.&lt;/p&gt;&lt;h2&gt;Session Storage API&lt;/h2&gt;&lt;p&gt;For the trigger configuration in Google Tag Manager we need a data storage that tells us if the current page view is the first of the session.&lt;/p&gt;&lt;p&gt;Since the data shall only be persisted for the session we can use the &lt;a href=&quot;https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage&quot; target=&quot;_blank&quot;&gt;session storage API&lt;/a&gt; of the browser.&lt;/p&gt;&lt;p&gt;Using the session Storage API to detect the first page view of a session is the more developer &amp;amp; marketer-friendly solution.&lt;/p&gt;&lt;p&gt;It requires less code than using cookies and stored data is erased automatically at the close of the browser.&lt;/p&gt;&lt;p&gt;In addition, the API is very simple to use.&lt;/p&gt;&lt;p&gt;You can inspect the session storage in your browser’s &lt;strong&gt;developer tools&lt;/strong&gt; if you go to application tab &amp;gt; storage &amp;gt; session storage.&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;https://caniuse.com/?search=sessionstorage&quot; target=&quot;_blank&quot;&gt;session storage API is supported in 96.83% of browsers globally&lt;/a&gt;. Meaning in about 3.2% of browsers worldwide the variable will return &lt;code&gt;undefined&lt;/code&gt; instead and &lt;strong&gt;hinder&lt;/strong&gt; tag execution on the first page view.&lt;/p&gt;&lt;p&gt;The same solution with cookies instead of session storage has a negligible better global browser support of 0.31%. &lt;/p&gt;&lt;h2&gt;Final words&lt;/h2&gt;&lt;p&gt;Thats it. The code is lean and stored data is deleted automatically at the close of the browser which makes it a neat and light-weight solution.&lt;/p&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[How to Outline a Blog Post FAST]]></title><description><![CDATA[How to outline a blog post fast To write a blog post outline you need to determine all  relevant subtopics  that cover your main-topic thoroughly.  For each subtopic you then note down a headline…]]></description><link>https://bluerivermountains.com/en/head-ripper-method</link><guid isPermaLink="false">https://bluerivermountains.com/en/head-ripper-method</guid><pubDate>Mon, 16 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;How to outline a blog post fast&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;To write a blog post outline you need to determine all &lt;strong&gt;relevant subtopics&lt;/strong&gt; that cover your main-topic thoroughly. &lt;/p&gt;&lt;p&gt;For each subtopic you then note down a headline until all important aspects for your target audience are covered. So the &lt;strong&gt;outline structure will only contain headlines&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;This is an example of a draft outline: &lt;/p&gt;&lt;div src=&quot;head-ripper/outline-example.png&quot; alt=&quot;Base structure of outline&quot; caption=&quot;Create the base structure of your outline.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;If you like, add a few content notes for a paragraph neatly indented under a heading with bullet points to give each section more depth:&lt;/p&gt;&lt;div src=&quot;head-ripper/outline-example-with-notes.png&quot; alt=&quot;Base structure of outline including notes&quot; caption=&quot;Structure including notes&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;But there is still one step missing during this process.&lt;/p&gt;&lt;h3&gt;Keep search engine optimization in mind&lt;/h3&gt;&lt;p&gt;You probably want your article to rank for a certain target keyword that is close to your main topic.
&lt;strong&gt;Headlines&lt;/strong&gt; are critical for search engines to understand what a blog post is about.&lt;/p&gt;&lt;p&gt;So when writing headlines during your outlining process, you want to strike a balance between making them engaging and descriptive, so search engines understand them and deem the topic relevant to the article. &lt;/p&gt;&lt;p&gt;If you neglect this step you risk not showing up in your keywords&amp;#x27; search results at all.&lt;/p&gt;&lt;p&gt;But how can you make a high quality, topically relevant blog post that is SEO friendly without spending too much time?&lt;/p&gt;&lt;h2&gt;Write a Great Blogging Outline very fast&lt;/h2&gt;&lt;p&gt;A nifty way to determine what information to include in your blog outline is looking at the subtopics of articles that are already ranking for your keyword.&lt;/p&gt;&lt;p&gt;Following this approach, you save time planning subtopics and researching which to include in the article. Plus, you leverage your competitors header optimization. &lt;/p&gt;&lt;p&gt;If those competing articles are ranking at the top, clearly they must be doing something right about their headlines, so it makes sense to leverage their optimization.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step-by-step&lt;/strong&gt; the process goes like this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Search for your target keyword&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Open the best ranking results&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Compare their subheading structure with each other&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Draft your blog outline based on their headings&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Give it your personal twist and add value with your own ideas&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If you compare the subheaders side-by-side in Google Sheets or Excel, you can scan them at once and determine:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;common subtopics across all blog posts&lt;/li&gt;&lt;li&gt;special topics that are only covered few times&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The general rule to follow is, take what&amp;#x27;s commonly covered by others and choose from the special topics if you consider them to be valuable.&lt;/p&gt;&lt;p&gt;This is how it looks like when you put all headlines of the top-ranking blog posts for the keyword “best backlink tool” next to each other for comparison: &lt;/p&gt;&lt;div src=&quot;head-ripper/best-backlink-tool-sheet-with-headlines.png&quot; alt=&quot;Comparing subheadlines of competitors in a sheet&quot; caption=&quot;Compare subtopics of competitors side by side. Note it also includes the post title, which helps a bit formulating your own title.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;You see how much more structured this approach is, than visiting each piece of content yourself (and maybe getting distracted by videos, images and advertising 😂)?&lt;/p&gt;&lt;h3&gt;Create summarizing headings&lt;/h3&gt;&lt;p&gt;To create your own article outline, tint subheaders that cover the same information with one color and work your way through all of them. &lt;/p&gt;&lt;p&gt;At the end, the colors represent potential topics for the blog content and you can simply add a heading as a section to your draft by choosing from the same color.&lt;/p&gt;&lt;p&gt;This is how it looks like when I&amp;#x27;m putting it together: &lt;/p&gt;&lt;div src=&quot;head-ripper/topic-grouping-with-colors-sheet.png&quot; alt=&quot;grouping sections for topical relevance&quot; caption=&quot;Create the base structure of your blog post based on the common sections of ranking websites.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;So by scraping the headings from the top of the search results and comparing them in a spreadsheet, you can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;plan your blog post outline FAST&lt;/li&gt;&lt;li&gt;make sure you cover the most important subtopics&lt;/li&gt;&lt;li&gt;ensure headlines are topically relevant (SEO)&lt;/li&gt;&lt;li&gt;find opportunities for insights others don&amp;#x27;t cover yet (since you now have an easy overview)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This is all great - except it’s a pain to manually extract subheadlines from the top search results and put them in a spreadsheet.&lt;/p&gt;&lt;p&gt;Since I started freelance consulting with Blue River Mountains, I automated as much as I could, since it is one of the few ways to scale as a freelancer. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;That’s why I automated the process and below I’m sharing my head ripper tool with you so you can extract all subheaders in just seconds.&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;Competitor headline extractor tool for batch-analysis in Google sheets&lt;/h2&gt;&lt;p&gt;Here is the link to the &lt;a href=&quot;https://colab.research.google.com/drive/1heAzS1MR71SBYOlwWaW7dSP8bsWtl44D?usp=sharing&quot;&gt;head ripper tool&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The tool runs in Google Colab, so let me quickly show you how it works:&lt;/p&gt;&lt;div id=&quot;6VVRkXDg2Xc&quot;&gt;&lt;/div&gt;&lt;p&gt;This is what you need to run it: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Google account&lt;/li&gt;&lt;li&gt;URL&amp;#x27;s of competing pages&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Step-by-Step guide to run the Tool&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;First, &lt;a href=&quot;https://colab.research.google.com/drive/1heAzS1MR71SBYOlwWaW7dSP8bsWtl44D?usp=sharing&quot;&gt;go to the head ripper tool&lt;/a&gt; in Google Colab and &lt;strong&gt;Save a copy in Drive&lt;/strong&gt;.&lt;div src=&quot;head-ripper/head-ripper-save-copy.png&quot; alt=&quot;Save a copy of the Python tool in Google Colab&quot; caption=&quot;Save a copy of the Python tool in Google Colab.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Execute the &lt;strong&gt;first code block&lt;/strong&gt; by pressing the play button.&lt;div src=&quot;head-ripper/head-ripper-play-first-block.png&quot; alt=&quot;Play first code block in Google Colab&quot; caption=&quot;Play first code block in Google Colab.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;link in the output&lt;/strong&gt; to get the authentication key, then paste it into the empty field and &lt;strong&gt;press enter&lt;/strong&gt;. This allows Google Colab to create a Google sheet.&lt;video title=&quot;authenticate Google Colab with Google Sheets&quot; autoplay=&quot;&quot; loop=&quot;&quot; controls=&quot;&quot; style=&quot;max-width:100%&quot;&gt;&lt;source src=&quot;/video/authenticate-google-sheets-api.mp4&quot; type=&quot;video/mp4&quot;/&gt;&lt;/video&gt;&lt;/li&gt;&lt;li&gt;Search for your target keyword on Google, then &lt;strong&gt;copy and paste the URLs&lt;/strong&gt; of the search result pages into the form.&lt;div src=&quot;head-ripper/head-ripper-copy-paste-urls.png&quot; alt=&quot;Copy-paste SERP URL&amp;#x27;s into input form&quot; caption=&quot;Copy URLs of the Google search result pages into the input-form&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Give the Google Sheet a &lt;strong&gt;name&lt;/strong&gt;.&lt;div src=&quot;head-ripper/head-ripper-copy-sheet-name.png&quot; alt=&quot;Add a name for the Google Sheet&quot; caption=&quot;Add a name for the Google Sheet&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Execute the second code block by pressing the play button.&lt;div src=&quot;head-ripper/head-ripper-play-second-block.png&quot; alt=&quot;Execute next Python code block in Google Colab&quot; caption=&quot;Execute the next Python code block by pressing the play button.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Execute the third code block by pressing the play button.&lt;div src=&quot;head-ripper/head-ripper-play-third-block.png&quot; alt=&quot;execute third code block in Google Colab&quot; caption=&quot;Execute the last code block in Google Colab&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Done. Go to &lt;a href=&quot;https://sheets.google.com&quot;&gt;Google Sheets&lt;/a&gt; and open your newly created sheet holding all of your competitor&amp;#x27;s headlines.&lt;div src=&quot;head-ripper/best-backlink-tool-sheet-with-headlines.png&quot; alt=&quot;Comparing subtopics for topical relevance&quot; caption=&quot;Compare subtopics of competitors side by side.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Nice. Now that you have all blog sections in a spreadsheet, you can easily find commonalities and start building your own outline. &lt;/p&gt;&lt;p&gt;Afterwards you can get into the details and start the actual writing process.&lt;/p&gt;&lt;h2&gt;How many subtopics should you include in the content for SEO&lt;/h2&gt;&lt;p&gt;Group the sections of your competitors by tinting them with a color in the Google sheet. Once you did that with all of them, you know what they most-commonly talk about.&lt;/p&gt;&lt;p&gt;Then add the most common blocks to your own content outline to create the basic structure.&lt;/p&gt;&lt;p&gt;To exceed competing content, &lt;strong&gt;add 1-2 additional subtopics&lt;/strong&gt; that you find relevant to add.&lt;/p&gt;&lt;h3&gt;But how can I find additional relevant points that nobody is talking about yet?&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://simpletools.io/&quot; target=&quot;_blank&quot;&gt;Simpletools.io&lt;/a&gt;. helps you find related questions to your keyword. Answer them the ones you deem most relevant to your visitor.&lt;div src=&quot;head-ripper/head-ripper-simpletools.png&quot; alt=&quot;topically relevant questions on Simpletools.io&quot; caption=&quot;Research topically relevant Questions on Simpletools.io&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Another method is to look at what Google deems highly relevant to your topic. &lt;a href=&quot;https://streamsuggest.herokuapp.com/&quot; target=&quot;_blank&quot;&gt;StreamSuggest&lt;/a&gt; scrapes all auto-suggest keywords for you and enters each one into another Google search to scrape all of their keyword suggestions again.
You get all related auto-suggestions in seconds. &lt;div src=&quot;head-ripper/head-ripper-streamsuggest.png&quot; alt=&quot;keyword suggestions from Streamsuggest&quot; caption=&quot;Related keyword suggestions from Streamsuggest.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Let’s wrap this up.&lt;/p&gt;&lt;h2&gt;Takeaway&lt;/h2&gt;&lt;p&gt;Let&amp;#x27;s take a step back a second, ignore the tool and dissect all important details to learn what the key message is.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;You can achieve topical relevance often by just analyzing the sections (H1, H2, H3...) of top-ranking search result pages.&lt;/li&gt;&lt;li&gt;My tool allows you to scan and create a content outline fast, because you get all important subsections distraction-free to start your analysis by grouping and selecting them.&lt;/li&gt;&lt;li&gt;To exceed competitors blog posts, &lt;strong&gt;add 1-2 additional points&lt;/strong&gt; based on your own expert advice, e.g. answer a relevant question from your personal perspective or explain another point that Google finds relevant.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;That&amp;#x27;s it. Let me know on &lt;a href=&quot;https://twitter.com/mattzipan/status/1328370542466961408&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; if you liked this and if it helped you to plan SEO-friendly content. ✌️&lt;/p&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[How to log all JavaScript events to the console for debugging]]></title><description><![CDATA[How to log all JavaScript events to the console for debugging Let's look at how to debug all JavaScript events and log them to the console with a nifty trick.  It's for example important when…]]></description><link>https://bluerivermountains.com/en/log-all-javascript-events</link><guid isPermaLink="false">https://bluerivermountains.com/en/log-all-javascript-events</guid><pubDate>Thu, 24 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;How to log all JavaScript events to the console for debugging&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Let&amp;#x27;s look at how to debug all JavaScript events and log them to the console with a nifty trick. &lt;/p&gt;&lt;p&gt;It&amp;#x27;s for example important when debugging a web page to see how many submit events a form element sends out. &lt;/p&gt;&lt;p&gt;With this debugging method you prevent sending and tracking &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Events&quot; target=&quot;_blank&quot;&gt;browser events&lt;/a&gt; multiple times. &lt;/p&gt;&lt;h2&gt;Listen for all events in JavaScript&lt;/h2&gt;&lt;p&gt;There is a handy API in &lt;strong&gt;Chrome Developer Tools&lt;/strong&gt; that makes this easy. &lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;https://developers.google.com/web/updates/2015/05/quickly-monitor-events-from-the-console-panel&quot; target=&quot;_blank&quot;&gt;monitorEvents&lt;/a&gt; API allows you to log any occuring JavaScript event to the console in Chrome. You just have to give the API an element and &lt;em&gt;optionally&lt;/em&gt; the event you want to listen to:&lt;/p&gt;&lt;figure class=&quot;codesnippet&quot;&gt;&lt;pre&gt;&lt;div class=&quot;cobalt2-sc-1rh3y6k-0 gKtErt prism-code language-js&quot; p=&quot;3&quot;&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//syntax&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//monitorEvents(element,event)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//listen to all events&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;monitorEvents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token dom variable&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//stop listening&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;unmonitorEvents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token dom variable&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;To listen for all &lt;strong&gt;submit events&lt;/strong&gt; the code would look like this:&lt;/p&gt;&lt;figure class=&quot;codesnippet&quot;&gt;&lt;pre&gt;&lt;div class=&quot;cobalt2-sc-1rh3y6k-0 gKtErt prism-code language-js&quot; p=&quot;3&quot;&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//start listening&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;monitorEvents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token dom variable&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;//stop listening&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;unmonitorEvents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token dom variable&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Note that if you want to stop listening for events again, you simply use &lt;code&gt;unmonitorEvents&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: Log all &lt;strong&gt;click events&lt;/strong&gt; of the &lt;strong&gt;window object&lt;/strong&gt; to the console&lt;/p&gt;&lt;video autoplay=&quot;&quot; loop=&quot;&quot; controls=&quot;&quot;&gt;&lt;source src=&quot;/video/monitor-events-api.mp4&quot; type=&quot;video/mp4&quot;/&gt;&lt;/video&gt;&lt;p&gt;Now with this helpful debugging tool in our toolbox, we can for example select a form element in Chrome Developer Tools to start monitoring &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event&quot; target=&quot;_blank&quot;&gt;submit events&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;After you select the element in the elements tab, Chrome Dev Tools will show a little &lt;code&gt;$0&lt;/code&gt; sign next to it. &lt;/p&gt;&lt;p&gt;If you keep the HTML-Element selected, you can now use the &lt;code&gt;$0&lt;/code&gt; to quickly reference the element in the console -  without needing a CSS selector. &lt;/p&gt;&lt;p&gt;Now together with the &lt;code&gt;monitorEvents&lt;/code&gt; API you can quickly and easily listen to all ongoing JavaScript events and print them to the console for debugging:&lt;/p&gt;&lt;video autoplay=&quot;&quot; loop=&quot;&quot; controls=&quot;&quot;&gt;&lt;source src=&quot;/video/monitor-submit-events.mp4&quot; type=&quot;video/mp4&quot;/&gt;&lt;/video&gt;&lt;p&gt;This is helpful for all kinds of &lt;div to=&quot;/en/event-tracking&quot;&gt;event tracking&lt;/div&gt; because you can debug every JavaScript event in the console without having to run the &lt;a href=&quot;https://www.analyticsmania.com/post/google-tag-manager-debug-mode/&quot; target=&quot;_blank&quot;&gt;GTM Debugger&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;So there you have it. By using Chrome Dev Tools&amp;#x27; API, it is the quickest way to monitor all JavaScript events that I know of.&lt;/p&gt;&lt;p&gt;Let me know on &lt;a href=&quot;https://twitter.com/mattzipan/status/1309410245685530624&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; if it worked for you and if you liked this. ✌️&lt;/p&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Check SERP rankings instantly with this Python script]]></title><description><![CDATA[Google SERP checker Python script What's really cool about on-page SEO is its feedback loop. Because, as soon as your changes are indexed, you can see an effect in Google's search results. You either…]]></description><link>https://bluerivermountains.com/en/free-serp-checker-python-script</link><guid isPermaLink="false">https://bluerivermountains.com/en/free-serp-checker-python-script</guid><pubDate>Sun, 12 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Google SERP checker Python script&lt;/h1&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;What&amp;#x27;s really cool about on-page SEO is its feedback loop. Because, as soon as your changes are indexed, you can see an effect in Google&amp;#x27;s search results.&lt;/p&gt;&lt;p&gt;You either moved up a bit or down. So you learn if Google liked your changes or not.&lt;/p&gt;&lt;p&gt;With this learning you can apply more changes, get them indexed again and work your way steadily up the SERPs.&lt;/p&gt;&lt;p&gt;Nice - but there is one challenge.&lt;/p&gt;&lt;p&gt;For keyword optimization in a foreign country, you will need a VPN to see the local SERP exactly the way it would look like in that country.&lt;/p&gt;&lt;p&gt;So I did that for a while, but it turned out to be too cumbersome.&lt;/p&gt;&lt;p&gt;I had to change my IP manually each time and then count through the results. It took a lot of time, so I needed a better solution.&lt;/p&gt;&lt;p&gt;My keyword rank tracker would only give me data that was from 12 to 48 hours ago, so that was no solution either. I wanted to know my rankings now and if possible for free, because I&amp;#x27;m a &lt;div to=&quot;/en/seo-freelancer&quot;&gt;freelance SEO&lt;/div&gt; and want to keep costs in control.&lt;/p&gt;&lt;p&gt;Recently, I had a look at some &lt;strong&gt;SEO API&lt;/strong&gt; services and noticed that many had a free tier included.&lt;/p&gt;&lt;p&gt;Shortly after, I also stumbled upon Google Colab to write and easily share Python scripts and enjoyed the development experience right from the beginning.&lt;/p&gt;&lt;p&gt;Hence, I built an SEO rank checker script in Python that would instantly check a keyword ranking. It works directly from Google Colab, so no setup-hassle.&lt;/p&gt;&lt;p&gt;This is how it looks like, when you fetch a SERP for a keyword in the UK:&lt;/p&gt;&lt;video autoplay=&quot;&quot; loop=&quot;&quot; controls=&quot;&quot; style=&quot;max-width:100%&quot;&gt;&lt;source src=&quot;/video/instant-serp-checker.mp4&quot; type=&quot;video/mp4&quot;/&gt;&lt;/video&gt;&lt;br/&gt;&lt;p&gt;You can use the code too if you follow below steps.&lt;/p&gt;&lt;h2&gt;How to get started&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Sign up for the free tier on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://serpstack.com?fpr=instant-serp-checker&quot;&gt;Serpstack.com&lt;/a&gt; - The free tier allows for &lt;strong&gt;100 requests&lt;/strong&gt; per month. It’s an affiliate link. If you ever decide to move to the paid plan, I&amp;#x27;ll get a commission.&lt;/li&gt;&lt;li&gt;Copy the API key from the Serpstack dashboard. &lt;div src=&quot;free-serp-checker/serpstack-dashboard-with-api-key.png&quot; alt=&quot;API key on Serpstack&amp;#x27;s dashboard view&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Make a copy of my &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://colab.research.google.com/drive/1jIklTl447ObZ5nx-HEFuRpMQ-a5o0YQa?usp=sharing&quot;&gt;Google Colab Python script&lt;/a&gt;&lt;div src=&quot;free-serp-checker/google-collab-make-a-copy.png&quot; alt=&quot;make a copy of Google Colab script&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol start=&quot;4&quot;&gt;&lt;li&gt;Open your copy and fill out the form:&lt;div src=&quot;free-serp-checker/form-for-api-parameters.png&quot; alt=&quot;form to fill out API parameters&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;api_key&lt;/code&gt; - enter the key you copied from Serpstack&amp;#x27;s dashboard&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;target_query&lt;/code&gt; - your keyword&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;target_domain&lt;/code&gt; - the domain you want to find, like &lt;em&gt;example.com&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;google_domain&lt;/code&gt; - the Google domain you want to search from, like &lt;em&gt;google.co.uk&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;country_code&lt;/code&gt; - country code. Here the complete list following the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes&quot;&gt;ISO 3166 standard&lt;/a&gt; and a few examples:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Country&lt;/th&gt;&lt;th&gt;Country Code&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Germany&lt;/td&gt;&lt;td&gt;de&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USA&lt;/td&gt;&lt;td&gt;us&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UK&lt;/td&gt;&lt;td&gt;gb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Denmark&lt;/td&gt;&lt;td&gt;dk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sweden&lt;/td&gt;&lt;td&gt;se&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;language&lt;/code&gt; - Language code. Here the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes&quot;&gt;complete list following ISO 639-1 standard&lt;/a&gt; and a few examples:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Country&lt;/th&gt;&lt;th&gt;Language Code&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Germany&lt;/td&gt;&lt;td&gt;de&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USA&lt;/td&gt;&lt;td&gt;en&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UK&lt;/td&gt;&lt;td&gt;en&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Denmark&lt;/td&gt;&lt;td&gt;da&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sweden&lt;/td&gt;&lt;td&gt;sv&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;results&lt;/code&gt; - number of results to scrape, from 10 to max. 100&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;device&lt;/code&gt; - the search device (mobile, desktop, tablet)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol start=&quot;5&quot;&gt;&lt;li&gt;Go to the navigation bar and click on Runtime &amp;gt; &lt;strong&gt;Run all&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div src=&quot;free-serp-checker/google-collab-run-all.png&quot; alt=&quot;Run all python code in Google Colab&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;p&gt;After a few seconds a result should be logged to the &lt;strong&gt;bottom of the screen&lt;/strong&gt;, that looks something like this:&lt;/p&gt;&lt;div src=&quot;free-serp-checker/serp-results-terminal-print-out.png&quot; alt=&quot;Print Google&amp;#x27;s search results into the terminal.&quot; class=&quot;article-img&quot;&gt;&lt;/div&gt;&lt;h2&gt;How to use the script to check your website rankings?&lt;/h2&gt;&lt;p&gt;Don&amp;#x27;t get me wrong. The idea is not to replace rank tracker tools. Among the most important SEO tools, it is necessary to have a tool that checks Google rankings accurately and immediately.&lt;/p&gt;&lt;p&gt;Why?&lt;/p&gt;&lt;p&gt;Because keyword trackers only give you the search results with a 24h delay. You don&amp;#x27;t know your website rankings &lt;strong&gt;now&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Why do you have to know your SERP results on-demand?&lt;/p&gt;&lt;p&gt;As soon as search engines index changes on your website, the page rankings update. So you want to check keyword rankings right before you publish on-page optimizations and right &lt;strong&gt;after&lt;/strong&gt; - for your custom reporting.&lt;/p&gt;&lt;p&gt;The new organic results will indicate if your update was helpful to rank higher for your search query or not.&lt;/p&gt;&lt;p&gt;So this SERP checker tool is intended to be used to quickly check rank updates, and not to track rankings over time.&lt;/p&gt;&lt;p&gt;In my experience, this is a very rewarding methodology to work your way up into the top 10 Google results. You get feedback after each update and use the Google results themselves to tell you what works and whatnot.&lt;/p&gt;&lt;h2&gt;Get instant SERP data for specific locations&lt;/h2&gt;&lt;p&gt;You may have had the problem, that you work for international clients and have to check their organic results from a different city or country.&lt;/p&gt;&lt;p&gt;You can not simply search from your location, due to different SERPs based on the country you search from.&lt;/p&gt;&lt;p&gt;So the great solution to the problem is to use an API with a script that takes care of getting a local IP for the Google SERP.&lt;/p&gt;&lt;p&gt;You can just select the Google region you need and then let the tool check the data.&lt;/p&gt;&lt;p&gt;Additionally, you also get data about the related keywords, ad rankings and local pack results. And you can search with a mobile browser or get a SERP overview for desktop.&lt;/p&gt;&lt;p&gt;So the idea here is to make use of such services because they already solve many little problems you would otherwise encounter doing it yourself.&lt;/p&gt;&lt;p&gt;So there you have it. You can instantly check your keyword rankings anywhere for free.&lt;/p&gt;&lt;p&gt;The code is also available in this &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://github.com/mattzipan/free-SERP-checker&quot;&gt;Github repository&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Let me know on &lt;a href=&quot;https://twitter.com/mattzipan/status/1288376335442771969&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; how it worked for you. ✌️&lt;/p&gt;&lt;div class=&quot;AuthorContainer__StyledAuthorContainer-sc-cwwkp2-0 iQBYQE authorcontainer&quot;&gt;&lt;div class=&quot;details&quot;&gt;&lt;a to=&quot;/about&quot; class=&quot;imagewrapper&quot;&gt;&lt;img src=&quot;data:image/jpeg;base64,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&quot; alt=&quot;author avatar&quot; class=&quot;avatar&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;wrapper&quot;&gt;&lt;div class=&quot;row1&quot;&gt;&lt;div class=&quot;author&quot;&gt;Matthias Kupperschmidt&lt;/div&gt;&lt;a href=&quot;https://twitter.com/intent/follow?screen_name=mattzipan&quot;&gt;&lt;div class=&quot;followBtn&quot;&gt;Follow&lt;/div&gt; &lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;row2&quot;&gt;&lt;div class=&quot;date&quot;&gt;&lt;/div&gt;&lt;div class=&quot;readtime&quot;&gt;undefinedmin read&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;socialshare&quot;&gt;&lt;span&gt;share&lt;/span&gt;&lt;a href=&quot;https://twitter.com/intent/tweet?text=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;twitter-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiAgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTEyLDk3LjI0OGMtMTkuMDQsOC4zNTItMzkuMzI4LDEzLjg4OC02MC40OCwxNi41NzZjMjEuNzYtMTIuOTkyLDM4LjM2OC0zMy40MDgsNDYuMTc2LTU4LjAxNg0KCQkJYy0yMC4yODgsMTIuMDk2LTQyLjY4OCwyMC42NC02Ni41NiwyNS40MDhDNDExLjg3Miw2MC43MDQsMzg0LjQxNiw0OCwzNTQuNDY0LDQ4Yy01OC4xMTIsMC0xMDQuODk2LDQ3LjE2OC0xMDQuODk2LDEwNC45OTINCgkJCWMwLDguMzIsMC43MDQsMTYuMzIsMi40MzIsMjMuOTM2Yy04Ny4yNjQtNC4yNTYtMTY0LjQ4LTQ2LjA4LTIxNi4zNTItMTA5Ljc5MmMtOS4wNTYsMTUuNzEyLTE0LjM2OCwzMy42OTYtMTQuMzY4LDUzLjA1Ng0KCQkJYzAsMzYuMzUyLDE4LjcyLDY4LjU3Niw0Ni42MjQsODcuMjMyYy0xNi44NjQtMC4zMi0zMy40MDgtNS4yMTYtNDcuNDI0LTEyLjkyOGMwLDAuMzIsMCwwLjczNiwwLDEuMTUyDQoJCQljMCw1MS4wMDgsMzYuMzg0LDkzLjM3Niw4NC4wOTYsMTAzLjEzNmMtOC41NDQsMi4zMzYtMTcuODU2LDMuNDU2LTI3LjUyLDMuNDU2Yy02LjcyLDAtMTMuNTA0LTAuMzg0LTE5Ljg3Mi0xLjc5Mg0KCQkJYzEzLjYsNDEuNTY4LDUyLjE5Miw3Mi4xMjgsOTguMDgsNzMuMTJjLTM1LjcxMiwyNy45MzYtODEuMDU2LDQ0Ljc2OC0xMzAuMTQ0LDQ0Ljc2OGMtOC42MDgsMC0xNi44NjQtMC4zODQtMjUuMTItMS40NA0KCQkJQzQ2LjQ5Niw0NDYuODgsMTAxLjYsNDY0LDE2MS4wMjQsNDY0YzE5My4xNTIsMCwyOTguNzUyLTE2MCwyOTguNzUyLTI5OC42ODhjMC00LjY0LTAuMTYtOS4xMi0wLjM4NC0xMy41NjgNCgkJCUM0ODAuMjI0LDEzNi45Niw0OTcuNzI4LDExOC40OTYsNTEyLDk3LjI0OHoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==&quot; alt=&quot;twitter logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=false&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;linkedin-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDk2LjEyNCA5Ni4xMjMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDk2LjEyNCA5Ni4xMjM7Ig0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik03Mi4wODksMC4wMkw1OS42MjQsMEM0NS42MiwwLDM2LjU3LDkuMjg1LDM2LjU3LDIzLjY1NnYxMC45MDdIMjQuMDM3Yy0xLjA4MywwLTEuOTYsMC44NzgtMS45NiwxLjk2MXYxNS44MDMNCgkJYzAsMS4wODMsMC44NzgsMS45NiwxLjk2LDEuOTZoMTIuNTMzdjM5Ljg3NmMwLDEuMDgzLDAuODc3LDEuOTYsMS45NiwxLjk2aDE2LjM1MmMxLjA4MywwLDEuOTYtMC44NzgsMS45Ni0xLjk2VjU0LjI4N2gxNC42NTQNCgkJYzEuMDgzLDAsMS45Ni0wLjg3NywxLjk2LTEuOTZsMC4wMDYtMTUuODAzYzAtMC41Mi0wLjIwNy0xLjAxOC0wLjU3NC0xLjM4NmMtMC4zNjctMC4zNjgtMC44NjctMC41NzUtMS4zODctMC41NzVINTYuODQydi05LjI0Ng0KCQljMC00LjQ0NCwxLjA1OS02LjcsNi44NDgtNi43bDguMzk3LTAuMDAzYzEuMDgyLDAsMS45NTktMC44NzgsMS45NTktMS45NlYxLjk4Qzc0LjA0NiwwLjg5OSw3My4xNywwLjAyMiw3Mi4wODksMC4wMnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;linkedin logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;a href=&quot;https://www.linkedin.com/shareArticle?mini=true&amp;amp;url=false&amp;amp;title=false&amp;amp;source=share&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;facebook-logo&quot;&gt;&lt;img src=&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDQzMC4xMTcgNDMwLjExNyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDMwLjExNyA0MzAuMTE3OyINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBpZD0iTGlua2VkSW4iIGQ9Ik00MzAuMTE3LDI2MS41NDNWNDIwLjU2aC05Mi4xODhWMjcyLjE5M2MwLTM3LjI3MS0xMy4zMzQtNjIuNzA3LTQ2LjcwMy02Mi43MDcNCgkJYy0yNS40NzMsMC00MC42MzIsMTcuMTQyLTQ3LjMwMSwzMy43MjRjLTIuNDMyLDUuOTI4LTMuMDU4LDE0LjE3OS0zLjA1OCwyMi40NzdWNDIwLjU2aC05Mi4yMTljMCwwLDEuMjQyLTI1MS4yODUsMC0yNzcuMzJoOTIuMjENCgkJdjM5LjMwOWMtMC4xODcsMC4yOTQtMC40MywwLjYxMS0wLjYwNiwwLjg5NmgwLjYwNnYtMC44OTZjMTIuMjUxLTE4Ljg2OSwzNC4xMy00NS44MjQsODMuMTAyLTQ1LjgyNA0KCQlDMzg0LjYzMywxMzYuNzI0LDQzMC4xMTcsMTc2LjM2MSw0MzAuMTE3LDI2MS41NDN6IE01Mi4xODMsOS41NThDMjAuNjM1LDkuNTU4LDAsMzAuMjUxLDAsNTcuNDYzDQoJCWMwLDI2LjYxOSwyMC4wMzgsNDcuOTQsNTAuOTU5LDQ3Ljk0aDAuNjE2YzMyLjE1OSwwLDUyLjE1OS0yMS4zMTcsNTIuMTU5LTQ3Ljk0QzEwMy4xMjgsMzAuMjUxLDgzLjczNCw5LjU1OCw1Mi4xODMsOS41NTh6DQoJCSBNNS40NzcsNDIwLjU2aDkyLjE4NHYtMjc3LjMySDUuNDc3VjQyMC41NnoiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K&quot; alt=&quot;facebook logo&quot; height=&quot;24px&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item></channel></rss>