Google Ads, MMP ve SKAN iOS conversion'larını neden farklı sayar?

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

Google Ads, MMP’niz ve SKAN aynı iOS conversion’larını raporlamaz, çünkü farklı şeyleri sayar, bunları farklı anlara yazar ve farklı kullanıcıları görür. Hiçbirini tek doğru rakam olarak kullanmayın. Bidding geri bildirimi için Google Ads’i, kanallar arasında bütçeyi bölmek için MMP’yi, finans için gelir kaynağınızı kullanın ve aralarındaki farkın değişip değişmediğini izleyin. İstisna bölge. EEA, İngiltere ve İsviçre’deki iOS kullanıcıları için MMP’de ICM claim’i yoktur, bu yüzden orada MMP’nin Google görünümü daha zayıf kalır ve SKAN daha fazla ağırlık taşır.

Kapsam: iOS’ta install odaklı Google App campaign’ler, bir attribution partner üzerinden ölçülüyor (MMP tarafı için AppsFlyer’ın dokümantasyonunu kullanıyorum, diğer MMP’lerin kendi kuralları var), tüm bölgeler, yukarıdaki bölgesel istisnayla. Aşağıdaki her platform bilgisi 29 Eylül 2026’da birincil sayfadan kontrol edildi. Aynı sorunun Meta tarafı için Meta vs RevenueCat vs Adjust yazısına bakın. ICM claim’lerini üreten kurulum için ICM ve cihaz üzerinde ölçüm kurulum rehberini okuyun.

Her iOS rakamı nerede duruyor ve neyi sayıyor?

Google kendi yan yana karşılaştırmasını Understanding iOS App campaign measurement and reporting sayfasında yayımlıyor. Oradaki tabloyu okuyun. Üç rakam:

  • Google Ads modellenmiş conversion’lar Campaigns ve Ad groups tablolarında yer alır. Click through ve engaged view conversion’larını içerir, view through’u içermez. Google bunların beş güne kadar gecikebileceğini söylüyor. EEA, İngiltere ve İsviçre dahil tüm kullanıcıları kapsarlar.
  • MMP’nizdeki ICM claim’leri, Google’ın attribution partner’ınıza gönderdiği ve onun arayüzünde gösterilen install claim’leridir. Google’ın sayfası bu verinin bugün Google Ads raporlamasında bulunmadığını söylüyor. Ayrıca Google Ads’teki iOS ölçümünün ileride, ICM ve cihaz üzerinde ölçüm event verisi olan uygulamalar için ICM’e daha çok yaklaşacak şekilde değişeceğini ekliyor, ama tarih vermiyor. About Integrated Conversion Measurement for App Campaigns bunu event seviyesinde raporlama olarak tanımlıyor ve iOS gereksinimi olarak event verisini kullanan cihaz üzerinde ölçümü listeliyor.
  • SKAdNetwork postback’leri MMP’nize veya BI raporlarınıza ulaşır. Google Ads’te yalnızca SKAdNetwork install’ları görünür, onlar da özel bir SKAdNetwork raporunda. SKAN, üçü içinde view through conversion’larını içeren tek yöntemdir ve Google, değişken gecikmeler nedeniyle onu her 30 günde bir kontrol etmenizi öneriyor.

AppsFlyer tarafında Google Ads (AdWords) Integration setup for advertisers sayfası, ham veride deterministik Google claim’lerinin match_type değerinin srn, ICM claim’lerinin ise “probabilistic” olduğunu söylüyor. Bu tek sütun, herhangi bir karşılaştırmadan önce MMP’deki Google install’larını iki türe ayırmanızı sağlar.

Her şey doğru kurulduğunda bile rakamlar neden farklı?

Çünkü farklar sistemin yapısından geliyor. AppsFlyer’ın Google Ads (AdWords) FAQ and discrepancies sayfası nedenleri listeliyor ve çoğu sıradan birer tanım.

Her taraf yalnızca kendi modelini gösterir. AppsFlyer’a göre Google Ads, Google’ın kendi içindeki modellemesinden gelen install’ları gösterir, ICM install’larını göstermez. AppsFlyer ise ICM claim’lerini gösterir, Google’ın içeride modellediği install’ları göstermez. Her taraf kendi modelini sayar, dolayısıyla ortak bir toplam yok.

Tıklama zamanı ve ilk açılış zamanı. Google Ads install’ı tıklama zamanında kaydeder. AppsFlyer ilk açılış zamanında kaydeder. Google’ın Understand your conversion tracking data sayfası, birincil conversion sütunlarının tıklama zamanına dayandığını doğruluyor ve conversion tarihini istediğinizde “Conversions (by conv. time)” sütununu sunuyor. Uygulama içi event’ler de aynı ayrımı izler: Google onları tıklama zamanına, AppsFlyer dashboard’u ise install zamanına yazar.

Last click ve her etkileşim. AppsFlyer last click’e kredi verir ve önceki etkileşimleri assist sayar. Google ise self reporting network olduğu için, kendi penceresi içinde, reklamlarıyla herhangi bir etkileşimin ardından gelen tüm install’ları kendine atfeder.

Pencereler. Modellenmiş conversion’lar için Google’ın karşılaştırması, varsayılanı 30 gün olan ayarlanabilir bir click through penceresi ve varsayılanı 2 gün olan ayarlanabilir bir engaged view penceresi listeliyor. ICM için attribution partner’ın arayüzünde 6 saatten 30 güne kadar ayarlanabilen bir pencere listeliyor ama AppsFlyer’ı istisna olarak anıyor, AppsFlyer’ın nasıl farklı olduğunu söylemiyor. AppsFlyer’ın kurulum sayfasında kendi install click through lookback ayarı var ve Google Ads ile eşleşmesi için 30 günü öneriyor. SKAN için Google, ayarlanabilen 30 günlük bir click through penceresi, değiştirilemeyen 30 günlük bir engaged view penceresi ve ayarlanabilen 1 günlük bir view through penceresi listeliyor.

View through kuralları. AppsFlyer, Google Ads’in aksini ayarlamadığınız sürece view through conversion’ları Conversions sütununa değil, All conversions sütununa koyduğunu not ediyor. Google’ın karşılaştırması ICM’nin click through ve engaged view conversion’larını içerdiğini ama view through’u içermediğini söylüyor, AppsFlyer’ın kurulum sayfası da Google’ın şu anda iOS’ta impression’ları değil, yalnızca tıklamaları claim ettiğini söylüyor.

Modellenmiş gecikme. Google Ads modellenmiş conversion’ları için beş güne kadar. Herhangi bir Google Ads raporunun son birkaç günü tamamlanmamıştır.

EEA, İngiltere ve İsviçre kapsamı. Google’ın About on-device conversion measurement for iOS App campaigns sayfası, event verisini kullanan cihaz üzerinde ölçümün oradaki kullanıcılar için etkin olmadığını söylüyor, AppsFlyer’ın Bulletin: AppsFlyer and Google attribution solution (Open BETA) sayfası da ICM’nin bu bölgelerden gelen iOS trafiği için mevcut olmadığını söylüyor. Modellenmiş conversion’lar ve SKAN bu kullanıcıları yine de kapsıyor. Bu yüzden Google Ads ile MMP arasındaki farkın, Google iOS trafiğinizin ne kadarının bu üç bölgeden geldiğine göre değişmesini bekleyin.

Yeniden indirmeler. Google’ın karşılaştırmasına göre Google Ads, yeniden indirme ile yeni install ayrımını sizin yapılandırdığınız şekilde uygular, ICM ise sabit bir tanım kullanır. AppsFlyer, Google Ads’in reinstall’ları session_start conversion’ı olarak gösterdiğini, AppsFlyer’ın ise bunları retargeting verisine koyduğunu ekliyor.

Maliyet kapsamı. AppsFlyer’ın discrepancy sayfası, bir kampanyanın tüm kanalları için Google maliyetini aldığını ama iOS App campaign’lerde yalnızca YouTube ve Display’den gelen conversion’ları atfettiğini söylüyor, bu yüzden CPI AppsFlyer’da daha yüksek görünüyor. Daha sonra düzenlenen kurulum sayfası ise install odaklı herhangi bir iOS App campaign’in ICM üzerinden atfedilebileceğini söylüyor. İki sayfa aynı şeyi söylemiyor, o yüzden hangi tarifin hesabınıza uyduğuna karar vermeden önce ham verinizde probabilistic Google install’larına bakın.

SKAN deduplication. Aynı discrepancy sayfası, AppsFlyer’ın yalnızca did_win=TRUE olan postback’leri gösterdiğini, Google Ads dashboard’unun ise bunları did_win=NULL olanlardan ayırmadığını söylüyor, bu yüzden MMP’nin SKAN install sayısı daha düşük olabilir.

Bir çalışma sayfasıyla. Her alan için bir satır açın ve toplamlara bakmadan önce üç kaynak için de doldurun. Amaç, farkın bilinen her nedenine bir ad vermek. Geriye kalan kısım böylece araştırılabilecek kadar küçük olur.

Alan Google Ads modellenmiş MMP (ICM ve srn claim’leri) SKAN
Raporlama kaynağı Campaigns ve Ad groups tabloları Attribution partner’ınızın dashboard’u veya ham verisi, match_type’a göre ayrılmış MMP veya BI raporları; Google Ads’teki SKAdNetwork raporu
Event tanımı Filtrelediğiniz içe aktarılmış conversion action, örneğin yalnızca first_open MMP’deki install veya uygulama içi event adı Conversion value şemanızın eşlediği event veya event’ler
Attribution penceresi Yapılandırılmış click through ve engaged view pencereleri MMP’nin lookback ayarı ve bunun ICM claim’lerine nasıl uygulandığı Apple’ın pencereleri artı Google’ın SKAN pencereleri
Cohort veya event tarih bazı Tıklama tarihi, ya da sütunları değiştirirseniz “by conv. time” Install’lar için ilk açılış tarihi; dashboard’da event’ler için install tarihi, ham veride event tarihi Tahmini install tarihi
Saat dilimi Google Ads raporunun kullandığı dilim MMP uygulamasının kullandığı dilim SKAN raporunuzun kullandığı dilim
Cohort yaşı Son tıklamadan en az beş gün sonrası, artı pencere MMP lookback’inin sonrası Dayandığınız son postback’ten sonrası
Yeniden indirmeler Yeniden indirme ayarlarınız; reinstall’lar session_start olarak Retargeting verisindeki reattribution’lar Google’ın karşılaştırması bir kural vermiyor; MMP’nizin bunları nasıl ele aldığını not edin
Gelir bazı İçe aktarılmış conversion action’a bağlı value ve nereden geldiği SDK’nın veya server’ın gönderdiği gelir, brüt veya net, iadelerle veya iadesiz Conversion value şemasının ima ettiği gelir
Açıklanamayan kalan fark Yukarıdaki her satır eşleşene kadar boş bırakın

Birkaç hücre için kaynak göstermek gerekiyor. SKAN tarihi bir tahmin: AppsFlyer’ın SKAN Conversion Studio sayfası, install zamanını postback’in geliş zamanından ortalama bir last active range ile sabit bir iOS postback gecikmesini çıkararak hesaplıyor. Aynı sayfa SKAN 4’ün, 2., 7. ve 35. günlerde biten pencerelerden sonra üç postback gönderdiğini söylüyor. Apple’ın AdAttributionKit sayfası Receiving postbacks in multiple conversion windows aynı üç pencereyi veriyor: ilk açılıştan itibaren 0 ila 2, 3 ila 7 ve 8 ila 35. günler. Postback’ler birincisi için rastgele 24 ila 48 saat, diğerleri için 24 ila 144 saat sonra gönderiliyor ve yalnızca ilk postback fine value taşıyabiliyor. Gelir için Google’ın Set up your SKAdNetwork conversion value schema sayfası, conversion modellemesinin yalnızca fine conversion value’ları kullandığını ve SKAN 4 coarse conversion value’ları şu anda desteklemediğini söylüyor. Yani ikinci ve üçüncü postback’lerde olduğu gibi SKAN’a yalnızca coarse value olarak ulaşan value, Google’ın modellemesini beslemiyor. AppsFlyer ayrıca, Firebase’den içe aktarılan Google Ads verisinin farklı yapılandırıldığını ve AppsFlyer verisiyle tam olarak karşılaştırılamayacağını belirtiyor. Bu yüzden içe aktarma kaynağını gelir satırına yazın.

Normal olmayan bir fark neye benziyor?

Şubat ve Mart 2026’da bir subscription uygulamasının Android ve iOS Google App campaign’lerini yönettim. MMP AppsFlyer’dı, iOS’ta ICM açıktı. Bu, bid strategy testimle aynı hesap. 39 günde ve 88.920 $’lık harcamada Google Ads, tüm kampanyalar genelinde %37,7 ROAS raporladı. AppsFlyer %29,8 lifetime ROAS ve gün 0’da %17,0 gösterdi.

İlk ders, çalışma sayfasındaki gelir bazı satırıyla ilgili. AppsFlyer’ın gün 0 rakamıyla karşılaştırıldığında Google 21 puan fazla görünüyordu. AppsFlyer’ın lifetime ROAS’ıyla karşılaştırıldığında fark 8 puandı. Aynı kampanyalar, aynı harcama ve “farkın” büyüklüğü hangi AppsFlyer sütununu seçtiğime bağlıydı. Tek tek kampanyaların çoğu, iki yönde de AppsFlyer’ın yaklaşık 10 puan içinde kaldı ve bunu yukarıdaki nedenler açıklıyor.

Bu aralığın çok dışındaki bir farkın nedeni genellikle başkadır. Max Conversion Value’da çalışan iOS kampanyası 11.312 $ harcadı ve Google Ads’te %71,4 ROAS gösterdi, AppsFlyer’da ise %17,3 lifetime ROAS, yani 54 puan fark. İlk şüpheliler belgelenmiş nedenlerdi: modellenmiş conversion’lar, view through, farklı pencereler. Neden daha basitti. Uygulamanın gelir event’i AllRevenue, conversion value olmadığında Google’a 0 $ yerine 1 $ değeri geçiriyordu. Bu, Google’ın ROAS’ını baştan sona şişirdi ve conversion hacimlerinin daha düşük olduğu iOS’ta gerçek rakamları bastırdı. Çalışma sayfasındaki hiçbir satır bunu açıklamazdı, çünkü bunda tanımla ilgili hiçbir şey yoktu. Yanlış bir value’ydu.

Prosedür adım adım nedir?

Bunu audit ederken önce her event’in ne gönderdiğine, sonra tarih bazına ve event filtresine bakarım, çünkü her biri hızlı doğrulanır ve herhangi biri tek başına bir karşılaştırmayı kaydırabilir.

  1. Modellerden önce value’ları kontrol edin. Her gelir event’inin Google’a gerçekte hangi value’yu gönderdiğine bakın, gelir taşımayan event’ler dahil. 0 ya da boş olması gereken yerde varsayılan 1 olursa, Google’ın gösterdiği value’ya dayalı her rakam şişer ve hiçbir attribution modeli bunu açıklayamaz.
  2. Yalnızca olgunlaşmış cohort’ları karşılaştırın. Google Ads için en az son beş günü dışarıda bırakın, event install’dan sonra geliyorsa daha da ileri gidin. Google’ın kendi karşılaştırması, bir kampanyayı değerlendirmeden önce conversion penceresinin tam uzunluğunu beklemenizi söylüyor, Google’ın Set a recommended initial Target ROAS for your App campaigns sayfası da en son dönemi hariç tutan 14 ila 30 günlük bir pencere öneriyor. SKAN için dayandığınız postback’leri bekleyin.
  3. Bir event ve bir pencere seçin. AppsFlyer, Google Ads’teki conversion raporunun install’ları, satın almaları ve subscription’ları karıştırabileceğini belirtiyor, o yüzden install’ları karşılaştırmadan önce install conversion’ına filtreleyin. Sonra çalışma sayfasındaki pencereleri yan yana ayarlayın.
  4. Her şeyi aynı tarih bazına koyun. İlk açılış tarihine göre sayan bir MMP ile karşılaştırırken Google Ads’te “Conversions (by conv. time)” kullanın, ya da bir günlük kaymanın etkisinin kaybolduğu haftalık toplamları karşılaştırın.
  5. MMP’deki Google install’larını match_type’a göre ayırın. srn ve probabilistic satırları farklı claim yöntemlerinden gelir, bu yüzden her birini kendi başına karşılaştırın ve paylarını zaman içinde kaydedin.
  6. SKAN’ı modellenmiş toplamlara asla eklemeyin. Aynı kampanyaları farklı yöntemlerle ölçerler, o yüzden onları yan yana koyun.
  7. Farkta bir değişiklik olup olmadığını izleyin. Google Ads ile MMP arasındaki sabit bir fark, iki yöntemin bir özelliğidir. Bir haftada ikiye katlanan fark bir soru işaretidir: bir SDK sürümü, bir consent değişikliği, yeni bir bölge, değiştirilen bir conversion action, yeni bir yeniden indirme ayarı.

Gizlilik ayarları bu listede yalnızca kaydedilecek bilgiler olarak yer alıyor. AppsFlyer’ın kurulum sayfası, Aggregated Advanced Privacy toggle’ı açıkken ham raporlarda Google’a atfedilen verinin restricted olarak göründüğünü ve IP masking’in ICM’i etkileyebileceğini söylüyor. Bunlar uygulama sahibinin gizlilik kararları. Nasıl ayarlandıklarını not alıyorum; rakamlar eşleşsin diye onları kapatmıyorum.

Hangi karar için hangi rakamı kullanmalıyım?

Bidding geri bildirimi: Google Ads. tCPA ve tROAS hedefleri Google Ads’te belirlenir ve Google Ads’in raporladığı conversion’lara göre değerlendirilir. Bir hedef fazla sıkı mı diye baktığımda, Google’ın önerdiği 14 ila 30 günlük pencerede, olgunlaşmış günlerde Google’ın kendi sütununu okurum. Bir Google hedefini MMP rakamlarıyla kontrol etmek iki modeli karıştırır ve gayet iyi olan bir hedefi değiştirmenize neden olabilir.

Kanallar arası bütçe: MMP. Tüm network’lerde tek bir last click kuralı uygular; Google da Meta da bunu birbiri için yapamaz. Bu yüzden Google’ı Meta ile ya da başka bir kanalla karşılaştırmak için MMP daha adil bir yerdir. Tek şart, MMP’nin yalnızca Google’ın kendisine claim ettiği Google install’larını saydığını ve Google iOS trafiğinizin EEA, İngiltere ve İsviçre payında hiç ICM claim’i bulunmadığını aklınızda tutmanız. Bu pay büyükse yön için SKAN’ı ikinci bir okuma olarak kullanırım.

Finans: reklam platformlarının hiçbiri. Gelir, tahsil edildiği yerden, yani subscription platformunuzdan veya mağazalardan alınmalı ve Meta uzlaştırma yazısındaki kontrollerle paid ile eşleştirilmeli. MMP size kanal bazında gelir verir, SKAN bir kanalda hareket olup olmadığına dair bağımsız bir kontrol sağlar, ama üçünden hiçbiri bir defter değildir.

Signal engineering işimde her sistemin hangi event’i hangi kaynaktan göreceğine ve aralarındaki farkları nasıl okuyacağıma karar veriyorum. Aynı tabloyu Meta ve TikTok için, SKAN tier’ları ve bir değişiklik kaydıyla birlikte, ATT sonrasında iOS’ta paid UA’nın hâlâ neyi ölçebildiği yazısında bulabilirsiniz. Google iOS rakamlarınız uyuşmuyorsa ve hangi farkın normal olduğunu bilmiyorsanız, bir growth audit bu çalışma sayfasıyla başlar ve her harcama seviyesinde tek başına alınabilir.

Kaynaklar

Hepsi 29 Eylül 2026’da kontrol edildi.

  1. Understanding iOS App campaign measurement and reporting, Google Ads Help, sayfa tarihi yok
  2. About Integrated Conversion Measurement for App Campaigns, Google Ads Help
  3. About on-device conversion measurement for iOS App campaigns, Google Ads Help
  4. Understand your conversion tracking data, Google Ads Help
  5. Set a recommended initial Target ROAS for your App campaigns, Google Ads Help
  6. Set up your SKAdNetwork conversion value schema, Google Ads Help
  7. Google Ads (AdWords) FAQ and discrepancies, AppsFlyer, 16 Mart 2026’da düzenlendi
  8. Google Ads (AdWords) Integration setup for advertisers, AppsFlyer, 15 Eylül 2026’da düzenlendi
  9. Bulletin: AppsFlyer and Google attribution solution (Open BETA), AppsFlyer, 5 Ağustos 2026’da düzenlendi
  10. SKAN Conversion Studio, AppsFlyer, 26 Nisan 2026’da düzenlendi
  11. Receiving postbacks in multiple conversion windows, Apple Developer, sayfa tarihi yok

Sık sorulan sorular

Google Ads install'larına SKAN install'larını ekleyerek iOS toplamının tamamını bulabilir miyim?

Hayır. Google modellenmiş conversion'ları, ICM'i ve SKAdNetwork'ü aynı iOS App campaign'lerini ölçmenin üç yolu olarak tanımlıyor. Hangisini kullanacağınızın entegrasyon durumunuza bağlı olduğunu söylüyor ve uygun olduğunda modellenmiş conversion'ların SKAdNetwork'ten de beslendiğini belirtiyor. Install'lar örtüşür. Topladığınızda aynı kullanıcıları birden fazla kez sayarsınız. Bunun yerine aynı event ve aynı pencere üzerinde yan yana karşılaştırın.

Google Ads neden MMP'min gösterdiği ICM install'larını göstermiyor?

Çünkü Google bunları bugün ayrı tutuyor. Google'ın iOS ölçüm sayfası, ICM verisinin Google Ads raporlamasında bulunmadığını söylüyor. AppsFlyer ise Google Ads'in ICM'e dayalı install'ları göstermediğini, kendisinin ICM claim'lerini gösterip Google'ın içeride modellediği install'ları göstermediğini belirtiyor. Her taraf kendi modelini gösteriyor. Google, Google Ads'teki iOS ölçümünün ICM ve cihaz üzerinde ölçüm event verisi olan uygulamalar için ICM'e yaklaşacağını söylüyor, ama tarih vermiyor.

Google CPI'ım AppsFlyer'da neden Google Ads'tekinden yüksek?

AppsFlyer'ın discrepancy sayfası, bir kampanyanın her kanalı için Google maliyetini aldığını ama iOS App campaign conversion'larını yalnızca YouTube ve Display'den atfettiğini söylüyor. Bu yüzden MMP tam maliyeti daha az install'a bölüyor. Bunun hâlâ hesabınız için geçerli olduğunu varsaymadan önce ham verinizde probabilistic ICM claim'lerine bakın.

Üç rakamı karşılaştırmadan önce ne kadar beklemeliyim?

Google, modellenmiş iOS conversion'larının beş güne kadar sürebileceğini söylüyor ve bir kampanyayı değerlendirmeden önce tam conversion penceresini beklemenizi öneriyor. SKAN daha yavaş: Apple'ın üçüncü conversion penceresi ilk açılıştan 35 gün sonra bitiyor ve o postback, 144 saate kadar ek bir rastgele gecikmeden sonra geliyor.

ICM, EEA, İngiltere ve İsviçre'deki iOS kullanıcıları için çalışıyor mu?

29 Eylül 2026 itibarıyla hayır. Google'ın cihaz üzerinde ölçüm sayfası, event verisini kullanan cihaz üzerinde ölçümün oradaki kullanıcılar için etkin olmadığını söylüyor. Google bunu ICM'nin iOS gereksinimi olarak listeliyor. AppsFlyer'ın ICM bulletin'i de ICM'nin bu bölgelerdeki iOS trafiği için mevcut olmadığını belirtiyor. Google Ads'teki modellenmiş conversion'lar ve SKAN bu kullanıcıları yine de kapsıyor.