Google web'den uygulamaya AppsFlyer'da neden conversion göstermez?

Ben Samet Durgun, bir fractional Head of UA'yım. Subscription uygulamaları ve mobil oyunlar için paid UA yürütüyorum ve yönettiğim hesaplarda gördüklerimi burada yazıyorum. Bu yazı Signal engineering konusunun altında; hakkımda daha fazlası.

Bir Google web kampanyası hiç uygulama conversion’ı göstermiyorsa dört adımı sırayla kontrol edin ve başarısız olan ilkinde durun: tracking link Final URL’ye uyuyor mu, reklam onaylı mı, AppsFlyer install’ı baktığınız media source altında atfetti mi, Google conversion upload’unu kabul etti mi. Kampanya türünden ve Final URL’den başlayın, çünkü gerisi varış noktasına bağlı. Reklamlarınız insanları doğrudan App Store’a veya Google Play’e gönderiyorsa AppsFlyer’ın belgelediği yol, Google’ın Offline Conversion API’sine yaptığı upload’dur. Google ise kendi Web to App Acquisition Measurement’ının, web kampanyaları kullanıcıları bir uygulama mağazasına gönderen hesaplarda kullanılamadığını söylüyor.

Kapsam: iOS veya Android uygulaması tanıtan Google Ads web kampanyaları (App promotion dışındaki her hedef), AppsFlyer’ın Google Ads Web entegrasyonuyla (googleads_int) ölçülüyor. Singular ve Adjust farklarını da not ettim. Aşağıdaki sayfaların hiçbiri bölgesel bir sınır belirtmiyor. Her sağlayıcının kendi sayfalarına göre 1 Ekim 2026’da kontrol edildi. Bu yolu App campaign’lere neden tercih edebileceğiniz için Google Search Ads uygulama yüklemeleri için işe yarıyor mu? yazısına bakın. Bu yazı yalnızca ölçümün çalışmasıyla ilgili.

Önce neyi kontrol etmelisiniz?

Kampanya türünü ve Final URL’yi, çünkü diğer her kural bunlara bağlı. AppsFlyer’ın Google Ads (AdWords): Create web-based campaigns rehberi, App promotion dışındaki her Google hedefi ve Shopping dışındaki her kampanya türü için geçerli. App campaign ayrı bir entegrasyon, yani onu yürütüyorsanız bu yazı size göre değil.

Sonra reklamın Final URL’sine bakın. Final URL bir mağaza sayfası, kendi web sayfanız ya da yanlışlıkla konmuş bir AppsFlyer link’idir ve her biri farklı bir tracking link ister.

Tabloda link kuralları AppsFlyer’ın, ölçüm kuralları Google’ın.

Final URL Tracking template (AppsFlyer) Ne başarısız olur Google’ın conversion’ları nereden gelir Nasıl doğrulanır Bilinen sınırlar
App Store veya Google Play sayfası af_r={lpurl} içeren tek platformlu attribution link’i Buradaki bir OneLink, Google’dan “Tracking call unsuccessful” döndürür AppsFlyer’ın Google’ın Offline Conversion API’sine (OCI) yaptığı upload. Google’ın kendi Web to App Acquisition Measurement’ı, kullanıcıları bir mağazaya gönderen web kampanyaları olan bir hesapta kullanılamaz Template’te Google’ın Test butonu, ardından AppsFlyer’da görünen tek bir gerçek tıklama AppsFlyer parametreleri yalnızca template’e konabilir. AppsFlyer’ın bu kampanyalardaki view through attribution’ı Smart Script veya Smart Banners içeren bir landing page ister, bu yüzden burada geçerli değil
Smart Script veya Smart Banners içeren kendi web sayfanız İsteğe bağlı. af_android_url, af_ios_url ve af_web_dp değerlerinin üçü de {lpurl} olan bir OneLink, ya da af_r={lpurl} Template yoksa: sayfanın butonunu atlayıp mağazaya kendi başına giden kişiler atfedilemez. Template varsa: butona dokunan kişiler iki tıklama kaydeder AppsFlyer’ın OCI upload’u; ayrıca first open’ları içe aktarırsanız ve hesaptaki hiçbir web kampanyası kullanıcıları mağazaya göndermiyorsa Google’ın Web to App Acquisition Measurement’ı Butonun giden URL’si gclid, gbraid veya wbraid taşır Smart Script, gclid’i 2.8.1 sürümünden, gbraid ve wbraid’i 2.9.0 sürümünden itibaren otomatik iletir. Smart Banners yalnızca OneLink üretir. Sayfanın kendisi Google’ın destination politikasından geçmelidir
Bir AppsFlyer link’i (OneLink veya tek platformlu) Geçerli değil AppsFlyer bunun kampanyanın reddedilmesine yol açabileceği konusunda uyarıyor Final URL düzeltilene kadar yok Geçerli değil Final URL, yönlendirme içermeyen doğrudan bir adres olmalıdır

İki kaynağı ayrı tutun. AppsFlyer’ın upload’u, AppsFlyer’ın atfettiğini click ID ile Google tıklamalarına eşleştirip gönderir. Google’ın Web to App Acquisition Measurement’ı ise Google’ın install’ları içe aktarılmış first open’lardan kendisinin saymasıdır. Web kampanyaları doğrudan mağazaya giden bir hesapta yalnızca ilki kullanılabilir.

Tracking template’te neler olmalı?

AppsFlyer’ın rehberi parçaları sıralıyor. Eksik ya da yanlış tek bir parça link’i veya reklamı bozmaya yetiyor:

  • pid=googleads_int, zorunlu.
  • af_siteid, zorunlu, seçtiğiniz herhangi bir değer.
  • c, zorunlu ve statik. AppsFlyer bunun için bir ValueTrack parametresi olmadığını söylüyor, bu yüzden adı elle yazın. Kampanya ID’sini af_c_id={campaignid} içine koyun; AppsFlyer buna maliyet, tıklama ve impression verisi için de ihtiyaç duyuyor.
  • af_force_transparent=true, zorunlu. AppsFlyer, bu olmadan Google’ın reklamı onaylamayabileceğini söylüyor.
  • {lpurl}’ye bir yönlendirme. {lpurl} değeri HTTPS kullanmalı, encode edilmiş olmalı ve redirect allowlist’inizdeki bir domain’de bulunmalı.

AppsFlyer bu akışta af_dp, af_android_store_csl, af_ios_store_cpp, af_og_title, af_og_description ve af_og_image parametrelerini reddediyor, af_base_params_forward ve af_param_forwarding parametrelerini ise {lpurl}’yi değiştirdikleri için yasaklıyor. Yinelenen parametre, değeri olmayan parametre ve Google’ın boş bıraktığı ValueTrack parametresi olmamalı; Google Ads’te Campaign URL options altına girilen değerler de template ile eşleşmeli.

Google tarafında, About tracking in Google Ads sayfası template’in ve her yönlendirmenin HTTPS olması ve server tarafında yapılması gerektiğini söylüyor, Test butonu ise Final URL ile tracking’inizin birlikte çözümlendiğini kontrol ediyor. About parallel tracking sayfası parallel tracking’in Search, Shopping, Display, Video ve Performance Max için zorunlu olduğunu söylüyor: template arka planda yüklenirken kullanıcı doğrudan Final URL’ye gidiyor. AppsFlyer, {lpurl} yönlendirme kuralını tam olarak buna bağlıyor.

Çalışan bir yönlendirme neden kurulumun çalıştığını kanıtlamaz?

Doğru yere inen bir tıklama dört kontrolün yalnızca ilkini geçmiştir. Bunları ayrı ayrı, bir telefonda tek bir gerçek tıklamayla test edin ve başarısız olan ilkini not edin.

  1. Link doğrulaması. Google’ın Test butonu çözümleniyor ve test tıklaması AppsFlyer’da beklediğiniz kampanya altında görünüyor. “Tracking call unsuccessful” hatası sizi tablodaki link türüne geri götürür.
  2. Reklam onayı. Google’ın Destination requirements politikası, Final URL ile aynı içeriğe götürmeyen bir tracking template’i ve yalnızca kullanıcıları başka bir yere göndermek için tasarlanmış (“solely designed to send users elsewhere”) varış noktalarını onaylamıyor. Landing page’iniz insanları yalnızca mağazaya sektiriyorsa bu sizi ilgilendirir. About ValueTrack parameters sayfası template değişikliklerinin yayındaki reklamlara ulaşmasının 24 ila 48 saat sürdüğünü söylüyor, About tracking in Google Ads sayfası ise reklam, anahtar kelime veya sitelink seviyesinde ayarlanan ya da düzenlenen URL options’ın yeniden incelemeye girdiğini, hesap, kampanya veya ad group seviyesindekilerin ise girmediğini söylüyor. Bu süre dolduktan sonra test edin.
  3. MMP attribution’ı. Install AppsFlyer’da görünüyor. AppsFlyer onu probabilistic olarak, ya da install referrer varsa deterministik olarak atfediyor.
  4. Upload kabulü. Google conversion’ı aldı, bir tıklamayla eşleştirdi ve doğru conversion action’a saydı.

Bir yönlendirme testi 3. ve 4. adımlar hakkında hiçbir şey söylemez, “conversion yok” bildirimi ise bunlarla ilgilidir.

Google web’den uygulamaya install’ları AppsFlyer’da nerede görünür?

Çoğunlukla kurduğunuz partner’ın altında değil. AppsFlyer conversion’ları Google’a googleads_int altında gönderiyor, ama dashboard’ları ve ham verisi onları ana Google Ads entegrasyonunun media source’u olan googleadwords_int altında raporluyor, böylece web ve App campaign sonuçları tek bir görünümde duruyor. Ham verideki original_url alanı ve postback raporları googleads_int’i koruyor. Aynı sayfanın özellik tablosu, yanında bir googleadwords_int SRN entegrasyonu aktifken install’ların googleads_int altında, re-engagement’ların ise googleadwords_int altında görünebileceğini ekliyor. AppsFlyer ayrıca Google’ın bazı web kampanyası install’larını self reported googleadwords_int attribution’ları olarak kendisinin claim edebileceğini söylüyor ve Google web kampanyası install attribution’ına desteği genişlettikçe bunun daha yaygın olabileceğini ekliyor (“may become more common as Google expands support for web campaign install attribution”). iOS için bu kampanyaları Classic Dashboard’a yönlendiriyor ve SKAN Dashboard’un çoğu durumda onlarla ilgili olmadığını söylüyor.

Bu yüzden hiç install olmadığı sonucuna varmadan önce dashboard’u googleadwords_int ve kampanya ID’sine göre filtrelerdim, googleads_int’e de bakardım, ardından ham veride original_url’in googleads_int içerdiğini doğrulardım.

AppsFlyer install’ı gösterirken Google neden hiçbir şey göstermiyor?

O zaman upload başarısız oluyor, ya da bakmadığınız bir yere düşüyor. AppsFlyer’ın kurulum ve sorun giderme adımları şu kontrolleri sıralıyor:

  • Event’ler eşlenmiş olmalı. Tek otomatik postback install’lardır. Diğer her event için click import olarak oluşturulmuş bir Google conversion action gerekir ve onun ctid değeri AppsFlyer event mapping’ine yapıştırılır. Yeni bir conversion action, veri gelene kadar Inactive olarak görünür.
  • Count, Every olarak ayarlı olmalı. AppsFlyer, conversion action’ın gbraid ve wbraid upload’larını kabul etmesi için One değil Every kullanması gerektiğini söylüyor.
  • Click ID’ler korunmalı. Google, Android için ve izin veren iOS kullanıcıları için gclid, izin vermeyen iOS kullanıcıları için gbraid ve wbraid ekliyor. Bir landing page’de butonun giden URL’si bunlardan birini taşımalı, yoksa postback kaydedilemez. Bunları ham veride görmek için her birini ayrıca kendi af_sub parametresine eşleyin.
  • Token çalışmalı. OAuth scope’u https://www.googleapis.com/auth/adwords, AppsFlyer’da yapılmış Sign in with Google ve uygulamayı birden fazla Google Ads hesabı yürütüyorsa iki Customer ID alanında da manager (MCC) ID’si. “Missing token” hatası bu adımın yapılmadığı anlamına gelir.
  • Ajans hesapları. Kampanyayı bir ajans yürütüyorsa hem reklamverenin hem ajansın googleads_int entegrasyonları aktif olmalı ve ajans Google ile giriş yapmalı, yoksa postback başarısız olur.
  • Plan. AppsFlyer, googleads_int’in yalnızca Growth ve Enterprise planlarında olduğunu, Zero veya Welcome’da olmadığını söylüyor.
  • iOS gizlilik ayarı. AppsFlyer’ın kurulumu iOS uygulamalarına bu partner için Advanced Privacy’yi kapatmalarını söylüyor. AppsFlyer’ın Apply Aggregated Advanced Privacy framework sayfası ise, uygulama seviyesindeki Aggregated Advanced Privacy toggle’ı veya bir partner’ın Advanced Privacy toggle’ı açıkken ATT izni vermemiş iOS 14.5+ kullanıcılarının click ID’leri, IDFV, user agent ve IP gibi identifier’larının partner’lara sunulmadığını ve partner toggle’ının ancak uygulama seviyesindeki toggle kapatıldıktan sonra değiştirilebildiğini söylüyor. Ayrıca reklamverenlere, uygulama seviyesindeki ayarı kapatmadan önce Apple’ın izlemeyi nasıl tanımladığı konusunda hukuk danışmanlarıyla çalışmalarını söylüyor. Apple’ın User Privacy and Data Use sayfası, bir cihazı benzersiz biçimde tanımlamak amacıyla cihazdan veri türetemeyeceğinizi (“you may not derive data from a device for the purpose of uniquely identifying it”) söylüyor. Bu ayar, testten önce uygulama sahibinin ve gizlilik danışmanının vereceği bir karardır.

Google Ads’te, mapping’de adı geçen conversion action’ı açın, çünkü Conversions sütunu onu dışarıda bırakabilir. Google’ın About primary and secondary conversion actions sayfası, secondary action’ların All conversions içinde raporlandığını ve bir custom goal içinde yer almadıkça bidding için kullanılmadığını söylüyor.

Upload’un kabul edilmesi de son adım değil. Şubat ve Mart 2026’da yürüttüğüm, AppsFlyer’da ölçülen bir Google App campaign testinde, gelir event’i değer yokken 0 $ yerine 1 $ gönderiyordu. Google bu değerleri kabul etti ve raporladığı ROAS baştan sona şişti, en çok da conversion hacimlerinin daha düşük olduğu iOS’ta. Bu bir web kampanyası değil, bir App campaign’di, ama ders burada da geçerli: sayının yanı sıra Google’ın aldığı değerleri de kontrol edin. O testin geri kalanını uygulamalar için en iyi Google Ads bid stratejisi hangisi yazısında anlattım.

Google’ın kendi web’den uygulamaya ölçümü nasıl farklı?

Bu, Google’ın install’ları MMP’nizin upload’u olmadan sayması. Google’ın About Web to App Acquisition Measurement sayfası şunları söylüyor:

  • Android ve iOS’ta Search, Performance Max, Shopping, Hotel, Video ve Demand Gen kampanyalarını kapsıyor ve kullanıcıları bir uygulama mağazasına gönderen web kampanyaları olan hesaplarda kullanılamıyor.
  • Dolaylı install’lar, web kampanyalarını barındıran hesaba her iki platform için de first open event’lerinin içe aktarılmasını gerektiriyor ve All conv. içinde görünüyor. Web to app first conv. sütunu ayrıca uygulama içi action’ların içe aktarılmasını ve bunlardan birine primary action olarak bid verilmesini gerektiriyor.
  • Integrated Conversion Measurement, cihaz üzerinde ölçüm yoluyla web’den uygulamaya edinime genişledi; Google bunun, üçüncü taraf attribution partner’larında, web kampanyalarınızın Search ve Shopping envanterindeki iOS install’ları için attribution’ı iyileştirdiğini söylüyor. Video ve Display envanterinin sonra geleceğini de ekliyor.
  • Bir conversion yalnızca tek bir kampanyaya atfediliyor, App campaign’ler ile web kampanyaları arasında çift raporlama olmuyor ve Google aynı mantığın partner raporlamasına da uzandığını söylüyor.

Google ayrıca Search, Performance Max ve Shopping kampanyalarında Search ve Shopping envanterinin getirdiği uygulama first open’larını claim etmeye ve raporlamaya başladığını söylüyor. Google, web kampanyalarına atfedilen install’ların link’lerinizde hiçbir şey değişmeden attribution partner’ınızda artabilmesinin nedeni olarak bu değişikliği ve ICM genişlemesini gösteriyor. AppsFlyer’da Google’ın claim ettiği install’lar googleads_int upload’unuz üzerinden değil, self reported googleadwords_int attribution’ları olarak gelir. ICM’nin ve cihaz üzerinde ölçümün uygulama içinde MMP’ye göre ne gerektirdiğini iOS App campaign’ler için kurulum rehberimde anlattım.

Bu, Singular veya Adjust’ta aynı şekilde mi çalışıyor?

Hayır. Farklar iOS için önemli.

Singular’ın Google Ads Web - Web to App Campaigns rehberi, Singular link’ini tracking template’e koyuyor. Final URL ise mağaza URL’si ya da Web SDK’sını çalıştıran kendi siteniz. Link’te _global_redirect={lpurl} şart, yoksa reklam reddediliyor; deep linking de kapalı olmalı. SSS bölümü, offline upload’un gclid’i otomatik ilettiğini söylüyor, gbraid ile wbraid’i yakında gelecekler arasında sayıyor ve Offline Conversions API’nin sınırlarını yalnızca tıklama conversion’ları, modelleme yok diye yazıyor. Ayrıca Google Ads’te enhanced conversions for leads’in açık olması gerekiyor. Entegrasyon özeti view through ve re-engagement’ı desteklenmiyor olarak işaretliyor. Yani Singular’ın kendi sayfasına göre, izin vermemiş iOS kullanıcılarının gclid yerine gbraid veya wbraid taşıyan tıklamaları için Singular’ın henüz upload edebileceği bir click ID’si yok.

Adjust’ın Extend your Google Ads setup beyond app campaigns sayfası, Google Ads’in Adjust universal link’lerini veya branded link’leri tracking template olarak kabul etmediğini, Adjust link’ini düzenlemenin reddedilmesine yol açabileceğini ve Google Ads’in web’den uygulamaya kampanyalarında belirli kullanıcılar için attribution claim etmeyebileceğini söylüyor.

Bu işin içinde benim payım ne?

Bir web kampanyasının uygulama conversion’larını Google’a geri ulaştırmak signal engineering işimin içinde duruyor: bidding yalnızca aldığı conversion’lara göre optimize edebilir. Sıra yukarıdaki kurallardan çıkıyor: Final URL’yi netleştirin, tracking link türünü ona uydurun, dört kontrolü yapın ve performansı ancak upload kabul edildikten sonra okuyun. Hesabı geri tutan şeyin ölçüm olup olmadığı net değilse işe growth audit ile başlarım; o da tek başına alınabilir. Bu yolun App campaign’lerle karşılaştırması Google App campaign’im neden YouTube’a harcıyor yazısında. Aynı incelemenin Meta için olanı Meta web’den uygulamaya AppsFlyer’da neden tıklama gösterip install göstermiyor yazısında.

Kaynaklar

Hepsi 1 Ekim 2026’da kontrol edildi.

Sık sorulan sorular

Final URL App Store olduğunda tracking template olarak OneLink kullanabilir miyim?

Hayır. AppsFlyer'ın Google web kampanyası rehberi, Final URL doğrudan Google Play'e veya App Store'a gittiğinde tracking template'in tek platformlu bir attribution link'i olması gerektiğini ve oraya konan bir OneLink'in Google'dan "Tracking call unsuccessful" hatası döndürdüğünü söylüyor. OneLink, Final URL kendi web sayfanız olduğunda template'e konur.

Reklamlarım insanları doğrudan App Store'a gönderiyorsa Google'ın Web to App Acquisition Measurement'ı çalışır mı?

Hayır. Google'ın yardım sayfası, özelliğin kullanıcıları Apple App Store veya Google Play gibi bir uygulama mağazasına yönlendiren web kampanyaları olan hesaplarda kullanılamadığını söylüyor. Böyle bir hesapta AppsFlyer'ın mağaza Final URL'si için belgelediği yol, Google'ın Offline Conversion API'sine yaptığı upload'dur. 1 Ekim 2026'da kontrol edildi.

Google web install'larım neden googleads_int yerine googleadwords_int altında görünüyor?

Çünkü AppsFlyer onları böyle raporluyor. AppsFlyer conversion'ları Google'a googleads_int altında gönderiyor, ama dashboard'ları ve ham veri onları googleadwords_int altında gösteriyor. original_url alanı googleads_int'i koruyor, postback raporları da öyle. AppsFlyer'ın özellik tablosu, bir googleadwords_int SRN entegrasyonu da aktifken install'ların googleads_int altında, re-engagement'ların ise googleadwords_int altında görünebileceğini ekliyor, bu yüzden hiçbir şeyin atfedilmediği sonucuna varmadan önce ikisine de bakın.

iOS web'den uygulamaya için AppsFlyer'da Advanced Privacy'yi kapatmak zorunda mıyım?

AppsFlyer'ın kurulum adımları, bir iOS entegrasyonu için onu kapatmanızı söylüyor. Aggregated Advanced Privacy sayfası ise, bu ayar açıkken ATT izni vermemiş iOS 14.5+ kullanıcılarının click ID'leri, IDFV, user agent ve IP gibi identifier'larının partner'lara sunulmadığını yazıyor. Reklamverenlere de, uygulama seviyesindeki ayarı kapatmadan önce Apple'ın izlemeyi nasıl tanımladığı konusunda hukuk danışmanlarıyla birlikte çalışmalarını söylüyor. Değiştirip değiştirmemek, siz sorun gidermeye başlamadan önce uygulama sahibinin ve hukuk danışmanının vereceği bir karardır.