# RevenueCat gözlemci modunda gelir neden sıfır görünür

StoreKit 2 ile gözlemci modunda recordPurchase çağrılmazsa satın almalar sonsuza dek görünmez. Bir hafta boyunca sıfır gelir sanıp aradığım bir bug'ın notu.

Yazan: Necati Doğrul · 2026-08-20 · https://necatidogrul.dev/tr/notes/revenuecat-observer-mode · ios, payments

Kurulum tanıdık: satın almayı StoreKit 2 ile kendin yapıyorsun, RevenueCat'i sadece analitik ve webhook için gözlemci modunda ekliyorsun. `Purchases.configure` içinde `purchasesAreCompletedBy: .myApp`. Dashboard bir hafta boyunca sıfır dolar gösteriyor. Sandbox satın almaları çalışıyor, App Store Connect'te işlemler var, RevenueCat'te hiçbir şey yok.

## Sebep

Gözlemci modunda RevenueCat, StoreKit 1'in işlem kuyruğunu dinleyebiliyor; StoreKit 2'de ise kuyruk yok. Satın alma tamamlandığında sen `recordPurchase(_:)` çağırmazsan SDK işlemi hiç görmüyor. Dokümanda var, ama "gözlemci" kelimesi seni "kendisi gözlemler" diye düşündürüyor.

## Düzeltme

`Product.purchase()` sonucundan `verified` transaction alındığında, `finish()` çağrısından önce RevenueCat'e kaydet:

```swift
let result = try await product.purchase()
if case .success(let verification) = result,
   case .verified(let transaction) = verification {
    _ = try? await Purchases.shared.recordPurchase(result)
    await transaction.finish()
}
```

Geçiş sürümünde iki taraf da transaction'ı bitirmesin; aksi hâlde biri diğerinin işlemini görmeden kapatıyor.

## Nasıl fark ettim

Dashboard'a bakarak değil. Bir Cloudflare Worker RevenueCat webhook'larını Telegram'a düşürüyor; bir hafta hiç mesaj gelmeyince önce webhook'u, sonra SDK log'unu okudum. Log'da "purchase completed by app, not recorded" satırı vardı. İkinci uçtan doğrulama olmasa sıfır geliri gerçek sanacaktım.

## Ders

Gözlemci modu "hiçbir şey yapma" demek değil. Kayıt çağrısı senin. Ve gelir sıfır görünüyorsa ilk şüphe ürün değil ölçüm olmalı.

---
Necati Doğrul · https://necatidogrul.dev
