Technical audit · 16.06.2026

anp.nl

Website of the Dutch national news agency

Anp.nl is the website of the Dutch national news agency. Homepage scan: 51 requests, 16 domains. The site has its own consent banner, but in practice it does not hold trackers back. Before the user's choice, the Facebook pixel sends a pageview event to Meta, Google Analytics runs in two generations at once — legacy and current, a third-party identification and attribution service contacts its own servers, and a video platform collects player statistics. Consent mode for Google is not configured. In other words, the banner is present, but the advertising pixel, analytics, and identification fire before the choice, and three of these recipients aren't even named in the policy.

Request timeline

2098 ms · own consent banner
The site's own consent banner loads. By design, it should hold non-technical services back until the user makes a choice.
2126 ms · tag manager
A tag manager loads, through which analytics and pixels are deployed.
2663 ms · Facebook pixel library
The Facebook pixel library loads. The advertising service connects before consent.
2691 ms · legacy Google Analytics
The legacy generation of Google Analytics loads and sends a request. This version of analytics has long been discontinued, but continues to run here.
3434 ms · video player statistics
The video platform collects player statistics. Before consent.
3686 ms · current Google Analytics
The current generation of Google Analytics sends a request without a consent signal — consent mode is not configured.
3708 ms · third-party identification
A third-party identification and attribution service sends a request to its own servers. Before consent.
4559 ms · pageview event to Meta
The Facebook pixel sends a pageview event to Meta. Meta receives the fact of the visit before consent.
banner present, but not blocking
The site's own consent banner is present, but the advertising pixel, analytics, and identification had already fired before the user's choice. No cookies were set via headers during the session.

Declared versus actual

✓ Google Analytics — declared
+ Facebook Pixel — not declared
+ Vimeo (analytics) — not declared
+ Bending Spoons — not declared

Detected trackers

Indicators of GDPR non-compliance

Context

www.anp.nl is the website of the Dutch national news agency (Algemeen Nederlands Persbureau): a news feed, photo bank, and services for editorial teams. The data controller is ANP. The site is informational, with an extension into media services.

Scan: 51 requests to 16 domains, homepage, captured in a clean Edge browser without a VPN or ad blocker. The site has its own consent banner. For a news agency, the technical stack is heavily loaded with trackers.

Who receives the data

Observed here: Meta, Google, Bending Spoons, Vimeo.

Meta receives a pageview event via the Facebook pixel. Google is present with analytics from two generations at once. A third-party identification and attribution service sends a request to its own servers. A video platform collects player statistics. In other words, the fact of the visit goes out to several third-party services at once.

Yes, the site has its own consent banner. But in practice it does not hold trackers back: the advertising pixel, analytics, and identification fire before the user’s choice. Consent mode for Google Analytics, moreover, is not configured — its requests go out with no consent signal at all.

In other words, the consent mechanism is present but doesn’t do its job.

Before the user’s choice, the following fire:

  • the Facebook pixel — a pageview event to Meta;
  • Google Analytics — two generations, including the legacy one;
  • a third-party identification and attribution service;
  • video-player analytics.

All of these services are non-technical purposes requiring consent. It’s worth separately noting that one generation of Google Analytics has long been discontinued, yet continues running on this site.

Undisclosed recipients

A separate point. The policy names only Google Analytics. The Facebook pixel transmitting the visit to Meta, the video-platform analytics, and the third-party identification and attribution service are not mentioned in the policy. In other words, three data recipients, including a social-network advertising pixel, are undisclosed in the listing.

Conclusion

Anp.nl is a case where the consent mechanism exists but doesn’t work. The news agency’s site has a banner, yet the Facebook pixel, two generations of Google Analytics, third-party identification, and video-player analytics all fire before the user’s choice, and consent mode for Google is not configured. On top of that, three of these recipients aren’t named in the policy. The key takeaway for the reader: having a banner means nothing by itself if it doesn’t actually hold trackers back until consent, and if the recipient list is missing half of the services actually in use. It would be enough to configure blocking and consent mode so that the pixel and analytics wait for the user’s choice, to complete the recipient list, and to remove the legacy analytics.

Evidence

How to verify: download the file and compute its checksum — sha256sum file.har (Linux, macOS) or certutil -hashfile file.har SHA256 (Windows); it must match the one shown. The conclusions apply to the scope of this measurement — see the limitations of the method.

Original (audit)
HAR file: nl/anp-nl-2026-06-16.har
SHA-256: d17b505addf51e1dfab21fd57b8fb7e16576461b43cd74ccc9904da1eaa0b4c8
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.