Links

User counting

How eyeo protects privacy while counting users.
To improve eyeo's understanding of cross-platform usage and versioning, the eyeo Browser Ad-Filtering Solution collects some user data.
Because one of eyeo's driving principles is to respect user privacy, no requests sent to data collection services contain any personally identifiable information (PII).
This page contains information on how and why eyeo implements user counting in its ad-filtering solutions.

Why eyeo count users

eyeo count users who have both ad-filtering and Acceptable Ads scheme enabled, as well as those who only have ad-filtering enabled. eyeo does this for the following reasons:
  • Understanding user distribution across Chromium and Solution versions helps eyeo decide which versions to maintain and which to deprecate.
  • Understanding user distribution across operating systems and platforms helps eyeo prioritize quality assurance and automation efforts on the most popular platforms and OS versions.
  • Understanding how users perceive Acceptable Ads, which eyeo determines from user opt-out rate. eyeo wants to ensure that ads that users see don't negatively impact user experience.
  • Establishing the basis of payouts to partners who monetize their Acceptable Ads users.

How user counting works

A ping request is sent automatically by the Solution to eyeo's dedicated service at least twice per day, if the browser is in use (including in the background) and ad-filtering is enabled. These contain no personally identifiable information.

Ping request payload

To track active clients while maintaining user privacy, the server combines the values of ping timestamps with a randomly-generated tag. Dates are truncated to further protect privacy.
The following table outlines the parameters sent with the ping:
Parameter
Type
Description
nonce
string
Number only used once, one of the algorithms that might be used to generate nonce is UUID4. This helps to anonymously distinguish between several ping requests with the same values for the rest of the parameters.
addon_name
string
Identifier of the Solution. Example: eyeo-chromium-sdk
addon_version
string
Version of the Solution, corresponding to addon_name. Example: 2.0.0
application
string
Name of the application. Used for attributing users to a specific product. Example: My great browser
application_version
string
Current version of the application. Often follows the underlying Chromium version. Example: 86.0.4240.183
first_ping
string
Timestamp of the first ping sent by the client and acknowledged by the server (as measured by the server), extracted from the first 2xx response body. Example: 2022-02-28T19:50:00Z
last_ping
string
Timestamp of the last ping sent by the client and acknowledged by the server (as measured by the server), extracted from 2xx response body. Example: 2022-02-28T19:50:00Z
last_ping_tag
string
Number generated by the client using UUID4 when it receives a response with a last_ping. Empty in the first message. If a ping is retried, the same last_ping_tag number should be used; this helps to anonymously distinguish between several ping requests with the same value of last_ping.
previous_last_ping
string
Timestamp of the previous to last ping sent by the client and acknowledged by the server (as measured by the server), copied from the last request. Example: 2022-02-28T19:50:00Z
aa_active
bool
Whether the client opted into Acceptable Ads.
platform
string
Client operating system. Example: Android
platform_version
string
Respective version corresponding to the OS. Example: 10
Last modified 6mo ago