> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kişiselleştirme

> OneSignal'de doğru kişiselleştirme yöntemini seçin. Properties, Custom Events, API custom_data, Data Feeds ve CSV yüklemelerini karşılaştırarak Liquid sözdizimi ile dinamik mesajlar gönderin.

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/71gtwxKWlN8?si=mlgmP6eE3652r_cX" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

Kişiselleştirme, kullanıcının adı, sepet öğeleri, hesap bakiyesi, rezervasyon detayları veya tek kullanımlık şifre gibi dinamik veriler içeren mesajlar göndermenizi sağlar.

Bu rehber, aşağıdaki kriterlere göre doğru kişiselleştirme yöntemini seçmenize yardımcı olur:

* Verilerinizin nerede bulunduğu
* Kalıcı olup olmaması gerektiği
* Mesajın nasıl tetiklendiği

***

## Kişiselleştirme nasıl çalışır

OneSignal'de kişiselleştirme iki bölümden oluşur:

1. **Liquid sözdizimi** – değerlerin mesajınızda nasıl işleneceğini tanımlar
2. **Bir veri kaynağı** – değerin nereden geldiğini belirler

Gönderim anında, OneSignal seçilen veri kaynağını kullanarak Liquid değişkenlerinizi çözümler.

<Info>
  Liquid, biçimlendirme ve mantığı kontrol eder (değişkenler, döngüler, koşullar). Veri kaynağı ise hangi değerlerin kullanılabilir olduğunu belirler.
</Info>

**Örnek:**

```liquid Liquid theme={null}
Hi {{ user.tags.first_name }},

Your verification code is {{ message.custom_data.otp }}.
```

* `user.tags.first_name` saklanan bir property'dir
* `message.custom_data.otp` API `custom_data` alanı üzerinden iletilir

***

## Mesaj türüne göre desteklenen alanlar

<Tabs>
  <Tab title="E-posta">
    * Konu, Yanıtla ve Ön başlık
    * Mesaj Gövdesi
    * HTML bloklarında görüntü değiştirme. Örnek: `<img src="{{image_url}}"/>`
    * URL'ler, Mail to ve diğer alanlar gibi Düğme bloğu eylemleri.
  </Tab>

  <Tab title="Push">
    * Başlık (`headings`), Alt Başlık, Gövde (`contents`)
    * Görüntü URL'si
    * Başlatma URL'si. Örnek: `https://example.com/{{last_category_viewed}}`
    * Ek `data` Liquid söz dizimini desteklemez.
  </Tab>

  <Tab title="SMS">
    * Mesaj Gövdesi (`contents`)
  </Tab>

  <Tab title="Uygulama İçi Mesajlar">
    <Warning>
      Şu anda yalnızca Etiket değiştirme desteklenmektedir.

      Kullanıcı yeni bir oturum başlatmak için uygulamayı açmadan önce etiket ayarlanmış olmalıdır. Kullanılabilir etiketler [`getTags` yönteminde](./mobile-sdk-reference#gettags) bulunur.
    </Warning>

    **Blok düzenleyici:**

    * Etiket değiştirme Metin, Düğme, Görüntü Bloklarında çalışır.

    **HTML düzenleyici:**

    * Etiket değiştirme şunlarda çalışır:
      * Başlık `<h*>` ve `<p>` etiketleri. Örnek: `<h2>Hello {{first_name}}!</h2>`
      * Öğe nitelikleri: `["src", "href", "action", "data"]`. Örnek: `<img src="{{image_url}}"/>`

    <Note>
      Daha fazla ayrıntı ve örnek için [Uygulama içi mesaj JavaScript API'leri](./in-app-message-api)'ne bakın.
    </Note>
  </Tab>

  <Tab title="Live Activities">
    * `event_updates`, `contents` ve `headings` özellikleri içinde.
  </Tab>
</Tabs>

***

## Veri kaynakları

OneSignal, kişiselleştirme için beş veri kaynağını destekler. Kullanım durumunuza uygun kaynağı belirlemek için aşağıdaki tabloyu kullanın, ardından uygulama rehberi için ayrıntılı bölümü okuyun.

| Veri kaynağı                                    | Nedir                                                           | Ne zaman kullanılmalı                                                         | Kalıcı          | Journey'lerde kullanılabilir |
| ----------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------- | ---------------------------- |
| [**Properties**](#properties)                   | Tag'ler, External ID, abonelik verileri, uygulama alanları      | OneSignal'de saklanan yeniden kullanılabilir değerler (isim, plan, tercihler) | Evet            | Evet                         |
| [**Custom Events**](#custom-events)             | Journey girişinde veya Wait Until'de yakalanan olay özellikleri | Journeys içinde davranışsal kişiselleştirme                                   | Olay başına     | Yalnızca Journey             |
| [**API `custom_data`**](#api-custom_data)       | Create Message API'sinde iletilen anahtar-değer çiftleri        | Tek seferlik veya hassas değerler (OTP, güvenli bağlantılar, sepet öğeleri)   | Hayır           | Hayır                        |
| [**Data Feeds**](#data-feeds)                   | Gönderim anında yapılan canlı API çağrısı                       | Sık değişen değerler (fiyatlandırma, envanter, hesap bakiyesi)                | Hayır           | Evet                         |
| [**Dynamic Content CSV**](#dynamic-content-csv) | Panoya yüklenen CSV                                             | Alıcı başına içerikli toplu kampanyalar                                       | Gönderim başına | Hayır                        |

<Warning>
  **Kaçınılması gereken yaygın hatalar**

  * OTP'ler veya doğrulama kodları gibi tek seferlik değerler için Properties (Tags) kullanmak — bunun yerine `custom_data` kullanın
  * `custom_data`'nın Journeys'de veya gelecekteki mesajlarda kullanılabilir olmasını beklemek — yalnızca mevcut API isteği için mevcuttur
  * Custom Event özelliklerinin, olay tetiklemeli Journey girişi veya Wait Until adımı dışında kullanılabilir olduğunu varsaymak
  * Nadiren değişen statik veriler için Data Feeds kullanmak — bunun yerine Properties kullanın
</Warning>

### Properties

Properties; kullanıcı Tag'leri, External ID, abonelik verileri ve uygulama düzeyindeki alanları içerir.

Bunlar:

* Kalıcıdır
* Yeniden kullanılabilir
* Mesajlar, şablonlar, [Journey webhook'ları](./journeys-webhook) ve [Event Streams](./event-streams) genelinde kullanılabilir.

**Properties ne zaman kullanılmalı:**

* Değer OneSignal'de mevcut olduğunda
* Değer kalıcı olduğunda
* Kampanyalar genelinde yeniden kullandığınızda

<Card title="Properties ile kişiselleştirme" icon="tag" href="./personalization-properties-and-tags">
  Saklanan kalıcı property verilerine nasıl referans verileceğini öğrenin.
</Card>

***

### Custom Events

[Custom Events](./custom-events), olay özelliklerini kullanarak [Journeys](./journeys-overview) içindeki mesajları kişiselleştirebilir.

Bir olay **Journey'yi başlattığında** veya **Wait Until koşuluyla eşleştiğinde**, OneSignal bu olayı saklar ve özellikleri Liquid kullanılarak mesaj şablonlarında referans alınabilir.

**Custom Events ne zaman kullanılmalı:**

* Journeys ile olay tetiklemeli mesajlarda
* Mesajın olaya özgü verileri yansıtması gerektiğinde

<Warning> Yalnızca Journey girişini veya Wait Until adımını tetikleyen olaylar kişiselleştirme için saklanır. Bu anların dışında gönderilen olaylar Journey mesajlarında kullanılamaz. </Warning>

<Card title="Custom Event kişiselleştirme" icon="bolt" href="./personalization-custom-event">
  Journeys'de olay özelliklerini kullanma rehberi.
</Card>

***

### API `custom_data`

[Create Message API](/reference/create-message)'deki `custom_data` alanı, backend'inizden mesaja özel değerler göndermenizi sağlar.

Bu veriler:

* Yalnızca geçerli istek için var olur
* OneSignal'de saklanmaz
* Journeys'de kullanılamaz

**`custom_data` ne zaman kullanılmalı:**

* Tek seferlik veya hassas değerler gönderirken (OTP, güvenli bağlantılar)
* Diziler iletirken (sepet öğeleri, sipariş satırları, skor tablosu puanları)
* İşlemsel veya API ile tetiklenen mesajlar gönderirken

<Card title="API custom_data ile kişiselleştirme" icon="code" href="./personalization-api-custom-data">
  Geçici kişiselleştirme verilerini nasıl ileteceğinizi öğrenin.
</Card>

***

### Data Feeds

[Data Feeds](./data-feeds), gönderim anında API'nizi çağırır ve yanıtı mesajınıza enjekte eder.

**Data Feeds ne zaman kullanılmalı:**

* Teslimat anında en güncel değere ihtiyacınız olduğunda
* Veriler backend'inizde bulunduğunda
* Değer gönderimler arasında değişebileceğinde

<Card title="Data Feeds" icon="cloud-arrow-up" href="./data-feeds">
  Gönderim anında mesajlara gerçek zamanlı backend verisi çekin.
</Card>

***

### Dynamic Content CSV

OneSignal panosuna bir CSV dosyası yükleyin ve değerlerini Liquid kullanarak referans verin.

**CSV ne zaman kullanılmalı:**

* Toplu kampanyanın farklı bölümlerini her alıcı için özelleştirirken
* Her alıcı için çeviriler veya özel veriler CSV dosyasına aktarılabilir olduğunda
* API kullanmak istemediğinizde

<Card title="Dynamic Content CSV" icon="file-csv" href="./dynamic-content">
  CSV yüklemeleri ile pano kampanyalarını kişiselleştirin.
</Card>

***

## Ayrıntılı rehberler

Adım adım uygulama detayları ve ileri düzey örnekler için aşağıdaki rehberleri kullanın.

<Columns cols={2}>
  <Card title="Liquid sözdizimi kullanımı" icon="droplet" href="./using-liquid-syntax">
    Liquid kullanarak mesajlara dinamik veri eklemeyi öğrenin. Değişkenler, koşullar, döngüler, filtreler, biçimlendirme ve yaygın kişiselleştirme kalıplarını kapsar.
  </Card>

  <Card title="Data Feeds" icon="cloud-arrow-up" href="./data-feeds">
    Gönderim anında kendi API'lerinizden gerçek zamanlı veri çekin. Mesaj içeriği bakiye, müsaitlik veya fiyatlandırma gibi canlı backend değerlerine bağlıyken Data Feeds kullanın.
  </Card>

  <Card title="Custom Events kişiselleştirme" icon="bolt" href="./personalization-custom-event">
    Kullanıcılar bir Journey'ye girdiğinde veya ilerlediğinde yakalanan olay özelliklerini kullanarak Journey mesajlarını kişiselleştirin. Davranışsal ve olay odaklı iş akışları için idealdir.
  </Card>

  <Card title="Properties ve Tags" icon="tag" href="./personalization-properties-and-tags">
    Mesajlar, şablonlar, Journey webhook'ları ve Event Streams genelinde içeriği kişiselleştirmek için saklanan kullanıcı, abonelik, mesaj ve uygulama özelliklerini kullanın.
  </Card>

  <Card title="API custom_data" icon="code" href="./personalization-api-custom-data">
    Create Message API kullanarak backend'inizden mesaj başına ve geçici veriler iletin. OTP'ler, sepetler, diziler ve toplu işlemsel kişiselleştirme için en uygunudur.
  </Card>

  <Card title="Dynamic Content CSV" icon="file-csv" href="./dynamic-content">
    Kampanyaları ölçekli olarak kişiselleştirmek için panoya CSV dosyaları yükleyin. Her satır bir alıcıya eşlenir ve Liquid kullanılarak referans alınabilir.
  </Card>
</Columns>

### Öğreticiler

Bu rehberler, kişiselleştirmenin pratikte nasıl uygulanacağını gösterir.

<Columns cols={2}>
  <Card title="Doğrulama, Magic Link ve OTP" icon="key" href="./example-verification-magic-link-otp">
    Tek kullanımlık şifreler, magic link'ler veya API odaklı kişiselleştirme ile özel URL'ler kullanarak güvenli doğrulama mesajları gönderin.
  </Card>

  <Card title="Terk edilmiş sepet Journey'si" icon="cart-shopping" href="./abandoned-cart">
    Sepet aktivitesini algılayan, etkisizliği bekleyen, kişiselleştirilmiş hatırlatma gönderen ve satın alma sonrası kullanıcıyı hemen çıkaran otomatik bir Journey oluşturun.
  </Card>

  <Card title="Rezervasyon onayları" icon="calendar" href="./booking-confirmations">
    Gerçek zamanlı rezervasyon durumuna dayalı olarak Custom Events, Journeys ve Data Feeds kullanarak rezervasyon onay ve kurtarma mesajları gönderin.
  </Card>

  <Card title="İşlemsel mesajlar" icon="receipt" href="./transactional-messages">
    API'ler ve otomasyon kullanarak kanallar genelinde makbuz, uyarı, onay ve diğer işlemsel mesajları nasıl göndereceğinizi öğrenin.
  </Card>

  <Card title="Uygulama içi kişiselleştirme örnekleri" icon="mobile" href="./personalization-properties-and-tags">
    Farklı kullanıcılar ve segmentler için uygulama içi mesajları kişiselleştirmek üzere Tags ve Properties kullanımının pratik örneklerini inceleyin.
  </Card>
</Columns>
