Skip to content

[CM-244] Add additional fields for onboarding api ids plus rate - #20

Merged
chrisgramberg merged 2 commits into
mainfrom
CM-244
Oct 6, 2026
Merged

chrisgramberg merged 2 commits into
mainfrom
CM-244

Conversation

@chrisgramberg

@chrisgramberg chrisgramberg commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Currently pending sensitive data review

Ticket: https://mozilla-hub.atlassian.net/browse/CM-244

Bugzilla bug for review: https://bugzilla.mozilla.org/show_bug.cgi?id=2068778

In order to get telemetry for ads that come in via onboarding api we want to add a few new ids as well as the rate paid for the interaction. This represents the minimal data needed to generate a report or a bill for an advertiser that came in through the onboarding api.

This is the first time I've done a change to this so please let me know if I've missed a step!

@chrisgramberg

chrisgramberg commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Request for data collection review form

Summary: we are introducing an api to act as a "front door" for our ads platform. In order to do this we want
to add identifiers from this api so that they can flow cleanly through to telemetry.

  1. What questions will you answer with this data?

We will answer how many impressions and clicks an ad has had as well as the rate paid for these interactions.

  1. Why does Mozilla need to answer these questions? Are there benefits for users? Do we need this information to address product or business requirements? Some example responses:

So we can provide accurate reports and bills to our advertising partners.

  1. What alternative methods did you consider to answer these questions? Why were they not sufficient?

We could continue using the ids that come from various ad providers but this is brittle and we plan to have all ads enter
the ads platform via the api that generates these ids which will make this easier to maintain.

  1. Can current instrumentation answer these questions?

Yes, but it is missing ids for the advertiser, account, campaign, and the rate paid for the interaction.

  1. List all proposed measurements and indicate the category of data collection for each measurement, using the Firefox data collection categories found on the Mozilla wiki.
Measurement Description Data Collection Category Tracking Bug #
account id of the partner/agency that is buying on behalf of an advertiser cat 2 2068778
advertiser id of the advertiser buying the ad cat 2 2068778
campaign id of the ad campaign the ad is a part of cat 2 2068778
rate in USD paid for the interaction. This is an attribute of the line item but the client can change it at any time so record it cat 2 2068778
  1. Please provide a link to the documentation for this data collection which describes the ultimate data set in a public, complete, and accurate way.

This collection is Glean so is documented in the Glean Dictionary.

  1. How long will this data be collected? Choose one of the following:

This collection will be collected permanently. [todo someone's name]

  1. What populations will you measure?
    All channels, countries, and locales. No filters.

This ping is not interested in users of firefox and is specific to the ads served. It should be totally devoid of any
population-type user-data beyond form factor, geo, etc which are already collected today.

  1. If this data collection is default on, what is the opt-out mechanism for users?

This is default on, opt-out by turning off "sponsored shortcuts" and "sponsored stories" or flipping the "support firefox"
toggle to off in the "Home" section of preferences

  1. Please provide a general description of how you will analyze this data.

Aggregating clicks/impressions/price on campaign/creative/etc ids to generate reports and bills for advertisers.

  1. Where do you intend to share the results of your analysis?

This will not be shared.

  1. Is there a third-party tool (i.e. not Glean or Telemetry) that you are proposing to use for this data collection? If so:

This will go through server side glean via MARS (Mozilla Ad Routing Service), the same way it does today. Notably, this
means that we don't include any client info from glean-core, like most glean pings would.

@chrisgramberg
chrisgramberg marked this pull request as ready for review September 16, 2026 19:02
@chrisgramberg
chrisgramberg requested a review from a team as a code owner September 16, 2026 19:02

@efixler efixler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm.

Can you remind me why we never use numeric types here?

@chrisgramberg

chrisgramberg commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor Author

lgtm.

Can you remind me why we never use numeric types here?

I honestly don't know. I just stuck with it because that's how the rest of them are typed. The only thing that comes up for me is that we wouldn't have to change anything if we switch to uuids 🤷

@dmueller

Copy link
Copy Markdown
Contributor

lgtm.
Can you remind me why we never use numeric types here?

I honestly don't know. I just stuck with it because that's how the rest of them are typed. The only thing that comes up for me is that we wouldn't have to change anything if we switch to uuids 🤷

A little extra context: the existing ones were all strings since the ids were externally managed so we have no control over whether they were ints or strings / and could vary by provider. If we're only storing ids we manage in these fields we could use whatever type we want.

@chutten

chutten commented Sep 16, 2026

Copy link
Copy Markdown

DATA COLLECTION REVIEW RESPONSE:

Is there or will there be documentation that describes the schema for the ultimate data set available publicly, complete and accurate?

Yes.

Is there a control mechanism that allows the user to turn the data collection on and off?

No. It appears as though there is no way for a user to opt out of this data collection.

If the request is for permanent data collection, is there someone who will monitor the data over time?

No. The name of the individual was not specified.

Using the category system of data types on the Mozilla wiki, what collection type of data do the requested measurements fall under?

Category 2, Interaction.

Is the data collection request for default-on or default-off?

Default on.

Does the instrumentation include the addition of any new identifiers?

Yes.

Is the data collection covered by the existing Firefox privacy notice?

Unknown.

Does the data collection use a third-party collection tool?

No.


Result: datareview- pending approval via Sensitive Data Collection Review

This data contains identifiers and it appears as though there's no opt-out mechanism (though maybe I'm just unfamiliar with this service's mechanism). It should undergo Sensitive Data Collection Review (don't worry, it's not a big deal. Just an email thread with folks who can determine whether these collections are cool) to ensure 1) That it can correctly respect users' privacy through opt-out (if needed), and 2) That the identifiers being collected aren't going to link datasets we'd prefer to keep unlinked.

Should that review complete successfully and an individual be named for the permanent collection of these data, this will become datareview+

@chrisgramberg

Copy link
Copy Markdown
Contributor Author

@chutten thank you for your review! I'll check out that link and get the process going. I wanted to clarify one thing

Is there a control mechanism that allows the user to turn the data collection on and off?

No. It appears as though there is no way for a user to opt out of this data collection.

I think it might be worth calling out that user can opt-out of data collection by turning off ads entirely. Though, as far as I know, there is no way to have ads on but also have this collection disabled.

@chutten

chutten commented Oct 6, 2026

Copy link
Copy Markdown

Sensitive Data Collection review has completed successfully. This collection is okayed to proceed as specified. datareview+

@chrisgramberg
chrisgramberg merged commit ff664ad into main Oct 6, 2026
2 checks passed
@chrisgramberg
chrisgramberg deleted the CM-244 branch October 6, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants