Where the disciplines meet
The interesting problems are on the boundaries
Advertising failures are rarely advertising failures. They are usually an event that never fired, a value that was wrong, or a backend that reported something different from what the campaign was optimising toward. These are the three places that happens.
Mobile × Advertising
The conversion event
An app campaign optimises toward events the application emits. If the event fires on the wrong screen, fires twice, or carries a value that does not represent revenue, the bidding strategy learns the wrong thing — and the campaign report will still look clean.
We define the event schema in the application, verify it in Firebase, and only then let the campaign optimise against it.
Backend × Advertising
The value of a conversion
Value-based bidding needs a value the backend can actually stand behind: a confirmed order rather than an intent, net rather than gross, deduplicated across retries. That number comes from server-side logic, not from a tag.
We build the API and the reconciliation that produce the value, then feed it to the platform through the appropriate import path.
Mobile × Backend
Behaviour under real conditions
Applications run on constrained devices with intermittent connectivity and aggressive process termination. Whether an event survives a dropped connection or a background kill is decided by the sync design, not by the analytics SDK.
Queueing, retry, idempotency and offline behaviour are designed together across the app and the API rather than assumed on either side.