← All posts
Building Pullora1 September 2026· 7 min read

35 signups, zero activations: what our first Google Ads campaign taught us

We ran paid search for a week and got 35 signups, none of whom did anything. The database and Google Analytics disagreed about why. Here is the full data.

We ran our first Google Ads campaign for about a week. Signups went from one to three a day up to eight, ten, six. It looked like it was working.

Not one of those users connected a repository, ran a review, or bought anything.

The before-and-after

Comparing the cohort who signed up before the ads with the cohort after, using the product database rather than analytics:

  • Returned a second time: 56% before, 3% after
  • Connected a git provider: 33% before, 3% after
  • Ran a review: 33% before, 0% after
  • On a paid plan: 44% before, 0% after

Nothing about the product changed between those two groups. Same onboarding, same install step, same pricing. A funnel that converts a third of one audience and none of another is being fed different people, not failing at a step. That single comparison ruled out every theory we had about onboarding friction.

The audit log was blunt

Total actions taken by the entire post-ads cohort: 44 sign-ins. Nothing else. No repository connections, no reviews, no settings changes. They signed in once, looked, and left. Thirty-eight of forty-one never came back.

Then analytics contradicted us

We assumed the ads brought those signups. They did not. The campaign delivered 17 sessions in total across six days and produced exactly one signup. The rest arrived as direct traffic with no referrer at all.

So there were two separate problems, and we had merged them into one.

The tell was session duration

  • Organic Google traffic: 267 seconds average session
  • Direct traffic: 257 seconds
  • Paid traffic: 24 seconds
  • The campaign specifically: 3.9 seconds, 93% bounce

A 3.9-second average session is not a person evaluating a developer tool. Same pages, same product, same week — organic visitors stayed 68 times longer. That is invalid traffic, and it is grounds for a refund claim rather than a conversion-rate problem.

What we would do differently

Optimise for a conversion that junk traffic cannot fake. Signup is free and one click, so low-quality traffic produces it readily — and Smart Bidding then goes looking for more of exactly that. Connecting a git provider is a much better goal: nobody installs a GitHub App by accident, and a third of genuine users get there.

And check the database, not just analytics. Analytics told us about sessions. The database told us that of 41 new accounts, zero did anything — which is the number that actually mattered.

See a review before you install anything

Paste any public GitHub pull request URL and read the full review — no app installed, no repository access, nothing posted to the PR.

Review a public PR →