VoidhashDocs
DocumentationAPI reference
Dashboard
Get started
Introduction
Quickstart
Setup
Setup overview
Create a project
Products and perks
Paywall locations
CLI
Paywall components
Components
Develop a component
Editor panels
Component definition
Publishing
Installing and capabilities
SDKs
Swift
Kotlin
React Native
Web
Store setup
Connect the App Store
Connect Google Play
Connect Stripe
API libraries
Node.js
PHP
Rust
Go
Resources
MCP server
Ad measurement
Meta ads
Migrate in observer mode
Delete a person's data

Ad measurement

How Voidhash measures the visits, signups, installs, trials, payers and revenue your ads bring in, on the web and in your apps.

Voidhash measures what the people an ad or tracked link brought in went on to do, from your own data: visits, signups, app installs, trials, payments and revenue. You can compare these numbers with what your ad platform reports.

Web-only, app-only and web-to-app journeys are measured the same way. Voidhash never assumes an install or a trial: if your product is a web app, the report has no install step, and if you sell without trials, it has no trial step.

What you need

  • The web SDK on your landing pages and web app. It records where each visitor came from and sends page views.
  • identify with your own user ID wherever people sign up or log in: on the web and in your apps. The same user ID links a person's web visit, app install and purchases.
  • Campaign parameters on your ad links, such as the recommended Meta URL parameters, so visits carry the campaign, ad set and ad IDs.

Definitions

TermMeaning
SurfaceWhere something happened: web, ios or android, from the SDK that reported it.
First touchThe first time a visitor arrived through a link with campaign parameters. Touches happen on the web.
VisitA web session whose first page view came through a link with campaign parameters.
SignupThe first time a person is identified with your user ID, on any surface.
People acquiredPeople who signed up and whose first touch brought them in. Anonymous visitors count only as visits. People you already knew before the touch, such as customers reached by retargeting, are reported as returning people.
UnattributedPeople who signed up in the range without a first touch, such as app users who never visited your website.
App installAn acquired person your iOS or Android app reported after they arrived from an ad, including people who signed up on the web and then opened the app. This is measured by Voidhash, not reported by the ad platform.
PayerA person who made a paid charge with any payment provider. A free trial is not a charge.
Payment surfaceStripe and other web payment sources are web, the App Store is ios, Google Play is android.
Cross-surfaceA person who signed up in an app after a web visit, or paid on a different surface than the one they signed up on.
Key conversionThe conversion your ads are judged by: signup, trial or payer (the default), set per project.

A person's acquisition date is the day of their first touch. Revenue always belongs to the ad of their first touch, wherever they pay: a person who clicks an ad on the web and subscribes in your iOS app counts toward that ad.

Reports

  • The acquisition report groups people by network, campaign, ad set, ad or surface. It includes a funnel from visits to payers by surface, where payers paid, and how much of your revenue can be traced to a first touch.
  • Acquisition cohorts show, for each week of acquisitions, the cumulative signups, payers and revenue by day 0, 1, 3, 7, 14, 30, 60 and 90. A cell is maturing while some people of the week have not reached that day yet. Divide a cell's net revenue by the week's spend for return on ad spend.
  • Tracking health lists the websites that sent page views in the last seven days, the app SDK versions that sent events, and how many of the people your apps saw for the first time that week signed up or arrived on the web first.

Things to know

  • Revenue counts from production purchases unless you ask for another environment, and is reported net of refunds where the report says so.
  • Recent cohorts look smaller: people acquired recently have had less time to pay. Use a revenue window, such as 7 days, to compare cohorts fairly.
  • A person who used your app before logging in is linked from their first login, so an install is dated by that login.
  • People who signed up before October 2026 have their signup dated by the first time they were identified, with the surface unknown, and their app use is recorded from their next visit to your app.
  • The funnel shows the steps your project has had in the last 90 days, such as installs once your app reports users and trials once anyone starts one, even when nobody in the selected days reached them.
PreviousMCP serverNextMeta ads

On this page

What you needDefinitionsReportsThings to know