Meta web'den uygulamaya: tıklama var, AppsFlyer'da install yok mu?

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ı.

Meta link tıklamaları gösterirken AppsFlyer hiç install göstermiyorsa, ya install’lar farklı bir etiket altındadır ya da kayıt, reklam ile uygulama arasındaki aşamalardan birinde kopmuştur. AppsFlyer, Meta web’den uygulamaya install’larını Facebook Ads altında raporluyor, metaweb_int altında değil. İlk kontrol, doğru etikete bakıp bakmadığınız. İkincisi, tek bir test tıklamasını bir kayıt eksik çıkana kadar aşama aşama izlemek. iOS’ta bir ayar, AppsFlyer’ın toplu raporları aynı kalırken Meta’nın ne aldığını değiştiriyor: AppsFlyer’ın Advanced Privacy ayarı açıkken, ATT izni vermemiş kullanıcıların postback’leri click ID veya cihaz tanımlayıcıları taşımıyor. İzin vermiş bir test telefonu testi geçebilirken, diğer herkesin postback’lerinde Meta’nın tıklamayı tanımlamak için kullandığı click ID bulunmuyor.

Kapsam: conversion location’ı Website olan ve AppsFlyer’ın Meta Web entegrasyonu (metaweb_int) üzerinden ölçülen Meta reklamları. Uygulama App Store veya Google Play’den yükleniyor, trial ve satın alma event’lerini AppsFlyer SDK’sı ya da RevenueCat gönderiyor. Platformlarla ilgili her ifadeyi 1 Ekim 2026’da sağlayıcının kendi sayfasından kontrol ettim. Conversion’ı web sitesinin kendisinde gerçekleşen web kampanyaları farklı bir AppsFlyer rehberi kullanıyor, bu yazıya girmiyor. Meta app promotion kampanyaları da dışarıda: orada Meta’ya ulaştığı halde optimize edilemeyen bir event’i Trial ve purchase event’lerim Meta AEM için neden uygun değil? yazısında anlattım.

“Tıklama var ama install yok” ne demek olabilir?

Üç şeyden biri olabilir ve her birinin çözümü farklı.

  1. Etiket farkı. AppsFlyer’ın Meta Ads: Create web-based campaigns rehberine (15 Eylül 2026’da düzenlendi) göre web’den uygulamaya install’lar dashboard’larda ve ham veride Facebook Ads PID’i altında (“under the Facebook Ads PID”) raporlanıyor. Ham veride original_url alanı pid=metaweb_int değerini koruyor, postback raporları ise metaweb_int’i postback’in gittiği media source olarak gösteriyor.
  2. İki farklı tıklama. Meta reklam tıklamasını sayıyor. AppsFlyer’ın landing page akışında AppsFlyer tıklaması, kullanıcı sayfanızdaki call to action’a dokunduğunda kaydediliyor. Dokunmadan ayrılan ziyaretçi yalnızca bir impression’dır. Bu impression, ancak AppsFlyer’ın view through attribution’ını açtıysanız bir install’a sayılır (24 saate kadar lookback).
  3. Gerçek bir kopukluk. Click ID mağaza link’ine ulaşmadı, install eşleştirilemedi ya da sonraki event Meta’ya hiç gitmedi.

Aşağıdaki test bunları birbirinden ayırıyor.

Tek bir test tıklamasını her aşamada nasıl izlersiniz?

Toplu rakamlara bakmadan önce tek bir yolu uçtan uca kontrol ediyorum.

Testi, eksik bir kayıt yalnızca bir ayar sorunu anlamına gelecek şekilde hazırlayın:

  • Telefonu test cihazı olarak kaydedin. AppsFlyer’ın Registering test devices sayfasına (28 Ağustos 2026’da düzenlendi) göre reattribution penceresi install attribution’larını 90 günde bir ile sınırlıyor. Bu yüzden telefon kayıtlı değilse aynı telefonda tekrarlanan test install’ları hiçbir şey kaydetmiyor. İzlemeye izin verecek bir iPhone için AppsFlyer’ın yöntemi, onu IDFA ile kaydetmek.
  • Test telefonunda ATT izni verin. Bir ekip üyesinin telefonunu kullanın, uygulamanızın ATT isteminde Allow’a dokunun, landing page bir consent banner’ı gösteriyorsa onu da kabul edin. AppsFlyer’ın Apply Aggregated Advanced Privacy framework makalesine göre (11 Haziran 2026’da düzenlendi) kullanıcısı ATT iznini vermiş bir uygulamaya giden web trafiği, hem sizin hem de reklam network’ü için user level attribution verisi alıyor. Yani Advanced Privacy bu testin gösterdiklerini sınırlamıyor.
  • Reklama bir kullanıcının tıklayacağı gibi tıklayın: telefonda, Facebook veya Instagram içinde, masaüstü önizlemesinden değil. Sayfa Safari’de açılırsa Private Browsing kullanmayın, çünkü AppsFlyer’ın 2023 tarihli Link tracking Privacy (LTP) bulletin’i iOS 17’nin bu modda fbclid’yi kaldırdığını söylüyor.
  • Her adımın saatini not edin, böylece satırları sonradan bulabilirsiniz.

Sonra aşamaları sırayla geçin ve başarısız olan ilkinde durun.

Aşama Ne bulunmalı Nereye bakılır Eksikse Sonra açılacak Gözlenen sonuç
1. Reklamın varış noktası pid=metaweb_int, c, af_c_id ve diğer eşlenmiş parametreleri içeren landing page URL’si veya attribution link’i Ads Manager’da reklam önizlemesi, ardından telefonun gerçekten açtığı URL URL parametreleri reklamda oluşturulmamış URL doğru olduğunda 2. aşama Açıldığı haliyle URL, saat
2. Tracking tıklaması Landing page URL’sinde fbclid ve giden mağaza link’inde aynı fbclid Telefonda landing page URL’si ve call to action link’i; tıklama ham verisi yalnızca Data Locker’da var Script parametreleri iletmiyor ya da kullanıcı call to action’a hiç dokunmadı Smart Script sürümü ve parametre eşlemesi fbclid iki link’te de görüldü mü, evet ya da hayır
3. İlk açılış Test cihazı için bir install AppsFlyer ham verisi, install’lar, install zamanına göre filtrelenmiş SDK başlamadı ya da cihaz kayıtlı değildi ve install yeniden indirme olarak sayıldı SDK entegrasyonu ve test cihazı listesi Satır bulundu, saat
4. Atfedilmiş install Media source’u Facebook Ads olan ve original_url içinde metaweb_int bulunan aynı install Aynı ham veri satırı Install organic olarak kaydedildi: tıklama install ile eşleştirilemedi Yeniden 2. aşama, ardından gizlilik ayarları Media source, original_url
5. Trial Aynı kullanıcıdaki trial event’i AppsFlyer uygulama içi event ham verisi; event’i RevenueCat gönderiyorsa RevenueCat customer history Event hiç gönderilmedi ya da $appsflyerId attribute’u ayarlanmadığı için RevenueCat onu göndermedi Event eşlemesi, RevenueCat customer attribute’ları Event adı, saat
6. Ücretli işlem Gelir ve para birimi içeren satın alma event’i Aynı raporlar; sandbox satın almaları için RevenueCat’in Sandbox developer key alanında bir AppsFlyer key’i gerekiyor Gelir gönderilmedi ya da iki kez gönderiliyor Geliri kimin gönderdiği (aşağıya bakın) Gelir, para birimi, adet
7. Partner’a event teslimatı Install ve eşlenmiş event’ler için metaweb_int’e giden postback’ler ile Meta’daki event’ler metaweb_int elle eklenmiş AppsFlyer postback raporu; aynı pixel için Events Manager Postback eşlenmemiş, satın alma gelir içerecek şekilde ayarlanmamış ya da pixel yanlış AppsFlyer’daki Meta Web entegrasyon sayfası Postback durumu, Events Manager’daki event

AppsFlyer’ın Raw data reporting overview sayfası (11 Ağustos 2026’da düzenlendi) tıklama ham verisini yalnızca Data Locker raporu olarak listeliyor, yani Data Locker olmadan 2. aşamayı link’lerin kendisinde kontrol ediyorsunuz. AppsFlyer’ın Raw data export page sayfası (13 Ağustos 2026’da düzenlendi) metaweb_int gibi web PID’lerinin media source açılır listesinde görünmediğini söylüyor; web postback’lerini görmek için PID’i elle ekliyorsunuz. RevenueCat’in AppsFlyer entegrasyon sayfası, AppsFlyer’ın Events görünümünün uygulama içi event’leri kullanıcının install tarihine göre gösterdiğini belirtiyor. Yani uygulamayı geçen hafta yüklemiş bir kullanıcının bugün yaptığı satın alma, geçen haftanın aralığında yer alıyor.

Meta reklamı hangi link’i kullanmalı?

AppsFlyer’ın rehberi seçenekleri varış noktasına göre adlandırıyor:

  • Landing page: OneLink Smart Script veya Smart Banner içeren bir sayfa. AppsFlyer bunu, uygulama birkaç platformdaysa ya da sayfanın ürünü anlatmasını veya veri toplamasını istiyorsanız öneriyor. Smart Banner yalnızca OneLink link’leri oluşturuyor; Smart Script diğer mağazalar için tek platformlu link’ler de oluşturabiliyor.
  • Doğrudan mağazaya: bir AppsFlyer attribution link’i; OneLink, tek platformlu ya da platformlar arası. AppsFlyer bir uyarı ekliyor: AF attribution link’lerinin kullanımı bazen hatalara yol açabilir (“Sometimes, the use of AF attribution links may lead to errors”). Önerdiği çözüm, Meta’ya sormak ya da bunun yerine landing page kullanmak.

Ads Manager’da kampanyanın conversion location’ı Website, pixel ID ise AppsFlyer’a girdiğinizle aynı. Tracking bölümünde AppsFlyer, App Events’i seçmemenizi söylüyor, aksi halde Meta bu conversion’ları SRN API’siyle sahiplenir (“otherwise Meta will claim those conversions using the SRN API”). AppsFlyer web kampanyası için hiç tıklama, impression ya da maliyet göstermiyorsa rehbere göre link’te af_c_id bulunmalı ve reklam hesabı Facebook Ads entegrasyonuna bağlı olmalı.

fbclid’ye ne olması gerekiyor?

Meta onu ekliyor, AppsFlyer taşıyor. Meta’nın developer sayfası ClickID and the fbp and fbc Parameters, click ID’yi, biri bir reklama tıkladığında Meta’nın ürettiği ve URL ile ilettiği bir parametre olarak tarif ediyor. Değerin büyük küçük harfe duyarlı olduğunu da belirtiyor. AppsFlyer, Meta’nın fbclid’yi varış URL’sine otomatik olarak eklediğini söylüyor.

Landing page kullanıyorsanız, AppsFlyer’ın Set up Smart Script to convert web visitors sayfasına (2 Eylül 2026’da düzenlendi) göre Smart Script, 2.8.1 sürümünden itibaren fbclid’yi giden URL’ye kendiliğinden iletiyor. 2.8.0 ve altı için Meta web rehberi onu elle eşlemenizi söylüyor. Değeri ham veride görmek için ayrıca af_sub1 ile af_sub5 arasındaki alanlardan birine eşleyin. Meta web rehberi, Meta’ya uygulama içi event postback’leri göndermek için fbclid’yi vazgeçilmez sayıyor. Tablodaki 2. aşama bu yüzden değeri iki link’te de kontrol ediyor.

Install’lar neden metaweb_int altında değil de Facebook Ads altında görünüyor?

Tasarım gereği. Meta web rehberi, event’lerin Meta’ya metaweb_int altında gittiğini, ama Overview ve Activity dashboard’larında ve ham veri ile API raporlarının media_source alanında Facebook Ads altında göründüğünü söylüyor. Web kampanyalarını app kampanyalarından ayırmak için AppsFlyer, kampanya adında bir web öneki veya soneki öneriyor; tek bir install’ı doğrulamak için original_url alanını okuyun.

Advanced Privacy adımı neyi değiştiriyor ve buna kim karar veriyor?

AppsFlyer’ın Meta web rehberindeki adımlardan biri şu: “Turn off Advanced Privacy (if you are setting an iOS app integration).” Aggregated Advanced Privacy makalesi ayarın ne yaptığını açıklıyor. Ayar açıkken partner’lar, ATT izni vermemiş iOS 14.5 ve sonrası kullanıcılar için yalnızca toplu kampanya ayrıntılarını alıyor. Partner’ların alamadığı user level veriler arasında AppsFlyer ID, customer user ID, click ID, IDFA, IDFV, user agent ve IP adresi var. Meta web rehberi, Meta’nın ilgili tıklamayı tanımlamak için fbclid’yi kullandığını söylüyor, yani onu taşımayan bir postback bu bağı kaybediyor. Aggregated Advanced Privacy makalesi ayrıca, Advanced Privacy entegrasyonu olmayan bir reklam network’ünün izin vermemiş kullanıcılar için hiç postback almadığını söylüyor. Bir partner’ın toggle’ı da ancak uygulama seviyesindeki Aggregated Advanced Privacy toggle’ı kapalıysa kapatılabiliyor.

Bunu sorun giderirken çevrilecek bir düğme olarak görmüyorum. AppsFlyer’ın kendisi, framework’ü kapatmadan önce Apple’ın izlemeyi nasıl tanımladığı konusunda hukuk ve diğer profesyonel danışmanlarınızla birlikte çalışmanızı söylüyor. Apple’ın User Privacy and Data Use sayfası, izlemek için ATT iznine ihtiyacınız olduğunu ve ayarlarınız ne olursa olsun 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. AppsFlyer, framework kapalıyken bile user level verinin bir cihazı benzersiz biçimde tanımlamak için kullanılamayacağını ekliyor. Kararı uygulama sahibi gizlilik danışmanıyla birlikte verir, ölçüm planı da o karara uyar. Yukarıdaki ATT izni verilmiş test telefonu, ayara dokunmadan yapılandırmayı kontrol etmenizi sağlıyor.

Meta’ya giden postback’ler AppsFlyer’ın belgelediği gibi kurulmuş mu?

Install postback’i otomatik, geri kalan her şey elle eşleniyor. AppsFlyer’ın Meta web rehberinden:

  • Entegrasyon için pixel ID ve bir access token gerekiyor, partner toggle’ı da açık kalmalı.
  • Otomatik varsayılan postback yalnızca install’lar için. Trial ve satın alma için bir Meta event’ine ya da CUSTOM’a eşleme gerekiyor.
  • Bir satın alma postback’i “Values and revenue” içermeli. Başka her seçim postback’in başarısız olmasına yol açıyor.
  • “This partner only” Meta’ya atfedilen event’leri gönderiyor; “All media sources, including organic” diğer partner’lara ve organic’e atfedilen event’leri de gönderiyor. Bu bir postback ayarı ve Meta’nın ne aldığını değiştiriyor. AppsFlyer’ın bir install’ı Meta’ya atfedip atfetmediğine dokunmuyor.
  • metaweb_int’e server to server gönderilen event’ler ua ve ip taşımalı. SDK bunları ekliyor, server’ınızın ise kendisinin eklemesi gerekiyor.
  • AppsFlyer’ın “re-engagement” dediği şey için postback’ler bu entegrasyonda desteklenmiyor.

Meta tarafında, Using the API developer sayfası, event’lerin gönderildikten sonraki 20 dakika içinde Events Manager’da doğrulanabildiğini söylüyor. Veri kaynağı orada raw, matched ve attributed event’leri gösteriyor.

SKAdNetwork bu install’ları görebilir mi?

Facebook veya Instagram uygulamasının içinde tıklanan bir reklam için hayır. Apple’ın Signing and providing ads sayfası, SKAdNetwork 4’ten itibaren attribution yapılabilen web reklamlarını listeliyor: reklam network’ünün reklamı bir Safari web sayfasında sunduğu reklamlar (“where the ad network presents an ad on a Safari web page”). Google’ın Understanding iOS App campaign measurement and reporting sayfası web’den uygulamaya attribution’ın yalnızca Safari tarayıcılarında (“only on Safari browsers”) gözlemlenebildiğini anlatıyor ve Chrome ile Firefox’u SKAdNetwork tarafından desteklenmeyen tarayıcılar olarak sayıyor. Facebook veya Instagram uygulamasındaki bir reklam bir Safari web sayfasında değil, AppsFlyer’ın Meta web rehberi de SKAdNetwork’ten söz etmiyor. Eksik bir install’ı SKAN açıklar diye beklemeyin.

Trial’ı ve satın almayı RevenueCat gönderiyorsa ne olur?

O zaman AppsFlyer’a geliri yalnızca tek bir sistem göndermeli. RevenueCat’in AppsFlyer sayfası client side gelir takibinin tamamını kaldırmanızı söylüyor (“remove all client-side tracking of revenue”), çünkü satın almaları AppsFlyer SDK’sıyla da takip etmek gelirin çift sayılmasına yol açabilir (“can lead to double counting of revenue”). Sayfa $appsflyerId attribute’unu zorunlu olarak listeliyor ve RevenueCat’in AppsFlyer’a ancak zorunlu attribute’lar ayarlıyken event gönderdiğini söylüyor. AppsFlyer ID olmadan bazı event’ler teslim edilmeyebilir, bu da eksik bir 5. ya da 6. aşama olarak çıkar.

Stripe, Paddle veya RevenueCat Billing üzerinden web’de yapılan satın almalar için RevenueCat’in web store event routing ayarı her satın almayı tek bir AppsFlyer API’sine gönderiyor, varsayılan olarak Mobile S2S’e ya da Web S2S’e. Sayfa, bir satın almanın asla iki API üzerinden birden gönderilmediğini söylüyor (“a purchase is never sent through both APIs”). Bir web satın alması yine de iki kez görünüyorsa, uygulamada hâlâ çalışan bir satın alma takibi ya da RevenueCat dışında gönderen başka bir sistem arayın. Sayfa ayrıca AppsFlyer’ın People-Based Attribution’ı 2026 sonuna kadar kullanımdan kaldırmayı planladığını söylüyor. Bu açıklanmış bir plan, gerçekleşmiş bir değişiklik değil. Meta, RevenueCat ve bir MMP’nin rakamları uyuşmadığında bunları nasıl karşılaştırdığımı Meta vs RevenueCat vs Adjust: hangi rakama güveniyorsunuz? yazısında anlattım.

Tek bir testten hangi sonucu çıkarmamalısınız?

Başarılı bir test, yolun ATT izni vermiş tek bir kullanıcı için tek bir telefonda çalıştığını kanıtlar. Diğer herkes için eşleşme oranını kanıtlamaz. Başarısız bir test, tek bir şeyi değiştirip yeniden çalıştırana kadar hangi ayarın sorumlu olduğunu göstermez. Baktığım hiçbir sağlayıcı sayfası, eksik web’den uygulamaya install’ların çözümü olarak tek bir ayarı belgelemiyor. Aynı anda yapılan birkaç değişiklik de hangisinin işe yaradığını gizler. Her seferinde aşamayı, değişikliği ve yeni gözlenen sonucu kaydedin.

Bu, benim işimde nereye oturuyor?

Bu izleme, signal engineering işimin bir parçası: reklam platformunun optimize ettiği event’in işletmenin saydığı event olduğundan ve yerine ulaştığından emin olmak. Bir Meta web kampanyasının zayıf görünmesinde ölçümün payı olup olmadığına growth audit kapsamında bakıyorum; growth audit tek başına da alınabilir. Web’den uygulamaya akışının Google tarafı, yani click ID’lerin ve conversion upload’larının farklı çalıştığı kısım, Google web’den uygulamaya AppsFlyer’da neden conversion göstermez? yazısında. Bir ekibin Google Search trafiğini neden bu yolla bir uygulamaya göndereceği ise Google Search Ads uygulama yüklemeleri için işe yarıyor mu? yazısında.

Kaynaklar

Hepsi 1 Ekim 2026’da kontrol edildi.

Sık sorulan sorular

Meta web'den uygulamaya install'larım AppsFlyer'da neden metaweb_int altında görünmüyor?

Çünkü AppsFlyer bunları Facebook Ads altında raporluyor. Meta web kampanyası rehberine göre web'den uygulamaya attribution'lar Overview ve Activity dashboard'larında ve ham verinin media_source alanında Facebook Ads altında görünüyor. original_url alanı pid=metaweb_int değerini koruyor, postback raporları da metaweb_int'i gösteriyor. metaweb_int'e göre filtrelenmiş bir dashboard, install'lar orada olduğu halde boş görünebilir.

Bir Meta web'den uygulamaya reklamı bir landing page'e mi, doğrudan App Store'a mı gitmeli?

AppsFlyer ikisini de destekliyor. Uygulama birkaç platformdaysa ya da sayfanın ürünü anlatmasını veya veri toplamasını istiyorsanız Smart Script veya Smart Banner içeren bir landing page öneriyor, kullanıcıları doğrudan mağazaya göndermek için ise OneLink, tek platformlu veya platformlar arası attribution link'lerini. Attribution link'lerinin hata verebileceği konusunda da uyarıyor ve yedek olarak landing page'i gösteriyor.

iOS'ta Meta web kampanyaları için Advanced Privacy'yi kapatmak zorunda mıyım?

AppsFlyer'ın entegrasyon adımı, iOS uygulaması için entegrasyon kuruyorsanız onu kapatmanızı söylüyor. Ayar açıkken AppsFlyer, ATT izni vermemiş iOS 14.5 ve sonrası kullanıcılar için click ID, IDFV, user agent ve IP adresi gibi user level veriyi partner'lara vermiyor. Bunu değiştirmek bir sorun giderme adımı değil, uygulama sahibinin gizlilik ve hukuk kararı. Apple ayar ne olursa olsun, bir cihazı tanımlamak için cihaz verisi türetmeyi yasaklıyor.

SKAdNetwork, Meta web reklamlarından gelen install'ları ölçebilir mi?

Sadece dar bir durumda. Apple, SKAdNetwork 4'ten itibaren, bir reklam network'ünün imzalayıp bir Safari web sayfasında gösterdiği reklamlar için attribution yapılabilen web reklamlarını belgeliyor. Google'ın iOS ölçüm sayfası, Chrome ve Firefox'un SKAdNetwork tarafından desteklenmediğini söylüyor. AppsFlyer'ın Meta web rehberi SKAdNetwork'ten söz etmiyor, bu yüzden boşluğu onun doldurmasını beklemeyin.

Bir web'den uygulamaya satın alma AppsFlyer gelirinde neden iki kez görünüyor?

Geliri gönderen ikinci bir sistem olup olmadığına bakın. RevenueCat, AppsFlyer entegrasyonu açıkken client side gelir takibinin tamamını kaldırmanızı söylüyor, çünkü satın almaları AppsFlyer SDK'sıyla da takip etmek geliri çift sayabilir. Web store satın almaları için bir satın almanın asla iki AppsFlyer API'sinden birden gönderilmediğini söylüyor. Bu yüzden uygulamada hâlâ çalışan bir satın alma takibi ya da RevenueCat dışında gönderen başka bir sistem arayın.