---
title: "Değişkenler"
description: "Flow'larınızda dinamik veri görüntülemek için değişkenleri kullanın."
---

Değişkenler, flow'larınızda dinamik içerik görüntülemenizi sağlar — ürün fiyatlandırması, teklif detayları ve her kullanıcının bağlamına göre güncellenen diğer veriler. Öğe görünürlüğünü kontrol etmek ve ekran içeriğini kişiselleştirmek için kullanın.

Değişken panelini açmak için sol paneldeki **&#123; &#125;** simgesine tıklayın. Panelde üç sekme bulunur:
- **[Özel](#custom-variables)**: Kendiniz oluşturup yönettiğiniz değişkenler.
- **[Ürün](#product-variables)**: Mağazadan yerelleştirilmiş ürün ve teklif verilerini çeken yerleşik değişkenler.
- **[Element](#element-variables)**: Tuvaldeki element durumlarına bağlı değişkenler.
## Özel değişkenler \{#custom-variables\}
### Özel değişken oluşturma \{#create-a-custom-variable\}

1. Değişken panelinde **+** butonuna tıklayın.
2. Değişken için bir ad girin.
3. Tür seçin: String, Number veya Boolean.
4. Başlangıç değeri belirleyin. Bu, flow başladığında değişkenin alacağı değerdir.
5. **Create variable** butonuna tıklayın.

:::tip
İlgili değişkenleri gruplamak için adlarda nokta kullanabilirsiniz — örneğin `user.score` veya `user.goal`.
:::

### Bir etkileşim aracılığıyla değişken güncelleme \{#update-a-variable-via-an-interaction\}

:::link
Daha fazla bilgi için [Eylemler](onboarding-actions) makalesine bakın.
:::

Herhangi bir elemana **Set up variables** eylemi ekleyerek çalışma zamanında bir değişken değerini güncelleyebilirsiniz.

1. Tuvalde bir eleman seçin.
2. **Interactions** sekmesinde **Add trigger** seçeneğine tıklayın.
3. **On tap** seçeneğini belirleyin ve **Add action** seçeneğine tıklayın. **Action type** açılır menüsünden **Set up variables** seçeneğini belirleyin.
4. **Add variable** seçeneğine tıklayın. Değişkeni seçin ve yeni değeri belirleyin.
:::tip
Örneğin, bir kullanıcının hangi test sorusu cevabını seçtiğine göre `user.goal` değişkenine farklı bir değer atayabilir, ardından bu değişkeni kullanarak kullanıcıyı farklı bir ekrana yönlendirebilirsiniz.
:::

## Ürün değişkenleri \{#product-variables\}

Ürün değişkenleri, yerelleştirilmiş verileri doğrudan uygulama mağazalarından çeker. Yerelleştirilmiş fiyatları, başlıkları ve teklif ayrıntılarını görüntülemek için metin alanlarında, ya da teklif uygunluğuna göre içerik gösterip gizlemek için koşullarda kullanabilirsiniz.
| Değişken | Açıklama | Örnek |
| :--- | :--- | :--- |
| `prod_title` | Ürünün yerelleştirilmiş başlığı | Premium Subscription |
| `prod_price` | Bir faturalandırma dönemi için yerelleştirilmiş fiyat | $9.99 |
| `prod_price_per_day` | Abonelik fiyatının faturalandırma dönemindeki günlere bölünmüş hali. Abonelik olmayanlar için boş. | $0.33 |
| `prod_price_per_week` | Abonelik fiyatının faturalandırma dönemindeki haftalara bölünmüş hali. Abonelik olmayanlar için boş. | $2.33 |
| `prod_price_per_month` | Abonelik fiyatının bir aya göre düzenlenmiş hali. Abonelik olmayanlar için boş. | $9.99 |
| `prod_price_per_year` | Abonelik fiyatının bir yıla göre düzenlenmiş hali. Abonelik olmayanlar için boş. | $119.88 |
| `offer_price` | Başlangıç veya promosyon teklifinin yerelleştirilmiş fiyatı. Kullanıcı herhangi bir teklife uygun değilse boş. | $0.99 |
| `offer_billing_period` | Bir teklifin yerelleştirilmiş faturalandırma dönemi. Deneme ve peşin ödeme teklifleri için `offer_full_duration` ile aynıdır. Kullanıcı uygun değilse boş. | 1 week |
| `offer_full_duration` | Bir teklifin yerelleştirilmiş toplam süresi. Kullanıcı uygun değilse boş. | 1 month |
| `is_free_trial` | Kullanıcı ücretsiz deneme içeren bir teklife uygunsa `true` döndürür. | true |
| `is_pay_up_front` | Kullanıcı peşin ödeme teklifine uygunsa `true` döndürür. | true |
| `is_pay_as_you_go` | Kullanıcı kullandıkça öde teklifine uygunsa `true` döndürür. | true |
:::tip
Kullanıcının uygun olduğu teklife göre öğeleri göstermek veya gizlemek için `is_free_trial`, `is_pay_up_front` ve `is_pay_as_you_go`'yu koşullu görünürlükle kullanın. Örneğin, yalnızca `is_free_trial` `true` olduğunda ücretsiz deneme zaman çizelgesini gösterin.
:::

Teklif değişkenlerinin değerleri, kullanıcının uygun olduğu teklif türüne göre değişir. Bunu açıklamak için, haftalık $5 fiyatlı "Premium Subscription" adlı bir aboneliği ve üç olası teklifi ele alalım:
- **Pay As You Go**: İlk 3 hafta $3 (haftalık faturalandırılır), sonra $5/hafta.
- **Pay Up Front**: İlk 3 hafta $8 (hemen faturalandırılır), sonra $5/hafta.
- **Free Trial**: İlk hafta ücretsiz, sonra $5/hafta.

Bu örnekte, `prod_title` "Premium Subscription" değerini, `prod_price` ise $5 değerini döndürür. Teklif değişkenlerinin değerleri, kullanıcının hangi teklife uygun olduğuna bağlıdır:

| Değişken | Pay As You Go | Pay Upfront | Free Trial |
| :--- | :--- | :--- | :--- |
| `offer_price` | $3 | $8 | $0 |
| `offer_billing_period` | 1 hafta | 3 hafta | 1 hafta |
| `offer_full_duration` | 3 hafta | 3 hafta | 1 hafta |
Peşin Ödeme ve Ücretsiz Deneme teklifleri için `offer_billing_period` ve `offer_full_duration` aynı değeri döndürür. Haftalık Öde teklifinde ise fatura dönemi bir hafta, tam süre üç hafta olduğundan bu iki değer birbirinden farklıdır.

:::note
Teklifler ve yapılandırma hakkında daha fazla bilgi için [Teklifler](offers) bölümüne bakın.
:::
## Eleman değişkenleri \{#element-variables\}

Eleman değişkenleri, kullanıcının yaptığı seçimleri yakalar; testlerde ne seçtiklerini, hangi sekmede olduklarını ve deneme süresi toggle'ının açık olup olmadığını kaydeder.

Eleman değişkeni türleri gruba göre değişir:
- **Tekli seçim**: Tekli seçim testleri ve sekmeler:
    - `selected_id`: Koşullarda kullanılacak eleman ID'si
    - `selected_title`: Dinamik metinde kullanılacak eleman başlığı
- **Çoklu seçim**: Çoklu seçim testleri:
    - `selected_ids`: Koşullarda kullanılacak eleman ID'leri
    - `selected_titles`: Dinamik metinde kullanılacak eleman başlıkları
- **Toggle**: Deneme süresi toggle'ı:
    - `is_selected`: Boolean değeri
Yaygın kullanım senaryoları şunlardır:
- Deneme sürümü geçiş düğmesinin etkin olup olmadığına göre farklı içerik gösterme.
- Kullanıcıları quiz yanıtlarına göre [farklı ekranlara yönlendirme](onboarding-navigation-branching)
## Metinde değişken kullanma \{#use-variables-in-text\}

Bir metin öğesine değişken eklemek için:

1. Canvas üzerinde bir metin öğesi seçin.
2. **Design** sekmesinde **Content** alanını bulun ve metninizi yazın.
3. Alandaki **&#123; &#125;** simgesine tıklayın.
4. Listeden bir değişken seçin.

:::tip
Değişkenleri diğer öğelerde de kullanabilirsiniz:
- Bağlantıları ve uyarıları dinamik hale getirmek için değişken kullanın
- Değişkenlere dayalı dinamik koşullar oluşturun. Örneğin, koşul şu şekilde olabilir: `if experience.current > experience.target, navigate to...`
:::

### Stil değişkenleri \{#style-variables\}

Bir değişkene tek başına zengin metin biçimlendirmesi uygulayamazsınız. **Content** alanında bir değişken seçip kalın, italik, altı çizili, üzeri çizili veya renk değişikliği uygulamanın herhangi bir etkisi olmaz.

Zengin metin ayarları yalnızca tüm metin bloğuna uygulanır. Metni biçimlendirmek için **Design** sekmesindeki **Typography** bölümünü kullanın ya da kayıtlı bir [metin stili](onboarding-text#set-up-text-styles) uygulayın.
### Ekranlar arasında içerik yeniden kullanımı \{#reuse-content-across-screens\}

Flow'unuzda bazı içerikler tekrar eder — "Continue" gibi bir düğme etiketi, tekrarlayan bir eylem çağrısı veya birden fazla ekranda gösterilen bir sorumluluk reddi metni. Aynı durum, birden fazla ekranda yeniden kullanılan özellik açıklamaları gibi daha uzun metinler için de geçerlidir. Bu içerikleri her elemana ayrı ayrı yazmak yerine, özel bir değişkende saklayın. Bu yöntem, farklı kullanıcıları farklı ekranlara yönlendirirken tutarlı bir ifade kullanmak istediğinizde işinizi kolaylaştırır.
1. String türünde bir [özel değişken oluşturun](#create-a-custom-variable) ve başlangıç değerini yeniden kullanmak istediğiniz metne ayarlayın. Örneğin, adını `button.navigation` olarak belirleyip değerini `Continue` yapabilirsiniz.
   
2. Bu değişkeni, metnin görünmesini istediğiniz her öğenin **Content** alanına ekleyin.
Metni her yerde değiştirmek için değişkenin başlangıç değerini bir kez güncelleyin. Değişkeni kullanan her öğe otomatik olarak güncellenir, böylece her ekranı tek tek düzenlemek zorunda kalmazsınız.