The compliant location-data layer

Population movement.
Without the personal data.

Mosaic turns on-device location and Wi-Fi signal into queryable population datasets via a single API. The SDK does the privacy math on the device — H3 Res-10 binning (~150m cells), Apache Theta Sketches (k=4096), 24h ephemeral IDs — so raw GPS never reaches our servers, let alone yours.

Res 10H3 precision · ~150m
k≥50Anonymity threshold
0PII collected
LIVE H3 AGGREGATION · RES-10
GDPR alignedCCPA compliantApple ATT compatibleNo PII processedOn-device hashing
One pipeline, one privacy guarantee

Mosaic owns the pipeline end-to-end — from on-device signal to API answer — so the privacy load lives in the architecture, not in either party's contract.

For app partners

Add location signal — without inheriting the compliance load.

Drop the SDK into your app. Identifiers are hashed on-device, aggregates ship to our pipeline, and we share revenue on the cleared output. The privacy posture moves to us, in code.

  • 01On-device H3 Res-10 binning and Theta Sketches — no PII or raw GPS leaves the phone.
  • 02Revenue share on cleared, anonymized aggregates.
  • 03Drop-in opt-in flow that satisfies ATT, GDPR, and CCPA.
  • 04Open audit logs — show users exactly what's collected.
Integrate the SDK
For data customers

Real-world measurement that survives a privacy review.

Query foot traffic, audience reach, and competitive share through one API. Every result is pre-aggregated and ships with panel composition and confidence intervals — so legal signs off and analysts trust the answer.

  • 01Aggregated counts only. You never receive raw paths or device IDs.
  • 02Daily refresh. Stable schemas. Versioned semver.
  • 03REST API and SQL access to the same model.
  • 04Documented panel + confidence intervals on every query.
Query the API
How it works

From the app to the answer — privacy is the pipeline, not a postscript.

APP PARTNERMOSAIC PIPELINEAPI CUSTOMER
01

Signal at the edge

The SDK collects opt-in location events inside the publisher's app. Identifiers are k-hashed on-device. No raw device IDs ever leave the phone.

02

Aggregation in our perimeter

Hashed events land in Mosaic. We bucket them into H3 hex cells, audience segments, and category counts before anything is queryable.

03

Compliance, by construction

Identifier graphs are dropped, opt-out syncs within minutes, and every aggregate carries panel composition and a confidence interval.

04

Counts at the API

Customers query the result through typed SDK, REST, or SQL. The smallest unit they ever receive is a cell, segment, or count — never a path, never a person.

For data customers · Use cases

Three questions Mosaic answers cleanly.

Measure what walks in.

Daily visit counts, dwell time, and trade-area shape for any place or chain in the country. Refresh daily, not next quarter.

AVisits, visitors, and dwell across 8M points of interest.
BTrade area polygons sized to your panel, not a generic radius.
CComparable methodology across regions and reporting periods.
VISITS · 24H ROLLINGSAMPLE · NOT LIVE
00H12H23HVISITS / HOUR+18% WoW
For app partners · The SDK

A location SDK that ships the privacy posture as code, not as a contract.

Most location SDKs collect first and ask later. Mosaic inverts the order — identifiers are hashed before they leave the device (H3 Res-10 + Theta Sketches, k=4096) and only aggregates ever land server-side. You ship one library; we carry the legal posture.

~14kbSDK · gzipped, iOS / Android
~0.2%Battery overhead · typical
~5minOpt-out sync · ConsentSyncer
Net-30Payouts on cleared aggregates
01

Drop-in consent flow

ATT-compliant prompt, GDPR + CCPA notice, and a user-facing audit screen — themed to your app, not a generic modal.

02

On-device hashing

k-anonymous hashing happens before any payload is composed. No raw MAID or location string ever crosses the wire.

03

Transparent revenue

Per-aggregate accounting. You can reconcile your statement against the rolled-up cells we sold.

04

Engineering you can read

Open changelog, signed releases, and a public threat model. We document what we drop, not just what we keep.

Vs. legacy location data

A different shape of data — by design, not by addendum.

Most location feeds were built on raw device records, then patched with policy. Mosaic was built the other way around — we ship aggregates because aggregates are all the pipeline ever holds.

Dimension
Legacy location data
Mosaic
Underlying records
×Raw lat/long pings tied to a device ID
✓Pre-aggregated hex cells & segment counts
Identifier handling
×MAID retained, often re-shared
✓Hashed at edge, dropped before storage
Smallest unit shipped
×Individual ping or device path
✓Hex cell, segment, or category count
Publisher liability
×Inherited by the publisher
✓Engineered out by the SDK
Customer liability
×Inherited at ingest
✓Engineered out before egress
Refresh cadence
×Quarterly, batch CSV
✓Daily API, stable schemas
Why Mosaic

One pipeline. Three audiences. Same privacy guarantee.

For publishers integrating the SDKPUBLISHER
  • Zero App Store review escalations — no IDFA, no tracking flags.
  • Net-30 payouts on cleared aggregates with per-cell reconciliation.
  • Drop-in consent flow handles ATT, GDPR, and CCPA out of the box.
<14kbSDK footprint · gzipped
For teams querying the APICUSTOMER
  • No 90-day legal review — aggregated pipeline means no PII to assess.
  • Daily refresh replaces quarterly batch CSV delivery.
  • Panel composition and confidence intervals on every query.
0Device IDs shipped
For compliance and security teamsBOTH
  • On-device hashing — identifiers never leave the phone.
  • Opt-out syncs within minutes via ConsentSyncer.
  • Audit logs and open changelog for full transparency.
~5minOpt-out sync time
For developers

One SDK. Every access pattern.

App partners integrate the SDK to capture opt-in signals. Customers access the same data model via typed client, REST API, or direct warehouse query. Every response carries panel composition and a confidence interval — so you can show your work.

AuthBearer token, scoped per dataset.
CellsUber H3 res-7 through res-10; bring your own polygons.
SLAAudit logs included. Uptime and latency targets per contract.
SchemasStable, versioned, semver. No silent breakage.
// Customer query: POI visitation for an H3 cell, last 7 days
const res = await fetch(
  "https://api.mosaicsdk.com/v1/analytics/poi-visitation?" +
    new URLSearchParams({
      h3_index: "8a2a1072b59ffff",
      date_from: "2026-04-24",
      date_to: "2026-04-30",
      consent_tier: "all",
    }),
  { headers: { Authorization: "Bearer $MOSAIC_TOKEN" } }
);

const data = await res.json();
// { h3_index, visits, panel_size, ci_low, ci_high }
Trust · End-to-end

The privacy posture is the product.

We can't leak what we never held. Identifiers are hashed on-device inside the SDK, aggregated inside our perimeter, and shipped as counts at the API — never paths, never device IDs.

Read the privacy whitepaper
01
No PII collected, ever
We don't ingest names, emails, phone numbers, or device advertising IDs.
Engineered
02
Hashed at the edge
Identifiers are k-hashed on-device before any signal leaves the SDK.
v0.1
03
Aggregated before egress
Hex-cell rollups happen inside our perimeter. No raw paths leave.
Default
04
GDPR + CCPA aligned
Lawful basis tracked per partner, opt-out syncs within minutes.
Audited
05
Apple ATT compatible
We do not require IDFA. Coverage holds without it.
Compatible
Get started

One pipeline. One privacy guarantee.

Tell us whether you're embedding the SDK or querying the API. We'll route you to the right team and the smallest, cleanest version of the answer.

BUILDING WITH OUR SDK

Drop the SDK in, ship the consent flow, share revenue on cleared aggregates.

Talk to publisher relations
QUERYING OUR DATA

Foot traffic, audience reach, competitive share — aggregates only, panel + CI on every response.

Talk to our data team