İçeriğe atla

Reddetme düzeltme rehberi 2026

TWA Uygulamanız Google Play'de Reddedildi mi? WebView'a Geçin

Trusted Web Activity uygulamanız kapalı testte "test kullanıcıları yeterince etkileşimli değildi" / "testers were not engaged" mesajıyla sürekli başarısız oluyorsa, en güvenilir yol uygulamayı standart bir WebView uygulaması olarak yeniden inşa edip o sürümü yüklemektir. TWA ve PWA sarmalayıcılarının neden işaretlendiğini ve 14 günlük sayacı sıfırlamadan nasıl geçeceğinizi burada bulursunuz.

TWA Daha sık işaretlenir
WebView Güvenilir çözüm
14 gün Sayaç sıfırlanmaz
%99,9 PTL başarı oranı
Testers were not engaged
Reddedildi TWA / PWA sarmalayıcı Chrome yüzeyinde çalışır
Uygulama kabuğunuz Chrome Custom Tab Web içeriği

Etkileşim zayıf okunur → reddedilir

Onaylandı Standart WebView Kendi sürecinizde çalışır
Uygulama kabuğunuz WebView (süreç içi) Web içeriği

Aktivite kayda geçer → onaylanır

Hızlı yanıt

TWA uygulamanız kapalı testte (closed testing) "test kullanıcıları yeterince etkileşimli değildi" / "testers were not engaged" mesajıyla sürekli başarısız oluyorsa, deneyimimize göre en güvenilir çözüm standart bir WebView uygulaması olarak yeniden inşa etmek (Android Studio WebView, Capacitor veya Cordova) ve üretime TWA değil, o sürümü göndermektir. Aynı package name'i koruyun ve güncelleme olarak yükleyin; böylece 14 günlük sayaç sıfırlanmaz. WebView etkileşim sinyali sorununu giderir ama thin wrapper incelemesinden muaf tutmaz; bu yüzden gerçek bir uygulama yapın. Darboğaz aralıksız 14 gün için 12 aktif test kullanıcısı bulmaksa, bunu PrimeTestLab üstlenir: $19.99'dan, test genellikle 4-6 saatte başlar.

Bağımsız bir geliştiricinin karşılaşabileceği en sinir bozucu reddetmelerden biridir bu. Test kullanıcılarınız gerçekten aktiftı. 12 kişi vardı. 14 gün geçti. Google yine de "test kullanıcılarınız yeterince etkileşimli değildi" / "your testers were not engaged enough" dedi. Uygulamanızı bir Trusted Web Activity (TWA) veya PWA sarmalayıcı olarak kurduysanız, bu örüntü hayal değildir: 7.400+ uygulamada gördüğümüz gibi, sarmalayıcı sürümler standart native veya WebView sürümlerine göre bu retle çok daha sık karşılaşır. Bu rehber nedenini açıklar, önemli mimari farkı gösterir ve bankanızdaki test günlerini çöpe atmadan WebView'a geçişi adım adım anlatır.

TWA Uygulamaları Kapalı Testte Neden Reddedilir?

Bir Trusted Web Activity, ekranları kendi uygulamanızın içinde çizmek yerine sitenizi Chrome'un Custom Tabs yüzeyi üzerinden sunar. Siteyi veya PWA'yı yüklenebilir hale getirmenin hızlı bir yoludur ve birçok üretim uygulamasında sorun çıkarmaz. Sorun özellikle bir kişisel geliştirici hesabının üretim erişiminden önce zorunlu 14 günlük kapalı test şartını geçmesi gerektiğinde ortaya çıkar.

7.400+ uygulamayı bu süreçten geçirmeye yardımcı olurken edindiğimiz deneyime göre TWA ve PWA sarmalayıcı sürümler, test kullanıcıları her gün gerçekten aktif olsa bile standart native uygulamalara göre "testers were not engaged" / "test kullanıcıları yeterince etkileşimli değildi" reddine çok daha sık takılır. Örüntü o kadar tutarlıdır ki, uygulama hâlâ 14 günlük kapalı testi geçmek zorundaysa geliştiricileri TWA'dan uzak tutuyoruz.

Bulgu 01

Zayıf etkileşim sinyalleri

Google incelemesinin okuduğu aktivite, içerik uygulamanızın sürecinde değil Chrome yüzeyinde çalıştığında daha zayıf geliyor gibi görünür. Gerçek kullanım düşük kullanım gibi okunabilir.

Bulgu 02

"Testers not engaged" reddi

TWA sürümlerinde en sık gördüğümüz mesaj budur. Test kullanıcıları kaydoldu, yükledi ve uygulamayı her gün kullandı; üretim erişimi incelemesi yine de etkileşimi yetersiz bulur.

Bulgu 03

Play Console'da düşük aktif kullanıcı

Bazı geliştiriciler TWA sürümlerinde Kontrol panelinde beklenmedik düşük aktif kullanıcı sayıları da bildirir; bu da aynı Chrome yüzeyi davranışıyla uyumludur.

Bulgu 04

Yeniden gönderimde tekrar ret

Kök neden mimari olduğu için aynı TWA sürümünü yeniden göndermek genellikle aynı şekilde başarısız olur; bu yüzden yama nadiren işe yarar, yeniden inşa eder.

Dürüst bir uyarı

Dürüst bir uyarı: Google, üretim erişimi inceleme aşamasında tam olarak hangi sinyalleri tarttığını kamuya belgelemez; bu yüzden kesin mekanizmayı resmi politika değil, bizim gözlemimiz olarak okuyun. Tam telemetriyi bildiğini iddia eden forum yazılarına şüpheyle yaklaşın. Güvenle söyleyebildiğimiz sonuç şudur: TWA sürümleri etkileşim nedeniyle reddedilir; karşılaştırılabilir WebView sürümleri onaylanır.

TWA Gerçekte Nedir (ve Nasıl İnşa Edilir)

Reddi düzeltmeden önce tam olarak ne yüklediğinizi anlamak faydalıdır. Bir Trusted Web Activity, özünde gerçek bir tarayıcı motoru içinde tam ekran çalışan web sitenizdir: adres çubuğu yok, tarayıcı arayüzü yok, kullanıcının bir web sayfasına baktığını söyleyen hiçbir şey yok. Kullanıcıya native bir uygulama gibi görünür ve hissettirir. Motorun altında ise canlı web sitenizdir.

TWA'lar genellikle Google'ın Bubblewrap CLI'si veya PWABuilder ile üretilir; ikisi de Google'ın androidbrowserhelper kütüphanesinin üzerindedir. Aracı bir URL'ye yönlendirirsiniz, bir Android projesi çıkar, imzalar ve AAB'yi Google Play'e yüklersiniz.

Geliştiriciler Neden TWA'ya Yönelir

Tek kod tabanı

Zaten bir web siteniz var (ideal olarak bir PWA). TWA, Kotlin, Flutter veya React Native ile yeniden yazmadan Play Store'a taşır.

Anında güncelleme

Uygulama canlı sitenizi yüklediği için değişiklikleri web sitenizi yayınlayarak gönderirsiniz: uygulama güncellemesi yok, inceleme kuyruğu yok.

Ucuz ve hızlı

Bir TWA üretmek haftalar değil dakikalar sürer. Mevcut bir PWA için Android'e en düşük eforlu yoldur.

Redde Yol Açan Ödün

TWA'yı ucuz kılan şey, kapalı test için onu kırılgan da kılar:

  • İnternet gerekir. Sitenize açılan bir penceredir; PWA'nızın sağlam offline desteği yoksa zayıf bağlantı zayıf uygulama demektir.
  • Play Store red riski. Minimum Functionality / yeniden paketlenmiş içerik politikası "sadece bir sarmalayıcıdaki web sitesi" uygulamalarını hedefler. Gerçek native yeteneği olmayan bir TWA, özellikle yeni gönderimlerde reddedilebilir veya kaldırılabilir. Native özellikler (push bildirimleri, offline mod, kamera, paylaşım hedefleri) eklemek o çizginin doğru tarafında kalmanın yoludur.
  • Yukarıda ele alınan etkileşim sinyali sorunu: bu yüzden 14 günlük kapalı testi bekleyen kişisel hesaplar "testers not engaged" mesajını almaya devam eder.

Yanlış Kanı: TWA Bir WebView Değildir

Çoğu makalenin yanlış anlattığı kısım budur ve sorun nasıl çözüleceğini değiştirdiği için net olmak gerekir. Bir TWA, Android'in WebView bileşenini hiç kullanmaz.

Efsane

"TWA sadece bir WebView sarmalayıcıdır"

Android'in WebView'ı, uygulama tarafından kontrol edilen sadeleştirilmiş, gömülebilir bir tarayıcıdır: daha eski, daha az özellikli, daha zayıf güvenlik yalıtımı. Bir TWA bunu kullanmaz.

Gerçek

TWA, Custom Tabs motorunu kullanır

URL'nizi kullanıcının tam yüklü tarayıcısına (genelde Chrome) devreder ve sayfayı UI olmadan tam ekran çizmesini ister: gömülü bir bileşen değil, gerçek tarayıcı motoru.

TWA, Custom Tabs arkasındaki motoru kullandığı için gerçek Chrome tarayıcısıyla aynı render motoru, JavaScript motoru ve güvenlik sandbox'ını, ayrıca Chrome ile paylaşılan çerez ve depolamayı (web'de zaten oturum açmış kullanıcı oturumda kalır), otomatik tarayıcı güncellemelerini ve tam web platformu desteğini alırsınız. Normal yayınlanmış bir uygulama için bu gerçekten güçlüdür; ama aynı zamanda ekranlarınızın süreç dışında, Chrome'un içinde çalıştığı anlamına gelir. Hem etkileşim sinyali seyrelmesinin hem de düşük aktif kullanıcı sayılarının kökü budur.

Başlatma Akışı, Adım Adım

1
Kullanıcı uygulama simgesine dokunur

Android, TWA'nın LauncherActivity'sini başlatır (androidbrowserhelper'dan).

2
O activity Chrome'dan URL'nizi açmasını ister

Sayfa tam ekran, chrome'suz bir Custom Tab içinde açılır: adres çubuğu yok, sekmeler yok, tarayıcı arayüzü yok.

3
Adres çubuğunu gizlemeden önce Chrome bir güven kontrolü çalıştırır

Trusted Web Activity'deki "Trusted" budur. Uygulama siteye sahip olduğunu kanıtlayamazsa adres çubuğu görünür kalır ve native illüzyon bozulur.

Güven Kontrolü: Digital Asset Links

Chrome adres çubuğunu yalnızca uygulama web sitesine sahip olduğunu Digital Asset Links ile kanıtlarsa kaldırır. Uygulama hangi siteyi temsil ettiğini bildirir; site de uygulamanın package adını ve imzalama sertifikası parmak izini (SHA-256) adlandıran bir dosyayı /.well-known/assetlinks.json adresinde sunmalıdır.

https://yoursite.com/.well-known/assetlinks.json JSON
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourapp.name",
    "sha256_cert_fingerprints": [
      "AB:CD:EF:...:99"  // your signing cert SHA-256
    ]
  }
}]
Doğrulama nasıl sonuçlanır

Uygulama siteyi bildirir

Manifest, uygulamanın temsil ettiği https alan adını adlandırır.

Site assetlinks.json sunar

Dosya package name ve SHA-256 parmak izini listeler.

Chrome ikisini çapraz kontrol eder

Parmak izi, uygulamanın imzalama sertifikasıyla eşleşmelidir.

Eşleşme Uygulama native gibi tam ekran çalışır. Adres çubuğu gizli.
Eksik / 404 / yanlış parmak izi Uygulama yine açılır ama Chrome adres çubuğunu gösterir: en yaygın TWA hatası.
1 numaralı TWA hatası

Test kullanıcıları "uygulamanızın" üstünde bir tarayıcı adres çubuğu gördüğünü bildiriyorsa assetlinks.json eksiktir, 404 dönüyordur veya yanlış SHA-256 parmak izi taşır. Dosyayı düzeltin (parmak izinin Play App Signing altında Google Play'in gerçekten imzaladığı anahtarla eşleştiğinden emin olun); ama unutmayın: bu yalnızca tam ekran illüzyonunu geri getirir. Etkileşim sinyali reddini düzeltmez; o WebView yeniden inşası ister.

Etkileşim Sinyali Yolu: TWA vs WebView

Reddi anlamanın en basit yolu, bir test kullanıcısının aktivitesinin gerçekten nereye gittiğini izlemektir. TWA'da ekranlarınız uygulamanızdan bir katman uzakta, Chrome'un Custom Tabs yüzeyinin içindedir. WebView uygulamasında aynı ekranlar kendi uygulama sürecinizde çalışır ve doğrudan package'ınıza yazılır. Aktivitenin ne kadar güçlü kayda geçtiğini değiştiren tek fark budur.

Test kullanıcısı aktivitesi nereye yazılır

TWA
Test kullanıcısı uygulamaya dokunur Package'ınız Chrome Custom Tab Web içeriği
Zayıf
WebView
Test kullanıcısı uygulamaya dokunur Package'ınız WebView (süreç içi) Web içeriği
Güçlü
Ana içgörü

WebView sitenizin URL'sini kendi uygulamanızın içinde yükler; böylece aktivite Google incelemesinin beklediği gibi package'ınıza yazılır. TWA'da ortadaki Custom Tab, sinyali seyrelten ekstra atlamadır. Bu yüzden TWA'da kendi web analitiğinizde (Google Analytics, web katmanında Firebase) düşük sayılar mutlaka "Google sıfır kullanım görüyor" demek değildir; ama kapalı test için pratik sonuç aynıdır: WebView'a yeniden inşa güvenilir çözümdür.

TWA Nasıl Tanınır (Dışarıdan ve İçeriden)

Sizin (veya bir yüklenicinin) gönderdiği uygulamanın gerçekten TWA olup olmadığından emin değil misiniz? Önce gözle, sonra APK veya bağlı cihazdan kesin olarak nasıl doğrulayacağınız burada.

Hızlı görsel ipuçları (kullanıcı olarak)

  • Web sitesi gibi davranır, tam olarak: çünkü web sitesidir.
  • Geliştirici yanlış yapılandırdıysa üstte bir tarayıcı adres çubuğu görürsünüz: kesin işaret (yukarıdaki assetlinks hatasına bakın).
  • İçerik Play Store'da bir uygulama güncellemesi olmadan yenilenir.

Kesin teknik ipuçları (APK / cihaz incelemesi)

İşaret Ne anlama gelir
TRUSTED_WEB_ACTIVITY_SERVICE eylemini bildiren bir DelegationService En güvenilir parmak izi: yalnızca TWA'lar bunu bildirir.
com.google.androidbrowserhelper'dan LauncherActivity (çoğu zaman ManageDataLauncherActivity) Bubblewrap başlatıcısı.
Uygulamanın bağlantı ayarlarında doğrulanmış bir https alanı (assetlinks.json çalışıyor) TWA'nın sarmaladığı site.
libflutter.so yok, index.android.bundle yok, az native kod Web sarmalayıcıdır; Flutter / React Native / native derleme değildir.

adb ile doğrulayın

Bağlı bir cihazda (veya emülatörde) iki komut işi bitirir:

terminal bash
# Is it a TWA? Look for the delegation service:
adb shell dumpsys package <package.name> | grep -i DelegationService

# Which site does it wrap, and is the trust check passing?
adb shell pm get-app-links <package.name>
#   -> "verified"  = Digital Asset Links pass (fullscreen)
#   -> "1024"      = verification failed (address bar shows)
Sonucu okumak

Sonucu okumak: bir DelegationService ve androidbrowserhelper'dan bir LauncherActivity görüyorsanız neredeyse kesin bir TWA'ya bakıyorsunuzdur. Bunun yerine özel bir MainActivity, native .so kütüphaneleri ve delegation service yoksa gerçek native (veya Flutter / React Native) bir uygulamadır ve bu rehberdeki etkileşim sinyali sorunu ona uygulanmaz.

Kapalı Test için TWA vs WebView: Yan Yana

Her iki mimari de web içeriğini sarmalar. 14 günlük kapalı testi geçmek için önemli fark, o içeriğin nerede çalıştığı ve aktivitenin nasıl yazıldığıdır. Bir döngüde üretime ulaşıp ulaşamayacağınızı belirleyen metriklerde şöyle karşılaştırılırlar.

Önem verdiğiniz konu
TWA / PWA sarmalayıcı
Standart WebView
Ekranlar nerede çizilir
Chrome Custom Tabs
Uygulama sürecinizin içinde
Etkileşim sinyali gücü
Zayıf
Güçlü
"Testers not engaged" riski
Yüksek (verilerimizde)
Düşük
Play Console'da aktif kullanıcılar
Sıkça eksik raporlar
Güvenilir raporlar
Native kontrol (geri, offline)
Sınırlı
Tam kontrol
Uygulama içi analitik davranışı
Tuhaf / eksik sayar
Standart
Thin wrapper incelemesi
Hâlâ geçerlidir
Hâlâ geçerlidir
14 günlük testte güvenilirlik
Tutarsız
Güvenilir
Daha yüksek red riski

TWA / PWA sarmalayıcı

En iyisi: zaten onaylanmış, kapalı testi geçmesi gerekmeyen uygulamalar için.

Mevcut PWA'dan hızlı kurulum
Tam ekran, adres çubuksuz deneyim
Aktivite Chrome'da bir katman uzakta çalışır
Daha yüksek "testers not engaged" red oranı
Play Console'da aktif kullanıcıları eksik raporlayabilir
Kapalı test için önerilen

Standart WebView

En iyisi: 14 gün, 12 test kullanıcılı kapalı testi geçmesi gereken uygulamalar için.

Ekranlar kendi uygulama sürecinizde çalışır
Aktivite doğrudan package'ınıza yazılır
Tam native kontrol: geri, offline, hatalar
Standart analitik davranışı
Thin wrapper incelemesini geçmek için hâlâ gerçek değer gerekir
Etkileşimli

Framework uyumluluk kontrolü

WebView, masaüstü Chrome'dan farklı davranır. Yığınınızı seçin; başlatmada en sık bozulan ayarı görün.

WebView'a özgü optimizasyonu görmek için yukarıdan framework'ünüzü seçin.

DOM Storage'ı etkinleştirin

SPA / istemci yönlendirme

Tek sayfa uygulamalar istemci tarafı yönlendirme ve kimlik durumu için localStorage ve sessionStorage'a güvenir. settings.domStorageEnabled = true açmazsanız web yönlendirmeniz başlatmada bozulur: test kullanıcıları boş ekran veya takılı yükleyici görür; bu da "etkileşim yok" gibi okunur.

Ayrıca javaScriptEnabled = true tutun ve uygulama içi gezinmeyi bir WebViewClient ile yönetin; deep link'ler Chrome'a fırlamasın.

Gömüler ve yüklemeler için native izinleri bildirin

No-Code builder

WebView, iframe gömülerini masaüstü Chrome'dan farklı ele alır ve no-code builder'lar bunlara çok yaslanır. Dosya yükleme izinlerinin AndroidManifest.xml'de native bildirildiğinden emin olun (ve WebChromeClient.onShowFileChooser'ı bağlayın); aksi halde formlar ve medya yüklemeleri sessizce başarısız olur.

<uses-permission android:name="android.permission.INTERNET"/> ekleyin; medya kabul ediyorsanız kamera/depolama izinlerini de ekleyin, sonra çalışma zamanında isteyin.

Offline önbellek ve gerçek native değer ekleyin

Statik / CMS

WebView'da yüklenen düz bir statik site, ders kitabı "thin wrapper" örneğidir. Kullanılabilir offline yedek için cacheMode = LOAD_DEFAULT ayarlayın, kopan bağlantılar için markalı bir hata/yeniden dene ekranı ekleyin ve en az bir native özellik katmanlayın (push bildirimleri, paylaşım hedefi veya ana ekran kısayolları).

CMS veya statik dışa aktarımı "çerçeveli web sitesi"nden Minimum Functionality incelemesini geçen bir uygulamaya taşıyan budur.

Çözüm: Bunun Yerine Standart Bir WebView Uygulaması İnşa Edin

Bir TWA'yı yamalamak veya ondan daha iyi sinyaller koparmaya çalışmak yerine daha temiz yol, uygulamayı bir WebView bileşeni etrafında yeniden inşa edip o sürümü yayınlamaktır. Üç ana akım yol vardır; hepsi sitenizi kendi uygulamanızın içinde yükler:

1
Android Studio native WebView

En doğrudan yol. Ana activity'nize bir WebView koyun, URL'nize yönlendirin, JavaScript ve DOM storage'ı açın. Maksimum kontrol, ekstra framework yok.

2
Capacitor

Uygulamanız zaten bir web/PWA projesiyse Capacitor onu native bir WebView kabuğuna sarar ve native eklentiler (kamera, push, depolama) verir. TWA sinyal sorunu olmadan PWA'dan temiz bir yükseltme yolu.

3
Cordova

Daha eski ama hâlâ geçerli seçenek. Aynı çekirdek fikir: web içeriğiniz Chrome'un Custom Tabs yüzeyinde değil, uygulamanın kendi WebView'ında çalışır.

Minimum WebView kurulumu (kopyalamaya hazır)

Çekirdek küçüktür: JavaScript ve depolama açık bir WebView URL'nizi yükler, gezinmeyi Chrome'a fırlatmak yerine uygulama içinde tutar ve Google incelemesinin beklediği geri düğmesi işleyicisini bağlar. Dilinize göre sekmeyi değiştirin ve temeli kopyalayın:

val webView = findViewById<WebView>(R.id.webview)
webView.settings.apply {
    javaScriptEnabled = true          // most sites need this
    domStorageEnabled = true          // localStorage / sessionStorage
    cacheMode = WebSettings.LOAD_DEFAULT
}

// Keep links INSIDE the app (this is the key difference vs a TWA)
webView.webViewClient = WebViewClient()
webView.loadUrl("https://yourwebsite.com")

// The exact back-button handler Google looks for
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
    override fun handleOnBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack()
        } else {
            finish()
        }
    }
})
WebView webView = findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);      // most sites need this
settings.setDomStorageEnabled(true);      // localStorage / sessionStorage
settings.setCacheMode(WebSettings.LOAD_DEFAULT);

// Keep links INSIDE the app (this is the key difference vs a TWA)
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://yourwebsite.com");

// The exact back-button handler Google looks for
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
    @Override
    public void handleOnBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            finish();
        }
    }
});
# Wrap an existing web/PWA project in a native WebView shell
npm install @capacitor/core @capacitor/cli
npx cap init "YourApp" "com.yourapp.name"

# Point Capacitor at your live site (capacitor.config.ts)
#   server: { url: "https://yourwebsite.com", cleartext: false }

npm install @capacitor/android
npx cap add android
npx cap sync

# Capacitor handles back-button + DOM storage natively.
# Open in Android Studio to build a signed AAB:
npx cap open android

İncelemeyi geçmek için eklemeniz gereken üç şey

Yalnızca loadUrl() çağıran çıplak bir WebView hâlâ thin wrapper'dır. Bu üç ekleme onu gerçek bir uygulama yapar ve test kullanıcılarını boş ekranlardan uzak tutar:

1
Android geri düğmesini işleyin

OnBackPressedCallback'u bağlayın (yukarıdaki kopyalanabilir parçacıkta gösterildiği gibi) ki Geri önce web geçmişini yürüsün ve gidecek yer kalmadığında uygulamadan çıksın. Bu olmadan tek dokunuş tüm uygulamayı kapatır ve bozuk görünür: anında thin wrapper kırmızı bayrağı.

2
Offline ve hata durumlarını yönetin

WebViewClient içinde onReceivedError uygulayın; beyaz sayfa yerine yeniden dene düğmeli gerçek bir "çevrimdışısınız" ekranı gösterin. Bağlantı kopunca boş ekran, thin wrapper gibi görünmenin ve incelemede düşmenin en hızlı yoludur.

3
Gerçek native değer ekleyin

Push bildirimleri (FCM), offline önbellek, paylaşım hedefi, WebChromeClient.onShowFileChooser ile dosya yükleme veya cihaz entegrasyonu. Uygulamayı yüklediği URL'den anlamlı şekilde daha fazla kılan her şey. Minimum Functionality politikasını karşılayan budur.

Zaten PWA'da mısınız? Capacitor kullanın

Android kodunu elle yazmak istemiyorsanız Capacitor mevcut web projenizi native bir WebView kabuğuna sarar ve geri düğmesi işleme, native splash ve eklenti sistemi (push, kamera, dosya sistemi) ile gelir. TWA Custom Tabs davranışını tamamen atlayan en doğrudan PWA-WebView yoludur: süreç içi WebView atıfını ve kolay native özellikleri tek adımda alırsınız.

Önemli olan tek kural

Test ettiğiniz uygulamayı yayınlayın. WebView uygulamasını inşa edin, kapalı testten geçirin ve aynı sürümü üretime gönderin. Bir mimariyi test edip sonra farklı bir uygulamayı takas etmeyin: incelemeden geçsin diye bir sürüm gönderip üretimde başka bir şeyle değiştirmek Google'ın aldatıcı davranış politikalarına çarpar ve uygulama veya hesabın askıya alınmasına yol açabilir. Kalıcı olarak WebView'da kalmak bunu tamamen atlar; çünkü test ettiğiniz şey yayınladığınız şeydir.

14 Günlük Sayacı Yeniden Başlatmadan Nasıl Geçersiniz

Testin ortasındaysanız baştan başlamak zorunda değilsiniz. Aynı test kanalında aynı package name ile kaldığınız sürece 14 günlük sayaç bir uygulama güncellemesinden sağ çıkar. Güvenli geçiş şöyle:

1
WebView uygulamasını aynı package name ile inşa edin

Mevcut TWA'nızla aynı applicationId'yi koruyun. Farklı bir package name yepyeni bir uygulama kaydı açar ve taze 14 günlük döngü zorlar.

İpucu: versionCode'unuzu TWA sürümünden en az 1 yükseltin; aksi halde Play Console yüklemeyi yinelenen sürüm diye reddeder.
2
Gerçek bir bağımsız uygulama gibi davransın

Güvenilir yükleme, doğru Android geri düğmesi işleme, makul offline ve hata durumları, boş ekran yok. Thin wrapper incelemesinden de sizi uzak tutan budur (sonraki bölüm).

3
Mevcut kapalı test kanalınıza güncelleme olarak yükleyin

Kapalı test kanalınızı açın, yeni bir sürüm oluşturun ve WebView AAB'yi yükleyin. Yeni bir kanal veya yeni bir uygulama oluşturmayın.

4
Test kullanıcıları güncellesin ve devam etsin

Kayıtlı test kullanıcılarınız yalnızca WebView sürümüne günceller ve devam eder. En az 12 test kullanıcısı aktif kaldığı sürece sayaç tıkır tıkır işler.

Sayaç işlemeye devam eder

Kapalı test kanalınıza güncelleme itmek 14 günlük sayacı sıfırlamaz. Sayaç işlemeye devam eder ve Google test sırasında aktif yinelemeyi sürecin normal bir parçası sayar. Birikmiş günleri kaybetmeden döngü ortası TWA-WebView takasını mümkün kılan budur.

WebView Uygulaması Hâlâ "Thin Wrapper" Sayılır mı?

WebView'ın sihirli bir değnek sandığı geliştiricileri yakalayan tuzak budur. TWA'dan WebView'a geçmek etkileşim sinyali sorununu ele alır ama Google'ın Spam and Minimum Functionality politikasından muaf tutmaz. Ana sayfanızın bir çerçevede olduğu bir WebView, çıplak bir TWA gibi thin wrapper olarak reddedilebilir.

Bunları iki ayrı kapı olarak görmek yardımcı olur. Bir test hizmeti veya WebView yeniden inşası birini geçmenize yardımcı olabilir; diğerini sizin yerinize geçmez.

Kapı 1

Kapalı test şartı

Sayı ve süre kontrolü: en az 12 kayıtlı test kullanıcısı, aralıksız 14 gün aktif. WebView etkileşimin güvenilir okunmasını sağlar; PrimeTestLab test kullanıcılarını sağlar.

Sayı + süre
Kapı 2

Minimum Functionality (thin wrapper)

Politika ve kalite kararı: uygulama gerçek değer mi sunuyor, yoksa sadece çerçeveli bir web sitesi mi? Bunu yalnızca gerçekten değerli bir uygulama geçer; hiçbir hizmet veya mimari takas sizin yerinize yapmaz.

Politika + kalite

Yani hedef yalnızca "TWA yerine WebView" değildir; kendi ayakları üzerinde duracak kadar gerçek değeri ve native davranışı olan bir WebView uygulamasıdır. Pratikte bu demektir ki:

A
Android geri düğmesini doğru işleyin

Geri web geçmişinde gezinsin, sonra zarifçe çıksın: test kullanıcısını boş ekrana düşürmesin veya uygulamayı beklenmedik şekilde öldürmesin.

B
Offline ve hata durumlarını yönetin

Gerçek bir "çevrimdışısınız" ekranı ve yeniden deneme yolu gösterin. Kopan bağlantıda beyaz ekran, thin wrapper gibi görünmenin en hızlı yoludur.

C
Gerçek native değer ekleyin

Push bildirimleri, ana ekran deneyimi, cihaz entegrasyonu, offline önbellek: uygulamayı yüklediği URL'den anlamlı şekilde daha fazla kılan her şey.

Yem ve değiştir kuralı (bunu bozmayın)

Yapmayın: gerçek değerli bir uygulamayı test edip üretim için temelden farklı (veya daha ince) bir uygulamayı takas etmeyin. Google'ın hesapları askıya aldığı aldatıcı davranış tam olarak budur.

Yapın: WebView mimarisini seçin, gerçek değerle inşa edin, o sürümü test edin ve tam o sürümü yayınlayın. Testten üretime ona bağlı kalın.

Kalite reddini neyin tetiklediğine dair daha derin kontrol listesi mi istiyorsunuz? Kapalı test neden reddedilir rehberimiz, etkileşim dışındaki en yaygın politika ve inceleme başarısızlıklarını ayırır.

Uygulamanız TWA mı Emin Değil misiniz? Sipariş Anında Kontrol Ederiz

adb komutları çalıştırmanız veya APK'nizi kendiniz kurcalamanız gerekmez. Evet: PrimeTestLab uygulamanızın TWA olup olmadığını sizin için doğrulayabilir. Test hizmetimizi sipariş ettiğiniz anda ekibimiz sürümünüzü inceler, TWA veya PWA sarmalayıcı olup olmadığını belirler ve öyleyse etkileşim nedeniyle işaretlenecek bir mimaride 14 günlük sayaç boşa gitmeden önce tam olarak neyi düzeltmeniz gerektiğini söyler.

200+ TWA uygulaması incelendi

Yalnızca son birkaç ayda 200+ TWA uygulamasını inceledik ve danışmanlık verdik; önerilerimiz ve düzeltmelerden sonra bu uygulamalar yollarında başarıyla ilerledi. TWA yakaladığımızda belirsiz bir "yeniden deneyin" değil, net ve uygulanabilir bir yeniden inşa planı alırsınız.

Sipariş anında ne olur

1
Sipariş verir ve uygulamanızı paylaşırsınız

Kapalı test kanalınız veya sürümünüz bizimle paylaşılır paylaşılmaz uygulamanız inceleme kuyruğuna girer: ekstra istek gerekmez.

2
Sürümü hemen TWA işaretleri için inceleriz

Ekibimiz bilinen TWA parmak izlerini kontrol eder: DelegationService, androidbrowserhelper başlatıcısı, Custom Tabs davranışı ve native kod yokluğu (yukarıdaki tespit bölümünde aynı işaretler).

3
TWA ise işaretleriz ve nasıl düzelteceğinizi söyleriz

Belirli bir öneri alırsınız: genelde bu rehberdeki WebView yeniden inşası; böylece etkileşim incelemesinde düşecek bir sürümde 14 günlük döngüyü yakmadan önce mimariyi düzeltirsiniz.

4
Sağlam olunca test kullanıcılarımız tam 14 günlük döngüyü çalıştırır

Doğru mimari yerinde ve aralıksız 14 gün aktif 12+ doğrulanmış test kullanıcısıyla her iki kapı da kapanır; %99,9 başarı oranımızı böyle koruruz.

Bu size neden haftalar kazandırır

Çoğu geliştirici TWA'nın sorun olduğunu başarısız bir 14 günlük döngüden sonra öğrenir: yani baştan başlamak. Biz bunu sıfırıncı günde yakaladığımız için mimariyi bir kez düzeltir, bir kez test eder, bir kez yayınlarsınız. İki haftada temiz bir yol ile bir ay tekrarlanan ret arasındaki fark budur.

PrimeTestLab Nasıl Yardımcı Olur (Sorunun Diğer Yarısı)

Mimari sorunun bir yarısıdır. Diğer yarısı (çoğu solo geliştiriciyi durduran) aralıksız 14 gün teste katılacak ve kayıtlı kalacak 12 test kullanıcısı bulmaktır. Bunu PrimeTestLab üstlenir.

Gerçek Android cihazlarda doğrulanmış, kayıtlı test kullanıcıları sağlar ve kapalı testinizi şartın tamamında aktif tutarız; böylece tek bir test kullanıcısının düşmesi 14 günlük seriyi bozmaz. Kapalı test kayıt bağlantınızı paylaşırsınız; davet, kayıt doğrulama, günlük etkileşim izleme ve 14 günlük tutmayı biz yönetiriz. 7.400+ uygulama ve sayıyor, ilk denemede %99,9 başarı oranı.

$19.99'dan 12 test kullanıcısı
4-6 saat Test başlar
7.400+ uygulama %99,9 başarı
Açık konuşalım

Bir test hizmeti test kullanıcısı şartını karşılar. Uygulamanızın mimarisini seçmez veya thin wrapper incelemesini sizin yerinize geçmez. Kazanan kombinasyon gerçek değerli bir WebView sürümü artı tam 14 gün boyunca 12 gerçek test kullanıcısıdır; böylece reddin nedeni ne mimari ne de test tarafı olur.

Güncel paketler

Starter 12 test kullanıcısı $19.99
  • Google'ın minimumunu karşılar
  • Gerçek Android cihazlar
  • Tam 14 gün kapsama
Planı görün
En iyi değer Enterprise 25 test kullanıcısı $27.99
  • Maksimum güvenlik marjı
  • En iyi cihaz çeşitliliği
  • En güçlü ilk deneme oranı
Planı görün
Professional 20 test kullanıcısı $29.99
  • Güvenlik tamponu dahil
  • Daha iyi cihaz çeşitliliği
  • Daha yüksek yol güveni
Planı görün

Sık Sorulan Sorular

TWA uygulamam kapalı testte neden sürekli reddediliyor?

7.400+ uygulamadaki deneyimimize göre TWA ve PWA sarmalayıcı sürümler, test kullanıcıları her gün aktif olsa bile standart native uygulamalara göre "testers were not engaged" / "test kullanıcıları yeterince etkileşimli değildi" reddine çok daha sık takılır. Olası neden: web içeriği uygulamanızın kendi sürecinde değil Chrome'un Custom Tabs yüzeyinde çalıştığında üretim erişimi incelemesinin okuduğu etkileşim sinyallerinin daha zayıf gelmesidir. Google kesin sinyalleri kamuya belgelemez; bunu resmi politika değil, gözlemimiz sayın.

TWA'dan WebView'a mı geçmeliyim, yoksa TWA'yı mı düzeltmeliyim?

Deneyimimize göre standart bir WebView uygulaması olarak yeniden inşa etmek, TWA'dan daha iyi etkileşim sinyalleri koparmaya çalışmaktan çok daha güvenilirdir. WebView sitenizi kendi uygulamanızın içinde yükler; aktivite incelemenin beklediği gibi package'ınıza yazılır. WebView'a geçtikten sonra orada kalın: test ettiğiniz sürümü yayınlayın, üretim için TWA'ya geri dönmeyin.

WebView uygulaması kapalı testi otomatik geçer mi?

Hayır. WebView'a geçmek TWA'da gördüğümüz etkileşim sinyali sorununu giderir ama Google'ın Spam and Minimum Functionality politikasından muaf tutmaz. Yalnızca web sitenizi çerçeveleyen bir WebView hâlâ thin wrapper olarak reddedilebilir; bu yüzden gerçek native değer, doğru geri düğmesi işleme ve düzgün offline/hata durumlarıyla gerçek bir uygulama yapın.

Kapalı test sırasında uygulamamı güncellemek 14 günlük sayacı sıfırlar mı?

Hayır. Kapalı test kanalınıza güncelleme yüklemek 14 günlük sayacı sıfırlamaz. Sayaç işlemeye devam eder; aynı package name'i koruduğunuz sürece döngü ortasında TWA sürümünü WebView ile değiştirebilirsiniz. Google test sırasında aktif yinelemeyi normal sayar.

TWA'm neden Play Console'da düşük aktif kullanıcı gösteriyor?

Bazı geliştiriciler TWA sürümlerinde düşük aktif kullanıcı sayıları bildirir. Google kesin nedeni belgelemez; web içeriğinin uygulamanızın içinde değil Chrome Custom Tabs yüzeyinde çalışmasıyla bağlantılı görünür. WebView sürümü ekranlar kendi sürecinizde çalıştığı için aktiviteyi daha güvenilir raporlama eğilimindedir.

TWA test edip WebView uygulaması yayınlamak güvenli midir?

Güvenli hamle aynı sürümü test edip yayınlamaktır. TWA test edip farklı bir uygulamayı takas etmek yerine önce WebView olarak yeniden inşa edin, o WebView sürümünü kapalı testten geçirin ve tam o sürümü üretime gönderin. İncelemeden geçsin diye bir uygulama gönderip temelden farklı biriyle değiştirmek Google'ın aldatıcı davranış politikaları altında askıya alma riski taşır.

TWA veya PWA sarmalayıcı Google Play'de hiç onaylanabilir mi?

Evet, sarmalayıcı uygulamalar Minimum Functionality politikasını karşılayıp kapalı test şartını tamamladıklarında onaylanabilir. Ama 14 gün, 12 test kullanıcılı kapalı testi geçmesi gereken kişisel hesaplar için WebView sürümlerinin etkileşim incelemesini TWA'ya göre daha güvenilir geçtiğini tutarlı görüyoruz; bu yüzden o durumda geliştiricileri WebView'a yönlendiriyoruz.

TWA Android'in WebView bileşenini kullanır mı?

Hayır; en yaygın yanlış kanı budur. Bir TWA Android'in WebView'ını kullanmaz. Custom Tabs arkasındaki motoru kullanır: URL'yi kullanıcının tam yüklü tarayıcısına (genelde Chrome) devreder, UI olmadan tam ekran çizer. Böylece Chrome ile aynı render motoru, JavaScript motoru ve güvenlik sandbox'ını, artı paylaşılan çerez ve depolamayı alır. Android WebView ise uygulamanın kontrol ettiği, kendi sürecinizde çalışan gömülebilir bir tarayıcıdır; WebView yeniden inşasının etkileşim atfını düzeltmesinin nedeni tam olarak budur.

TWA'm neden üstte tarayıcı adres çubuğu gösteriyor?

Digital Asset Links güven kontrolünün başarısız olduğu anlamına gelir. Chrome adres çubuğunu yalnızca siteniz uygulamanın package'ını ve imzalama sertifikası SHA-256 parmak izini adlandıran geçerli bir /.well-known/assetlinks.json dosyası sunuyorsa gizler. Dosya eksikse, 404 dönüyorsa veya parmak izi Play App Signing altında Google Play'in imzaladığı anahtarla eşleşmiyorsa uygulama yine açılır ama Chrome adres çubuğunu gösterir. assetlinks.json'ı düzeltmek tam ekranı geri getirir; kapalı test etkileşim reddini düzeltmez: o WebView yeniden inşası ister.

Bir uygulamanın TWA olup olmadığını nasıl anlarım?

Sürümü inceleyin. En güvenilir işaret TRUSTED_WEB_ACTIVITY_SERVICE eylemini bildiren bir DelegationService'tir: yalnızca TWA'lar bunu bildirir. Genelde com.google.androidbrowserhelper'dan bir LauncherActivity ve Flutter veya React Native native kütüphanesi de görmezsiniz. Bağlı cihazda servisi görmek için adb shell dumpsys package <package> | grep -i DelegationService, Digital Asset Links doğrulamasının geçip geçmediğini ("verified") veya düştüğünü ("1024") görmek için adb shell pm get-app-links <package> çalıştırın.

PrimeTestLab uygulamamın TWA olup olmadığını söyleyebilir mi?

Evet. Test hizmetimizi sipariş ettiğiniz anda ekibimiz sürümünüzü inceler, TWA veya PWA sarmalayıcı olup olmadığını doğrular ve öyleyse 14 günlük sayaç boşa gitmeden belirli bir düzeltme önerisi gönderir. Son birkaç ayda 200+ TWA uygulamasını kontrol ettik; önerilerimiz ve düzeltmelerden sonra bu uygulamalar yollarında başarıyla ilerledi. adb çalıştırmanız veya APK'yi kendiniz incelemeniz gerekmez.

PrimeTestLab kapalı testim için test kullanıcılarını ne kadar hızlı sağlar?

Kapalı test kanalınız canlı ve erişilebilir olduktan sonra PrimeTestLab test kullanıcıları genellikle 4-6 saatte teste katılmaya başlar. Fiyatlandırma 12 test kullanıcısı için $19.99'dan başlar; 7.400+ uygulamada %99,9 başarı oranı.

Özet

Kısa özet

TWA sürümü Google Play kapalı testte etkileşim reddiyle sürekli düşüyorsa en temiz çözüm onu standart bir WebView uygulaması olarak yeniden inşa etmek ve o sürümü üretime göndermektir; sonra TWA'ya geri dönmeyin. Aynı package name'i koruyun ki güncelleme 14 günlük sayacı sıfırlamasın; uygulamayı Minimum Functionality incelemesini geçecek kadar gerçek değerli yapın ve PrimeTestLab 12 test kullanıcısı, 14 gün şartını üstlensin; reddin nedeni test olmasın. WebView etkileşim kapısını düzeltir; gerçek bir uygulama thin wrapper kapısını geçer; PrimeTestLab test kullanıcılarını sağlar. Fiyat planlarını görün →

Kefayatullah Khadem - Software Engineer & Google Play Publishing Specialist

Yazan

Kefayatullah Khadem

Software Engineer & Google Play Publishing Specialist

Kefayatullah Khadem is a software engineer with over 8 years of experience building scalable applications. At PrimeTestLab, he helps indie developers clear Google Play's closed testing requirement after seeing how many of them struggled with it. To date, he has helped 7,400+ Android apps get production access with a 99.9% success rate across 120+ countries. When he's not helping developers get published, he writes about Google Play policies, app rejection patterns, and the closed testing process.

7,400+ Apps Tested
99.9% Success Rate
120+ Countries
4.9/5 Rating

%99,9 başarı oranı

WebView olarak yeniden mi inşa ettiniz? 14 günlük testinizi biz üstlenelim.

Gerçek test kullanıcıları. Gerçek cihazlar. Tam 14 gün kapsama. Sayaç sıfırlama riski yok.

Yalnızca $19.99'dan başlayan fiyatlar

Test 4-6 saatte başlar · 120+ ülke · %100 para iade garantisi

Uygulamalarını PrimeTestLab ile yayınlayan 7.400+ geliştiriciye katılın

12 test kullanıcısı edinin · $19.99 WhatsApp