Skip to content

Send is_tablet on ATB install/activity requests - #9541

Draft
GerardPaligot wants to merge 2 commits into
developfrom
feature/gerard/tablet-segmentation-atb
Draft

Send is_tablet on ATB install/activity requests#9541
GerardPaligot wants to merge 2 commits into
developfrom
feature/gerard/tablet-segmentation-atb

Conversation

@GerardPaligot

@GerardPaligot GerardPaligot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/project/715106103902962/task/1213321438935159?focus=true
Tech Design URL (if applicable): N/A
API Proposals URL(s) (if applicable): N/A

Description

Adds is_tablet flag on ATB requests, and tablet-specific t= typetags on search requests, so retention and traffic pipelines can distinguish Android tablets from phones the way pixels already do via form factor.

Steps to test this PR

ATB happy path

  • On a phone-sized device/emulator, trigger an ATB install call (fresh install or clear app data) → inspect the outgoing /exti/ and /atb.js requests (app inspection) → confirm is_tablet=0.
  • On a tablet-sized device/emulator (smallest width ≥ 600dp), repeat → confirm is_tablet=1.

Search typetag happy path (blocked commit — verify only, do not merge)

  • Filter with 'ddg_android_tablet' keyword
  • Type a query in the omnibar on a tablet → check request has t=ddg_android_tablet.
  • Repeat on a phone → confirm t=ddg_android.

UI changes

No user-facing UI changeis


Note

Medium Risk
Changes outbound analytics URL shape for all ATB and SERP requests; low user-facing risk but backend must accept new params and typetags.

Overview
Adds tablet vs phone signaling to statistics and search traffic so retention pipelines can split Android tablets the same way pixels use form factor.

ATB / retention HTTP: StatisticsRequester now injects DeviceInfo and sends is_tablet=0|1 on /atb.js, /exti/, and all retention refresh endpoints via new StatisticsService query parameters.

Search URLs: DuckDuckGoRequestRewriter picks the t= source typetag from device form factor and EU auction install source—e.g. ddg_android_tablet / ddg_androideu_tablet instead of phone values. New constants live in AppUrl.ParamKey.IS_TABLET and ParamValue tablet source strings.

Tests and DI (BrowserModule, integration/unit tests) were updated to mock DeviceInfo and assert the new query params.

Reviewed by Cursor Bugbot for commit f648f18. Bugbot is set up for automated code reviews on this repo. Configure here.

ATB and search typetags predate the form factor stamping the app already
does on pixels, so retention pipelines could not tell Android tablets
apart from phones. Add is_tablet=0/1 to exti and atb.js requests using
the same >=600dp definition the pixel form factor uses.
Sends ddg_android_tablet / ddg_androideu_tablet on search requests from
Android tablets in DuckDuckGoRequestRewriter, the single choke point
both omnibar queries and SERP navigations funnel through.

Whether ddg_androideu_tablet is needed at all, and whether either
typetag affects k-anonymity bucket sizing on the Bing side, is still
being discussed on the Asana task - do not merge until resolved.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@GerardPaligot
GerardPaligot marked this pull request as draft August 19, 2026 15:47
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.

1 participant