Web2App

Attribution · Published 2025-03-16 · 2 min read

What is wrong with AppsFlyer Web2App

In the User Acquisition chat there are two kinds of AppsFlyer users running Web2App.

  • One group says everything works beautifully. Google Ads accepts any link, even without AppsFlyer's required parameters.
  • The other says nothing works at all: conversions are not delivered, clicks are not counted, and ads with a tracking link take forever to get through review — Google Ads keeps bouncing them.

I was in the second group, and for a long time I could not work out why. Old Google accounts? Several API versions living inside AppsFlyer at once? I went back through every conversation with people for whom it works and for whom it does not, and through the chat archive.

There are two ways to integrate AppsFlyer, and that is the whole answer

1. Custom — the good one, the one that works

Parameter pid=google_web. The idea: AppsFlyer is used only to obtain the gclid. You send conversions yourself through the Google API, and tracking is left to Google Ads. The web integration will accept essentially any parameters and work with them. This is exactly the case behind "my link goes through fine without af_r". Here AppsFlyer is a very thin client: we use it to count clicks and to get the gclid, nothing more.

2. AppsFlyer's Google Ads Web integration — the out-of-the-box one, and the bad one

Parameter pid=google_int. This is what people complain about: poor tracking, conversions not arriving. As soon as you set pid=google_int, AppsFlyer starts running code specific to Google Ads Web2App — it validates parameters, sends conversions, and somewhere along the way it falls over. It looks like when something goes wrong AppsFlyer stops counting even clicks. That last part is my assumption, but I have no other explanation for why AppsFlyer fails to count clicks at all.

In short: if you want it done well, do it yourself. A repellent proverb, but here it holds. To run Web2App properly on AppsFlyer, pass all the events through the Google API yourself — option one.

Then why do I need AppsFlyer at all?

Because Google Ads will not hand you the gclid or gbraid. It hands them only to certified partners. AppsFlyer receives gclid and gbraid from Google, you collect them from AppsFlyer, and you send everything onward into Google Ads yourself.


Original on Telegram

Contact   All articles