
Hello, we have noticed a double page_view hit being sent to GA4 for each article loaded via infinity scroll.
Specifically, when an article loads through the ajax/infinity scroll mechanism, two separate page_view hits are fired:
1. One originating from the ajax loader context
2. One from the main GA4 session
This results in each infinity-scrolled article being counted twice in GA4.
Our current setup:
– GA4 configured via Google Site Kit
– Enhanced Measurement enabled, including page_view tracking for virtual navigation
– Newspaper theme with infinity scroll enabled
I have verified this by inspecting the Network tab and confirming two distinct page_view requests fire per infinity scroll article load:
dl=https://colombiaone.com/2026/03/21/occupations-disappeared-over-time/?tdb_action=tdb_ajax
en=page_view&_fv=1&_nsi=1&_ss=1
frm=1
cid=XXXXXXXXX
_p=1774196751760
and
dl=https://colombiaone.com/2026/03/21/occupations-disappeared-over-time/
en=page_view
frm=0
cid=XXXXXXXXX
_p=1774196739163
My questions are:
1. Is this a known behaviour with the Newspaper theme’s infinity scroll and GA4 Enhanced Measurement running simultaneously?
2. Is there a recommended configuration or setting within the theme to prevent the duplicate hit?
Any guidance would be appreciated!
Thank you!
Hi,
What’s happening here is that Google Analytics 4 Enhanced Measurement is automatically tracking page views, while the Newspaper Theme also triggers its own tracking when content is loaded via AJAX. Since infinite scroll relies on AJAX, both systems fire a page_view, which results in duplicates.
The simplest and fastest solution is to disable GA4 Enhanced Measurement for page changes.
If you prefer to keep Enhanced Measurement enabled, you can instead filter out the AJAX hits, for example by excluding events where:
the parameter frm=1 or _fv=1 is present, or the URL contains tdb_ajax
This will help prevent duplicate page_view counts in reports.
Thank you!
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checkbox-advertisement | 1 year | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement". |
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| Cookie | Duration | Description |
|---|---|---|
| _ga | 2 years | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
| _gat_gtag_UA_43963494_1 | 1 minute | This cookie is set by Google and is used to distinguish users. |
| _gid | 1 day | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form. |
| Cookie | Duration | Description |
|---|---|---|
| IDE | 1 year 24 days | Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile. |
| test_cookie | 15 minutes | This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies. |
| VISITOR_INFO1_LIVE | 5 months 27 days | This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website. |
| YSC | session | This cookies is set by Youtube and is used to track the views of embedded videos. |
| Cookie | Duration | Description |
|---|---|---|
| CONSENT | 16 years 5 months 26 days 13 hours 25 minutes | No description |
| yt-remote-connected-devices | never | This cookies is set by Youtube and stores the user's video player preferences using embedded YouTube video. |
| yt-remote-device-id | never | This cookies is set by Youtube and stores the user's video player preferences using embedded YouTube video. |