---
title: "Paywall Builder'da özel etiketler"
description: "Kullanıcı deneyimlerini kişiselleştirmek ve dönüşümleri optimize etmek için Adapty'nin Paywall Builder'ında özel etiketleri nasıl kullanacağınızı öğrenin."
---

Özel etiketler sayesinde farklı senaryolar için ayrı ayrı paywall oluşturmanıza gerek kalmaz. Kullanıcı verilerine göre dinamik olarak uyum sağlayan tek bir paywall düşünün. Örneğin, "Merhaba!" gibi genel bir karşılama yerine kullanıcıları "Merhaba, John!" veya "Merhaba, Ann!" şeklinde kişisel olarak selamlayabilirsiniz.

:::warning

Bu bölüm, iOS, Android ve React Native SDK'larının 3.0 veya üzeri sürümleriyle ve Flutter ile Unity SDK'larının 3.3.0 veya üzeri sürümleriyle uyumlu yeni Paywall Builder'ı açıklamaktadır. Adapty SDK v2.x veya önceki sürümlerle uyumlu eski Paywall Builder hakkında bilgi edinmek için bkz. [Eski Paywall Builder'da özel etiketler](custom-tags-in-legacy-paywall-builder).

:::

Özel etiketleri kullanabileceğiniz bazı durumlar:

- Paywall'da kullanıcının adını veya e-posta adresini gösterme.
- Satışları artırmak için haftanın günü gibi bilgileri gösterme (örn. "İyi Perşembeler").
- Sattığınız ürünlere ilişkin kişiselleştirilmiş ayrıntılar ekleme (bir fitness programının adı veya VoIP uygulamasındaki telefon numarası gibi).

Özel etiketler, çeşitli durumlara uyum sağlayan esnek bir paywall oluşturmanıza yardımcı olarak uygulamanızın arayüzünü daha kişisel ve ilgi çekici hale getirir.

:::warning
Özel etiket içeren her satır için mutlaka yedek metin ekleyin.

Özel etiket içeren her satıra yedek metin eklemeyi unutmayın.

Bazı durumlarda uygulamanız bir özel etiketi neyle değiştireceğini bilemeyebilir; özellikle kullanıcılar AdaptyUI SDK'nın eski bir sürümünü kullanıyorsa bu sorun yaşanabilir. Bunu önlemek için, bilinmeyen özel etiket içeren satırların yerini alacak bir yedek metin her zaman ekleyin. Aksi takdirde kullanıcılar etiketleri kod olarak görebilir (`<USERNAME/>`).
:::

## Paywall'a özel etiket ekleme \{#how-to-add-a-custom-tag-to-a-paywall\}

Paywall Builder'daki herhangi bir metin satırına bir veya birden fazla özel etiket ekleyebilirsiniz.

Özel etiket eklemek için:

1. Özel etiketi `<CUSTOM_TAG/>` formatında girin ya da metin satırına açılı köşeli parantez (\<) yazın. Sistem etiketi doğru formatta otomatik olarak önerecektir.

   Dikkat edilmesi gereken birkaç nokta:

   - Adapty Paywall Builder'da özel etiketler açılı köşeli parantezlerle sarılır (`<CUSTOM_TAG/>`), ancak uygulamanızın kodunda doğrudan kullanılmalıdır (CUSTOM_TAG).
   - Özel etiketler büyük/küçük harf duyarlıdır.
   - Özel etiketler, Adapty'deki ürün bilgileri için ayrılmış [Etiket Değişkenleri](paywall-builder-tag-variables) ile çakışamaz.

  <img src="/assets/shared/img/1ea0b95-adding_custom_tag.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. Özel etiketi ekledikten sonra mutlaka bir yedek satır girin. Bu yedek metin, uygulamanız belirli bir özel etiketi tanımadığında görüntülenir; böylece kullanıcılar etiketi kod olarak görmez. Yedek metin, özel etiketi içeren tüm satırın yerini alır.

   

  <img src="/assets/shared/img/4d43874-custom_tag_fallback.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Mobil uygulamanızda özel etiketleri kullanma \{#how-to-use-custom-tags-in-your-mobile-app\}

Mobil uygulamanızda özel etiketleri kullanmak için bir `tagResolver` nesnesi oluşturun; bu, özel etiketleri paywall oluşturulurken onların yerini alacak string değerleriyle eşleştiren bir sözlük ya da haritadır. İşte bir örnek:

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

```swift showLineNumbers
let tagResolver = [
    "USERNAME": "John",
] 
  
let paywallConfiguration = try await AdaptyUI.getPaywallConfiguration(
    forPaywall: paywall,
    tagResolver: tagResolver // or any other AdaptyTagResolver protocol implementation
)
```
</TabItem>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
val customTags = mapOf("USERNAME" to "John")
val tagResolver = AdaptyUiTagResolver { tag -> customTags[tag] }
```
</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
Map<String, String> customTags = new HashMap<>();
customTags.put("USERNAME", "John");
AdaptyUiTagResolver tagResolver = customTags::get;
```
</TabItem>

<TabItem value="kmp" label="Kotlin Multiplatform" default>

```kotlin showLineNumbers
val customTags = mapOf(
    "USERNAME" to "John",
    "CUSTOM_TAG_NAME" to "Walter White",
    "CUSTOM_TAG_PHONE" to "+1 234 567890"
)

val view = AdaptyUI.createPaywallView(
    paywall = paywall,
    customTags = customTags
)
```
</TabItem>

<TabItem value="flutter" label="Flutter" default>

```dart showLineNumbers
final customTags = {
  'USERNAME': 'John',
};

try {
final view = await AdaptyUI().createPaywallView(
    paywall: paywall,
    customTags: customTags,
);
} on AdaptyError catch (e) {
  // handle the error
} catch (e) {
  // handle the error
}
```
</TabItem>

<TabItem value="unity" label="Unity (C#)" default>

```csharp showLineNumbers
var parameters = new AdaptyUICreateViewParameters()
  .SetCustomTags(
    new Dictionary<string, string> {
      { "CUSTOM_TAG_NAME", "John Appleseed" }
    }
  )

AdaptyUI.CreateView(paywall, parameters, (view, error) => {
  // handle the result
});
```

</TabItem>

<TabItem value="rn" label="React Native" default>

```typescript showLineNumbers
let customTags: Record<string, string> = { "USERNAME": "John" }
//and then you can pass it to createPaywallView as follows:
view = await createPaywallView(paywall, { customTags })
```

</TabItem>
</Tabs>

Bu örnekte `USERNAME`, Adapty kontrol panelinde `<USERNAME/>` olarak girdiğiniz özel bir etikettir. `tagResolver`, uygulamanızın bu özel etiketi dinamik olarak belirtilen değerle—örneğin `John` ile—değiştirmesini sağlar.

`tagResolver`'ı paywall'ınızı göstermeden hemen önce oluşturmanızı ve doldurmanızı öneririz. Hazır olduğunda, paywall'ı göstermek için kullandığınız AdaptyUI metoduna aktarın. Paywall'ların nasıl gösterileceği hakkında daha fazla bilgiyi şu platformlar için okuyabilirsiniz: [iOS](ios-present-paywalls), [Android](android-present-paywalls), [React Native](react-native-present-paywalls), [Flutter](flutter-present-paywalls) veya [Unity](unity-present-paywalls).