---
title: "Paywallsız A/B testi varyantları ekleme"
description: "Bir varyantın paywall'ı atladığı bir A/B testi çalıştırın; paywall'ın gösterilip gösterilmeyeceğini kontrol etmek için remote config bayrağı kullanın."
---

Paywall'ınızın etkisini boş bir varyanta karşı A/B testi çalıştırarak ölçebilirsiniz. Bir varyant paywall'ınızı gösterir; diğeri hiçbir şey göstermez. Uygulamanız, gösterim yapıp yapmayacağına karar vermek için paywall'ın remote config'inden bir bayrak okur.
## Nasıl çalışır \{#how-it-works\}

Bu kurulum, aynı placement içinde iki paywall kullanır:

- **Paywall A**: Test etmek istediğiniz paywall; remote config'inde `show_paywall` değeri `true` olarak ayarlıdır.
- **Paywall B**: Remote config'inde `show_paywall` değeri `false` olarak ayarlanmış, boş bir paywall.

`getPaywall` bir paywall döndürdüğünde uygulamanız `show_paywall` bayrağını okur. Bayrak `true` ise uygulama paywallı render eder. `false` ise render adımını atlayarak kullanıcı paywallsız devam eder.
## 1. Placement'taki show_paywall bayrağını remote config'e ekle \{#1-add-the-show_paywall-flag-in-remote-config\}

Aynı placement'ta iki paywall'a ihtiyacın var: Paywall A (test etmek istediğin) ve Paywall B (boş bir paywall). Her iki varyant için de uygulamanın aynı anahtarı okuyabilmesi amacıyla her paywall'a bir `show_paywall` alanı ekle.

Paywall A'ya bayrağı eklemek için:
1. Adapty ana menüsünde [**Paywalls**](https://app.adapty.io/paywalls) bölümünü açın ve Paywall A'yı seçin.
2. **Remote config** sekmesine geçin.
3. **Table** görünümünde **Add row** düğmesine tıklayın ve `show_paywall` adında, değeri `true` olan bir alan oluşturun. **JSON** görünümünde bu giriş şöyle görünür:

   ```json showLineNumbers
   {
     "show_paywall": true
   }
   ```

4. Değişiklikleri kaydedin.

Paywall B için aynı adımları tekrarlayın, ancak `show_paywall` değerini `false` olarak ayarlayın.

Remote config hakkında ayrıntılı bilgi için bkz. [Remote config ile paywall tasarlama](customize-paywall-with-remote-config).
:::tip
Her iki varyanta da `show_paywall` ayarlamak, her iki grup için kod yolunu aynı tutar ve testi daha sonra daha fazla varyantla genişletmeyi kolaylaştırır.
:::
## 2. A/B testini ayarlayın \{#set-up-the-ab-test\}

1. Placement üzerinde [bir A/B testi oluşturun](run_stop_ab_tests) ve her iki paywall'ı da varyant olarak ekleyin.
2. Paywall'ı görüntüleyen kullanıcılarla görmeyenler arasında trafiği bölmek için varyant ağırlıklarını ayarlayın.
## 3. Bayrakları uygulamanızda kontrol edin \{#check-the-flag-in-your-app\}

`getPaywall` tarafından döndürülen paywall'ın remote config'inden `show_paywall` değerini okuyun. Bayrak `false` ise oluşturmayı atlayın ve kullanıcının devam etmesine izin verin.

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS" default>

```swift showLineNumbers
do {
    let paywall = try await Adapty.getPaywall(placementId: "YOUR_PLACEMENT_ID")
    let showPaywall = paywall.remoteConfig?.dictionary?["show_paywall"] as? Bool ?? true

    if showPaywall {
        // Render the paywall
    }
} catch {
    // handle the error
}
```

</TabItem>
<TabItem value="kotlin" label="Android">

```kotlin showLineNumbers
Adapty.getPaywall("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val paywall = result.value
            val showPaywall = paywall.remoteConfig?.dataMap?.get("show_paywall") as? Boolean ?: true

            if (showPaywall) {
                // Render the paywall
            }
        }
        is AdaptyResult.Error -> {
            // handle the error
        }
    }
}
```

</TabItem>

<TabItem value="react-native" label="React Native">
```typescript showLineNumbers
try {
  const paywall = await adapty.getPaywall({ placementId: "YOUR_PLACEMENT_ID" });
  const showPaywall = paywall.remoteConfig?.data?.["show_paywall"] ?? true;

  if (showPaywall) {
    // Paywall'ı göster
  }
} catch (error) {
  // hatayı işle
}
```

</TabItem>

<TabItem value="flutter" label="Flutter">
```dart showLineNumbers
try {
  final paywall = await Adapty().getPaywall(id: "YOUR_PLACEMENT_ID");
  final bool showPaywall = paywall.remoteConfig?.dictionary?['show_paywall'] as bool? ?? true;

  if (showPaywall) {
    // Paywall'ı göster
  }
} on AdaptyError catch (adaptyError) {
  // hatayı işle
}
```

</TabItem>

<TabItem value="unity" label="Unity">
```csharp showLineNumbers
Adapty.GetPaywall("YOUR_PLACEMENT_ID", (paywall, error) => {
    if (error != null) {
        // handle the error
        return;
    }

    var showPaywall = paywall.RemoteConfig?.Dictionary?["show_paywall"] as bool? ?? true;

    if (showPaywall) {
        // Render the paywall
    }
});
```

</TabItem>

<TabItem value="kmp" label="Kotlin Multiplatform">
```kotlin showLineNumbers
Adapty.getPaywall(
    placementId = "YOUR_PLACEMENT_ID"
).onSuccess { paywall ->
    val showPaywall = paywall.remoteConfig?.dataMap?.get("show_paywall") as? Boolean ?: true

    if (showPaywall) {
        // Render the paywall
    }
}.onError { error ->
    // handle the error
}
```

</TabItem>

<TabItem value="capacitor" label="Capacitor">
```typescript showLineNumbers

try {
  const paywall = await adapty.getPaywall({ placementId: 'YOUR_PLACEMENT_ID' });
  const showPaywall = paywall.remoteConfig?.data?.['show_paywall'] ?? true;

  if (showPaywall) {
    // Render the paywall
  }
} catch (error) {
  // handle the error
}
```

</TabItem>
</Tabs>

`true` varsayılan değeri, bayrak eksik olduğunda paywallı görünür tutmaya yarar; bu sayede bayrağı olmayan mevcut paywalllar etkilenmez.
:::important
Eğer paywall'ı kendiniz render ediyorsanız ([paywall builder](adapty-paywall-builder) kullanmadan), Paywall A'yı görüntülediğinizde [`logShowPaywall`](present-remote-config-paywalls#track-paywall-view-events) fonksiyonunu çağırın. Bu olmadan Adapty, testteki paywall görüntülemelerini sayamaz. Paywall B hiçbir zaman gösterilmediğinden, onun için görüntüleme kaydı tutmayın.
:::
## Sonraki adımlar \{#next-steps\}

- [A/B testi oluşturma, çalıştırma ve durdurma](run_stop_ab_tests) — Her iki varyantı da içeren testi kurma
- [A/B testi sonuçları ve metrikler](results-and-metrics) — Paywallsız varyantı mevcut paywallınızla karşılaştırma