A liveness check that eliminated identity fraud

Three screens of the liveness check: verify your identity, the camera with a framing guide asking to blink, and the “That looks great!” confirmation
Intro

VIDI’s business runs on one promise: a real person really visited that store. Brands use our researchers’ reports to make decisions, so every visit has to be done by the person who signed up for it.

To check that, every survey starts with a selfie in front of the store, which is matched against the researcher’s profile photo. But the profile photo itself could be anything: an old picture, someone else’s face, even a cartoon character.

So fraud found its way in. A husband doing surveys on his wife’s account. Someone banned for fraud coming back under a relative’s name. It happened in up to ~10% of monthly surveys, but each case hit the data of major Brazilian brands and put our core value proposition in question.

We needed to lock the front door, without making honest users feel like suspects.

01

Problems

Identity checks relied on a profile photo that anyone could fake. Shared and fake accounts were damaging client trust.

02

Solution

Made the profile photo only possible through a liveness check, placed at high-intent moments, with a flow cut from 4 steps to 2 after testing.

03

Results

Identity fraud became impossible within the verification chain. Failures dropped to rare framing errors.

Design challenge

How do you add a security layer to a side-gig app without turning it into a border checkpoint?

Our users aren’t tech-savvy by default; many are older and use large fonts or screen zoom. Any verification step that confused them would cost us honest researchers, not just fraudsters.

The detection technology came ready-made from Google’s ML Kit. My job was everything around it:

  1. 01When it appears
  2. 02What it asks
  3. 03How it explains itself
  4. 04What happens when it fails
The weak link

The whole identity chain depended on its weakest link: the profile photo.

The storefront selfie was a solid check, but it was only as reliable as the photo it was compared to. And that photo could be uploaded from anywhere.

So we made liveness the only way to set or change a profile photo. No gallery uploads, no exceptions.

before
Old profile photo screen: any picture could be used, with a Use photo button

Any photo, from anywhere

after
New profile photo screen: camera only, inside the liveness frame

Camera only, with liveness

fig 2. free upload vs. camera-only profile photo
The right moment

Where should verification happen?

We had just removed friction from sign-up (→ Onboarding case), so adding a biometric check there would undo that work. Instead, verification happens at two moments where users already have a reason to do it:

Profile completion

Adding a photo is the first step.

Taking a survey

Users who skipped profile completion are asked for the selfie when they try to accept their first survey.

Either way, the check appears when there’s something to gain from passing it.

The users already inside

Existing users had photos we could no longer trust.

Closing the door for new users wasn’t enough. Every existing researcher had to redo their profile photo through the new flow.

Instead of a mass announcement or a forced interruption, we used the same logic as before: the check appeared the next time they accepted a survey. Users met it at a moment when they were already motivated to continue, so updating their photo felt like part of the job, not an obstacle.

  1. 01An existing researcher accepts a survey
  2. 02The liveness check asks for a new profile photono mass announcement
  3. 03They continue to the survey, now verified
Test and pivot

Four steps were two too many.

The first version guided users through 4 liveness steps. In early tests, many people gave up or misread the instructions.

We cut it to 2 steps, with clearer, shorter instructions and visual framing guidance. After that, failures became rare, and the remaining ones were mostly about leaving the frame, not misunderstanding what to do.

Final version: 2 steps, blink a few times and smile at the camera
First version: 4 steps, blink, smile, look up and look down
4 steps 2 steps

fig 3. the first 4-step version vs. the final 2-step flow, drag to compare

Results
0

Ways left to fake a profile photo. Profile photos can only be created through liveness, and every survey selfie is matched against them.

Every survey

Done by a verified researcher. Existing users redid their photos the next time they accepted a survey.

Rare failures

After the pivot to 2 steps, errors were mostly framing issues, not confusion.

Learnings

In a verification flow, every extra instruction is one more chance to fail.

The technology worked from day one. What made it work for real people was asking less of them.

Next project

Added map cards to help users make decisions better and faster

Making it easier to spot, compare, and choose nearby surveys.

Map navigation screens