Two page_view events for one page load can result from automatic collection combined with a custom trigger. Check measurement IDs first: events belonging to different systems or properties are not necessarily duplicate collection for one destination.

Use a fresh test window and inspect actual events after the intended consent. Compare event names, measurement IDs, page addresses and timing without using customer or form data.

Assign responsibility to one trigger

Google documents configuration of automatic page views. A deliberately manual implementation may begin with:

gtag('config', 'G-EXAMPLE123', { send_page_view: false });

Use a real associated measurement ID only in your test environment. This line does not itself send a manual page view or provide a complete consent setup.

Enhanced measurement can also send page views on browser-history changes. Inspect that setting separately: send_page_view: false alone does not disable those history-based triggers.

Inspect Tag Manager, directly embedded tags and client-side routing listeners. Change one source at a time. Full navigations and application route changes may use different triggers.

After correcting the configuration, test direct entry, an internal transition and another page load. Each actual view should have a clearly designated trigger. Record which source was removed or changed. Record the correction date; previously duplicated page views remain in historical data.

Sources