Get AI summaries of any video or article — Sign up free
Naughty Meta Was Tracking Users thumbnail

Naughty Meta Was Tracking Users

The PrimeTime·
6 min read

Based on The PrimeTime's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Meta Pixel is described as using localhost communication on Android to transfer a Facebook cookie and browsing context from a browser session to background Facebook/Instagram apps.

Briefing

Meta’s mobile web tracking method—using localhost communication to bridge browser activity to native Facebook and Instagram identities—has been linked to potential EU regulatory penalties totaling up to €32 billion. The core claim is that Meta can identify users across web browsing sessions even when they use incognito mode, refuse or delete cookies, and even when a VPN is in place. The mechanism matters because it bypasses ordinary Android browser isolation expectations, turning “web-only” activity into something that can be tied back to long-lived app identifiers.

The described workflow starts when a user opens a native Facebook or Instagram app, which runs in the background and listens on specific TCP and UDP ports. When the user later visits a website that embeds the Meta Pixel script, the browser-side JavaScript attempts to communicate with the native app through localhost. That exchange carries the Facebook cookie (FBP) and browsing context—such as the visited URL and event types like page view, add to cart, or purchase—along with browser metadata. The native app then forwards the identifier to Meta’s servers using GraphQL mutations, effectively linking web activity to the user’s Facebook/Instagram account even if the user never logged into those accounts from the browser itself.

Researchers also report that Meta’s approach can evade standard user controls. The method is framed as bypassing Android sandbox protections and typical privacy expectations like clearing cookies or relying on incognito mode. A key detail is that the data flow is difficult to observe with common browser debugging tools because the communication rides on WebRTC/STUN-related traffic and UDP-based localhost messaging rather than straightforward HTTP requests.

Meta’s implementation has reportedly changed after disclosure. As of June 3rd, Meta Pixel is said to have stopped sending packets to localhost, with code responsible for cookie transmission “almost completely removed.” The transcript also notes that around May 17th Meta added a new method using TURN instead of STUN/related handling, with the claim that it avoids a technique Chrome developers publicly disabled following earlier disclosure.

The same localhost-bridging pattern is described for Yandex, via Yandex Metrica scripts embedded on millions of sites. Yandex-owned apps (including Yandex Maps, Yandex Navigator, and Yandex Search, plus a Yandex browser) are said to listen on local ports and act as a proxy that collects Android advertising identifiers and other app-accessible identity data. The Yandex Metrica domain is described as resolving to the loopback address, and the apps then upload aggregated identifiers back to Yandex servers.

Beyond tracking, the transcript raises an additional risk: malicious apps could potentially harvest browsing history by racing to listen on the same localhost ports and intercepting the HTTP requests used in Yandex’s flow. A proof-of-concept is described as demonstrating browsing-history leakage across Chrome, Firefox, and Edge, while Brave is said to be unaffected due to blocking behavior and DuckDuckGo only minimally affected.

Finally, the transcript situates the issue in scale and incentives. Meta Pixel is reported as embedded on millions of websites, and Yandex Metrica on close to three million. The broader takeaway is that “first-party” cookie use and incognito protections may not prevent identity linkage when web-to-app bridging is used, and that regulatory enforcement could hinge on whether multiple EU regimes—GDPR, DMA, and DSA—can apply cumulative penalties for the same underlying conduct.

Cornell Notes

The transcript describes a web-to-app tracking technique that uses localhost communication on Android to connect browser sessions to native Facebook/Instagram identities. Meta Pixel JavaScript is said to send the Facebook cookie and browsing context to background Meta apps listening on fixed TCP/UDP ports, after which the apps transmit the identifiers to servers via GraphQL. The method is presented as bypassing common privacy expectations like incognito mode and cookie deletion, and it can be hard to detect with standard browser dev tools because it relies on WebRTC/STUN/UDP localhost traffic. After disclosure, Meta allegedly removed most localhost cookie-sending code and shifted to a TURN-based approach. A similar pattern is described for Yandex Metrica, with additional concerns that other apps could intercept browsing history by racing to bind the same local ports.

How does localhost bridging turn “web browsing” into “app identity” tracking on Android?

The described flow starts with a native Facebook or Instagram app running in the background and listening on specific TCP and UDP port ranges. When a user visits a site embedding Meta Pixel, the browser loads Meta Pixel JavaScript, which attempts to connect to the native app via localhost. The exchange sends the Facebook cookie (FBP) and parameters like the page URL and event type (e.g., page view, add to cart, purchase), plus browser metadata. The native app receives the cookie and then transmits the identifier to Meta’s servers using GraphQL mutations, linking the web session to the user’s Facebook/Instagram account.

Why do incognito mode and cookie deletion not necessarily stop this kind of tracking?

The transcript’s claim is that the tracking does not depend solely on persistent browser cookies. Instead, it uses a web-to-app bridge: the browser-side script communicates with a native app over localhost and transfers an identifier (FBP) to the app, which then uses app-accessible identity data to associate the browsing session with the user’s account. Because the identifier transfer happens through localhost messaging to the native app, clearing cookies or using incognito may not prevent the identifier from being relayed.

What makes the traffic difficult to inspect with normal browser debugging tools?

The transcript says the cookie transfer rides on WebRTC/STUN-related messaging and UDP localhost communication rather than typical HTTP requests visible in standard dev tools. It also notes that the data flow “cannot be observed using Chrome’s regular debugging tools such as dev tools,” implying that tools like Wireshark may be needed to see the underlying UDP/STUN exchanges.

What changed after disclosure in Meta’s implementation?

The transcript reports that as of June 3rd, Meta Pixel no longer sends packets or requests to localhost, with the code responsible for sending the cookie “almost completely removed.” It also says that around May 17th Meta added a new method that sends the cookie using TURN instead of STUN/WebRTC turn, described as avoiding a Chrome-disabled technique following the disclosure.

How does the Yandex Metrica localhost approach differ, and what extra risk is raised?

Yandex is described as using HTTP requests to localhost ports, with Yandex-owned apps acting as proxies that listen on those ports and collect Android advertising IDs and other identifiers via app-accessible APIs. The transcript raises an additional risk: a malicious third-party app could listen on the same ports and intercept the HTTP request, enabling browsing-history harvesting. A proof of concept is said to work on Chrome, Firefox, and Edge, while Brave is described as unaffected due to blocking behavior.

What scale and incentives are mentioned for why this tracking persists?

The transcript cites embedding prevalence: Meta Pixel is said to appear on about 5.8 million websites, and Yandex Metrica on close to 3 million, with both also present on millions of sites according to public datasets. It argues that many websites opt into these scripts for ad revenue, so even if users dislike tracking, the commercial incentives for publishers and ad tech remain strong.

Review Questions

  1. What specific steps connect a browser visit to a native Facebook/Instagram identity in the described localhost method?
  2. Why might GraphQL mutations be a key part of the tracking pipeline rather than just an implementation detail?
  3. What conditions would allow a malicious app to intercept browsing history in the Yandex-style localhost design?

Key Points

  1. 1

    Meta Pixel is described as using localhost communication on Android to transfer a Facebook cookie and browsing context from a browser session to background Facebook/Instagram apps.

  2. 2

    The native apps then send identifiers to Meta’s servers using GraphQL mutations, linking web activity to app-based accounts even without logging into the account from the browser.

  3. 3

    The transcript claims the approach can bypass typical user privacy expectations such as incognito mode and cookie deletion because the identifier transfer happens via web-to-app bridging.

  4. 4

    Meta’s localhost behavior is reported to have changed after disclosure, including removal of most localhost cookie-sending code and a shift toward TURN-based handling.

  5. 5

    A similar localhost bridging pattern is described for Yandex Metrica, where Yandex apps listen on local ports, collect Android advertising identifiers, and upload aggregated data to Yandex servers.

  6. 6

    The transcript raises a security concern that other apps could potentially intercept browsing-history data by racing to bind the same localhost ports.

  7. 7

    Reported embedding scale (millions of websites) suggests the tracking ecosystem is driven by publisher ad incentives as well as platform behavior.

Highlights

Meta Pixel is described as linking browser visits to Facebook/Instagram identities by having native apps listen on fixed TCP/UDP ports and receiving cookie data via localhost messaging.
The cookie transfer is portrayed as hard to inspect in standard browser dev tools because it relies on WebRTC/STUN/UDP localhost traffic rather than straightforward HTTP requests.
After disclosure, Meta is said to have stopped localhost packet sending and shifted cookie transport toward TURN-based handling.
Yandex Metrica is described as using localhost HTTP requests through Yandex apps that proxy Android advertising identifiers back to Yandex servers, with an added risk of browsing-history interception by malicious apps.

Topics

  • Meta Pixel Tracking
  • Android Localhost
  • GDPR Penalties
  • Yandex Metrica
  • Web-To-App Bridging

Mentioned

  • GDPR
  • DSA
  • DMA
  • TCP
  • UDP
  • VPN
  • WebRTC
  • STUN
  • TURN
  • GraphQL