> ## 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.

# Özelliklerle kişiselleştirme

> Önceden tanımlanmış özellikler ve özel veri etiketleri kullanarak OneSignal mesajlarını kişiselleştirin. Liquid sözdizimi ile e-posta, push, SMS ve webhook'lar genelinde kullanıcı, abonelik, journey, mesaj, şablon ve uygulama düzeyindeki verilere erişin.

Mesajları ve teslimat yüklerini [Liquid sözdizimi](./using-liquid-syntax) ile kişiselleştirmek için özellikleri (kullanıcı etiketleri ve External ID gibi tanımlayıcılar gibi) kullanın.

OneSignal, Liquid yer tutucularını **gönderim anında** işler ve kullanıcı, abonelik, Journey, mesaj, şablon, uygulama veya organizasyon üzerinde zaten depolanmış verileri kullanır. Bu verileri mesajları, [Journey webhook'larını](./journeys-webhook) ve [Event Streams](./event-streams) verilerini kişiselleştirmek için kullanabilirsiniz.

***

## Özellik kişiselleştirmesi ne zaman kullanılır

OneSignal'da zaten mevcut olan verileri kullanarak gönderim anında içerik oluşturmak için özellik kişiselleştirmesini kullanın—en yaygın olarak kullanıcı etiketleri, External ID ve e-posta veya telefon numarası gibi abonelik alanları.

Bu doğru yaklaşımdır şu durumlarda:

* Veri zaten OneSignal'da depolanmış olduğunda
* Mesaj gönderildiğinde Liquid yer tutucularının otomatik olarak değiştirilmesini istediğinizde
* Teslimat anında yeni veri çekmenize veya hesaplamanıza gerek olmadığında

<Note>
  Değerin gönderim anında çekilmesi veya hesaplanması gerekiyorsa (örneğin, canlı fiyatlandırma veya envanter), [Data Feeds](./data-feeds) veya [`custom_data` ile API](./personalization-api-custom-data) kullanın.

  Değer, bir kullanıcının bir Journey'ye girmesine veya ilerlemesine neden olan olaydan geliyorsa, [Custom Event kişiselleştirme](./personalization-custom-event) kullanın.
</Note>

### Kanal desteği

Her kanal belirli özellik türlerini ve alanlarını destekler.

<Tabs>
  <Tab title="E-posta">
    Şu alanlarda [Kullanıcı ve Abonelik özelliklerini](#user-&-subscription-properties) destekler:

    * Konu, Yanıtla ve Ön Başlık
    * Mesaj gövdesi
    * HTML özellikleri (örneğin: `<img src="{{ image_url }}" />`)
    * Buton eylemleri (URL'ler, mailto vb.)
  </Tab>

  <Tab title="Push">
    Şu alanlarda [Kullanıcı ve Abonelik özelliklerini](#user-&-subscription-properties) destekler:

    * Başlık (`headings`), Alt Başlık, Gövde (`contents`)
    * Görsel URL'si
    * Açılış URL'si: `https://example.com/{{last_category_viewed}}`

    <Warning>
      `data` (ek veri) alanı Liquid sözdizimini desteklememektedir.
    </Warning>
  </Tab>

  <Tab title="SMS">
    Şu alanlarda [Kullanıcı ve Abonelik özelliklerini](#user-&-subscription-properties) destekler:

    * Mesaj gövdesi (`contents`)
  </Tab>

  <Tab title="Uygulama içi mesajlar">
    Yalnızca etiket değiştirme desteklenir. Özellikler, Custom Events ve diğer veri kaynakları şu anda kullanılamamaktadır.

    * Etiketler, kullanıcının yeni bir uygulama oturumu başlatmasından önce ayarlanmış olmalıdır.
    * Test gönderimi akışları kullanıldığında etiket değiştirme görüntülenmeyebilir.

    **Blok düzenleyici:** Metin, Buton ve Görsel blokları
    **HTML düzenleyici:** Metin öğeleri ve özellikleri (`src`, `href`, `action`, `data`)
  </Tab>

  <Tab title="Live Activities">
    Şu alanlarda [Kullanıcı ve Abonelik özelliklerini](#user-&-subscription-properties) destekler:

    * `event_updates`
    * `contents`
    * `headings`
  </Tab>
</Tabs>

***

## Özellik kişiselleştirmesi nasıl çalışır

OneSignal, Liquid yer tutucularını mesaj gönderilen kullanıcı ve abonelik için karşılık gelen özellik değerleriyle değiştirir.

```liquid Liquid theme={null}
Hi {{ first_name | default: "friend" }}!
Congrats on reaching level {{ level | default: "1" }}!
```

Bir kullanıcının `first_name: Jon` ve `level: 5` etiketleri varsa şunu görür:

```liquid Text theme={null}
Hi Jon!
Congrats on reaching level 5!
```

## Bir kullanıcının ayarlanmış etiketi yoksa, bunun yerine varsayılan değerleri görür.

## Özellik Liquid nesneleri referansı

Liquid'de kullanılabilir tam nesne ve alan adlarını aramak için bu bölümü kullanın.

### Kullanıcı ve Abonelik özellikleri

Kullanıcı düzeyindeki veriler için `user` nesnesini kullanın. E-posta adresi veya telefon numarası gibi kanala özel değerlere ihtiyaç duyduğunuzda `subscription` nesnesini kullanın.

<ParamField body="user.tags">
  Kullanıcının [Tags](./add-user-data-tags) değerleri. Etiketlere çeşitli şekillerde başvurabilirsiniz:

  * `key` değerini doğrudan kullanın veya anahtarı `tags` nesnesinden sonra yerleştirin
  * Ayarlanmış örnek etiketler: `first_name: Jon, level: 5`

  ```liquid Liquid theme={null}
  Your first name is {{ first_name }}.
  Your first name is {{ user.tags.first_name }}.
  Your level is {{ level }}.
  Your level is {{ user.tags.level }}.
  ```

  * Etiketler üzerinde for döngüsü sözdizimi ile yineleme yapın. Bu örnek, virgüllerle ayrılmış anahtar:değer çiftlerini çıktı olarak verir.

  ```liquid Liquid theme={null}
  {% for tag in user.tags %}
  {{ tag[0] }}: {{ tag[1] }}
  {% unless forloop.last %},
  {% endunless %}{% endfor %}
  ```
</ParamField>

<ParamField body="user.external_id">
  Kullanıcının [External ID](./users#external-id) değeri.

  ```liquid Liquid theme={null}
  Your user ID is {{ user.external_id }}.
  Your user ID is {{ subscription.external_id }}.
  ```
</ParamField>

<ParamField body="user.onesignal_id">
  Kullanıcının [OneSignal ID](./users) değeri.

  ```liquid Liquid theme={null}
  Your OneSignal user ID is {{ user.onesignal_id }}.
  ```
</ParamField>

<ParamField body="subscription.email">
  Mesaj gönderilen e-posta Subscription'ının e-posta adresi.

  ```liquid Liquid theme={null}
  Thanks for subscribing with email {{ subscription.email }}.
  ```
</ParamField>

<ParamField body="subscription.phone_number">
  Mesaj gönderilen SMS Subscription'ının telefon numarası.

  ```liquid Liquid theme={null}
  Thanks for subscribing with phone number {{ subscription.phone_number }}.
  ```
</ParamField>

<ParamField body="user.language">
  Kullanıcının dil kodu.

  ```liquid Liquid theme={null}
  Preferred language: {{ user.language }}
  Preferred language: {{ subscription.language }}
  ```
</ParamField>

<ParamField body="user.subscriptions">
  Kullanıcının [Subscriptions](./subscriptions) değerleri.

  * Abonelikler üzerinde for döngüsü sözdizimi ile yineleme yapın.
  * Bu örnek, her aboneliğin token ve ID değerlerini virgüllerle ayırarak çıktı olarak verir.

  ```json JSON theme={null}
  {
    "subscriptions": "{% for subscription in user.subscriptions %}{% if subscription.subscription_token %}{{ subscription.subscription_token }}: {{ subscription.id }}{% unless forloop.last %}, {% endunless %}{% endif %}{% endfor %}"
  }
  ```
</ParamField>

<ParamField body="subscription.unsubscribe_token">
  [Token ile E-posta Aboneliğinden Çıkma API'si](/reference/unsubscribe-with-token) ile kullanılan token.

  ```liquid theme={null}
  Unsubscribe: https://your-domain.com/unsubscribe?token={{ subscription.unsubscribe_token }}
  ```
</ParamField>

### Journey özellikleri

`journey` nesnesi, Journey adına başvurmanızı veya Journey için [Custom Event Kişiselleştirme](./personalization-custom-event) verilerine erişmenizi sağlar.

<ParamField body="journey.name">
  Journey'nin adı.

  ```json JSON theme={null}
  {
    "journey_name": "{{ journey.name }}"
  }
  ```
</ParamField>

### Mesaj özellikleri

`message` nesnesi, [Event Streams](./event-streams) için faydalı olabilecek mesaj ID'sine, adına ve şablon ID'sine erişim sağlar; ayrıca arka ucunuzdan gönderilen mesajları kişiselleştirmek için [custom\_data](./personalization-api-custom-data) verilerine erişim sunar.

<ParamField body="message.id">
  OneSignal tarafından belirlenen mesaj ID'si.

  ```json theme={null}
  {
    "message_id": "{{ message.id }}"
  }
  ```
</ParamField>

<ParamField body="message.name">
  Gönderen tarafından belirlenen mesajın adı.

  ```json theme={null}
  {
    "message_name": "{{ message.name }}"
  }
  ```
</ParamField>

<ParamField body="message.template_id">
  OneSignal tarafından belirlenen şablon ID'si.

  ```json theme={null}
  {
    "template_id": "{{ message.template_id }}"
  }
  ```
</ParamField>

### Şablon özellikleri

`template` nesnesi, mesajı göndermek için kullanılan [Template](./templates) hakkında şablon ID'si ve adına erişim sağlar. Bu, [Event Streams](./event-streams) için faydalı olabilir.

<ParamField body="template.id">
  OneSignal tarafından belirlenen şablon ID'si.

  ```json theme={null}
  {
    "template_id": "{{ template.id }}"
  }
  ```
</ParamField>

<ParamField body="template.name">
  Gönderen tarafından belirlenen şablonun adı.

  ```json theme={null}
  {
    "template_name": "{{ template.name }}"
  }
  ```
</ParamField>

***

### Uygulama ve organizasyon özellikleri

`app` ve `org` nesneleri, mesajı gönderen [Uygulama ve Organizasyon](./apps-organizations) hakkında bilgi sağlar. Bu, [Event Streams](./event-streams) için faydalı olabilir.

<ParamField body="app.id">
  OneSignal tarafından belirlenen uygulama ID'si.

  ```json theme={null}
  {
    "app_id": "{{ app.id }}"
  }
  ```
</ParamField>

<ParamField body="app.name">
  Uygulama sahibi tarafından belirlenen uygulamanın adı.

  ```json theme={null}
  {
    "app_name": "{{ app.name }}"
  }
  ```
</ParamField>

<ParamField body="org.id">
  OneSignal tarafından belirlenen Organization ID'si.

  ```json theme={null}
  {
    "org_id": "{{ org.id }}"
  }
  ```
</ParamField>

<ParamField body="org.name">
  Organization sahibi tarafından belirlenen Organization'ın adı.

  ```json theme={null}
  {
    "org_name": "{{ org.name }}"
  }
  ```
</ParamField>

***

## Örnek: Etiketlerle terk edilmiş sepet

Bu örnek, kullanıcı etiketlerini kullanarak terk edilmiş sepet mesajlarının nasıl kişiselleştirileceğini gösterir. [Terk Edilmiş Sepet öğreticisi](./abandoned-cart) üzerine inşa edilmiştir.

**Ayarlanmış örnek etiketler:**

```json JSON theme={null}
{
  "cart_updated": "unix_timestamp_seconds",
  "product_image": "https://i.imgur.com/ssPCfbC.png",
  "product_name": "24 Pack of Acorns",
  "product_quantity": "1",
  "product_price": "$12.99",
  "cart_items_count": "4",
  "cart_url": "https://yourdomain.com/cart"
}
```

### E-posta şablonu

<Steps>
  <Step title="Yeni bir e-posta şablonu oluşturun">
    **Messages > Templates > New Email Template** bölümüne gidin ve Sürükle ve Bırak Düzenleyicisini açın.
  </Step>

  <Step title="Düzen yapısını ekleyin">
    Beş satır oluşturun:

    * Satır 1, 2 ve 4: bir **Paragraf** bloğu ile tek sütun
    * Satır 3: **HTML | Paragraf | Paragraf | Paragraf** ile dört sütun
    * Satır 5: bir **Buton** bloğu ile tek sütun

    <Frame caption="Terk edilmiş sepet için başlangıç e-posta şablonu">
      <img src="https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?fit=max&auto=format&n=v-hm59YoewwF90UX&q=85&s=551e9ec4618f64fdc0b6ab610a537c48" width="2968" height="2124" data-path="images/email/starter-template-abandoned-cart.png" />
    </Frame>
  </Step>

  <Step title="Paragraf bloklarına Liquid ekleyin">
    Satır 1'de şu içeriği ekleyin:

    ```liquid Liquid theme={null}
    We're holding onto {{cart_items_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!
    ```

    Satır 2'de kullanıcının neye baktığını açıklayan bir metin ekleyin:

    ```liquid Text theme={null}
    Currently in your cart:
    ```

    Satır 4'te başka bir harekete geçirici mesaj ekleyin:

    ```liquid Text theme={null}
    Checkout now while supplies last!
    ```
  </Step>

  <Step title="En son öğeyi görüntüleyin">
    Satır 3'te dört sütunu yapılandırın:

    **Sütun 1 (HTML bloğu):**

    ```html HTML theme={null}
    <img src="{{product_image}}" alt="Image" style="max-width:100%;" />
    ```

    **Sütun 2–4 (Metin blokları):**

    * Sütun 2: `{{product_name}}`
    * Sütun 3: `{{product_quantity}}`
    * Sütun 4: `{{product_price}}`
  </Step>

  <Step title="Butona sepet URL'sini ekleyin">
    Satır 5 **Buton** bloğunda, Eylem URL'sini şu şekilde ayarlayın:

    ```liquid theme={null}
    {{cart_url}}
    ```

    <Frame caption="Stil uygulanmamış terk edilmiş sepet temel e-posta şablonu">
      <img src="https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-tags.png?fit=max&auto=format&n=v-hm59YoewwF90UX&q=85&s=a46cb86b4725c27c360b9f7cd96ab305" width="2968" height="2124" data-path="images/email/finished-template-abandoned-cart-tags.png" />
    </Frame>
  </Step>

  <Step title="Şablonu test edin ve önizleyin">
    **Test & preview** butonunu kullanarak kendinize bir test e-postası gönderin.

    * Etiketlerin e-posta Subscription'ınızda ayarlanmış olduğundan emin olun.

    <Frame caption="Etiketlerle e-posta önizlemesi">
      <img src="https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/test-email-with-tags.png?fit=max&auto=format&n=v-hm59YoewwF90UX&q=85&s=307a846a3fec6676658ac4c653590110" width="2968" height="2124" data-path="images/email/test-email-with-tags.png" />
    </Frame>
  </Step>

  <Step title="Şablonu stillendirin">
    <Check>Başarılı! Artık şablona kendi stilinizi uygulayabilirsiniz. Bkz. [Sürükle ve bırak ile e-posta tasarlama](./design-emails-with-drag-and-drop).</Check>
  </Step>
</Steps>

### Push şablonu

Push bildirimleri sınırlı alana sahiptir, bu nedenle bir öğe görüntüleyin ve toplam sayıyı belirtin.

**Mesaj alanı:**

[Koşullu ifadeler](./using-liquid-syntax#if-elsif-else) kullanarak doğru dilbilgisi ile öğe ve sayıyı görüntüleyin.

```liquid Liquid theme={null}
{% assign item_count = cart_items_count | plus: 0 %}
{% if item_count == 1 %}
You left {{product_name}} in your cart.
{% endif %}
{% if item_count == 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more item in your cart.
{% endif %}
{% if item_count > 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more items in your cart.
{% endif %}
```

**Görsel alanı:**

```liquid Liquid theme={null}
{{product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
```

**Açılış URL'si alanı:**

```liquid theme={null}
{{cart_url | default: "https://yourdomain.com/cart"}}
```

<Frame caption="Test & preview ile push şablonu kişiselleştirme önizlemesi">
  <img src="https://mintcdn.com/onesignal/Up-pAJT_jbhthm6E/images/push/preview-push-template-personalization-with-test-preview.png?fit=max&auto=format&n=Up-pAJT_jbhthm6E&q=85&s=97db90a05acdf4ed30f54a76b1d63b98" width="2880" height="2036" data-path="images/push/preview-push-template-personalization-with-test-preview.png" />
</Frame>

<Check>Başarılı! Artık daha fazla şablon oluşturabilir ve bunları [Terk Edilmiş Sepet Journey](./abandoned-cart)'sinde kullanabilirsiniz.</Check>

***

## Örnek: Veri etiketleriyle uygulama içi mesajı kişiselleştirin

Bu örnek, veri etiketleriyle kişiselleştirilmiş bir ödül uygulama içi mesajını gösterir. Uygulama içi mesaj, veri etiketi değerlerini birden çok blok türüne değiştirir.

Yapılandırılmış mesajda:

* **Metin bloğu** — tamamlanan seviyeyi ve o seviye için ödülü görüntüler
* **Görsel bloğu** — varsayılan görsel ile birlikte o ödüle karşılık gelen görseli görüntüler
* **Düğme 2 metni** — ödül değerini görüntüler, varsayılan değer `100`
* **Arka plan görseli** — bir veri etiketi değerinden ayarlanır

<Frame caption="Metin, görsel ve düğme bloklarında veri etiketi değiştirme yapılandırılmış uygulama içi mesaj editörü">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b697ab5-config1.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=c40e541c296b138a7f04ac561b3b0c64" alt="" width="872" height="968" data-path="images/docs/b697ab5-config1.png" />
</Frame>

Mesaj, oturum başlangıcında kullanıcının mevcut veri etiketi değerleri kullanılarak işlenir:

<Frame caption="Veri etiketlerinden değiştirilen değerlerle kullanıcıya görüntülenen uygulama içi mesaj">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/973f097-JustTheIAMTagSub.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=0626ef7b31dfbfece633e74b072fbff5" style={{ width:"100%" }} width="338" height="607" data-path="images/docs/973f097-JustTheIAMTagSub.png" />
</Frame>

<Note>
  Desteklenen bloklar, öznitelikler ve zamanlama kuralları için yukarıdaki [Kanal desteği](#kanal-desteği) bölümündeki **Uygulama içi mesajlar** sekmesine bakın. Oradan tekrar vurgulanması gereken iki nokta:

  * **Veri etiketleri, kullanıcı yeni bir uygulama oturumu başlatmadan önce ayarlanmalıdır.** Oturum ortasında güncellenen etiketler, o oturumda gösterilen uygulama içi mesajlarda işlenmez.
  * **Etiket değiştirme, "Test Mesajı Gönder" test gönderimlerinde işlenmez.** Değiştirmeyi doğrulamak için mesajı gerçek bir oturumdan tetikleyin.
  * [Özellik değiştirme](./using-liquid-syntax#property-include) uygulama içi mesajlarda desteklenmez.
</Note>

***

## İlgili sayfalar

<Columns cols={2}>
  <Card title="Mesaj kişiselleştirme" href="./message-personalization" icon="sparkles">
    Custom Events ve diğer yöntemlerin ne zaman kullanılacağı dahil olmak üzere OneSignal'daki tüm kişiselleştirme seçeneklerine genel bakış.
  </Card>

  <Card title="Tags" href="./add-user-data-tags" icon="tag">
    SDK, API veya CSV içe aktarma yoluyla kullanıcılara etiket ayarlamayı öğrenin.
  </Card>

  <Card title="Liquid sözdizimi kullanımı" href="./using-liquid-syntax" icon="droplet">
    Filtreler, koşullar, döngüler ve dize manipülasyonu içeren kapsamlı Liquid referansı.
  </Card>

  <Card title="Templates" href="./templates" icon="file">
    Journeys'de kullanmak için yeniden kullanılabilir mesaj şablonları oluşturun ve yönetin.
  </Card>

  <Card title="Terk edilmiş sepet öğreticisi" href="./abandoned-cart" icon="cart-shopping">
    Tags ve özellikler kullanarak terk edilmiş sepet Journey'si oluşturun.
  </Card>
</Columns>

<Info>
  Yardıma mı ihtiyacınız var?

  Destek ekibimizle sohbet edin veya `support@onesignal.com` adresine e-posta gönderin

  Lütfen şunları ekleyin:

  * Yaşadığınız sorunun ayrıntıları ve varsa yeniden üretme adımları
  * OneSignal Uygulama Kimliğiniz
  * Varsa Harici ID veya Abonelik ID
  * Varsa OneSignal Panosunda test ettiğiniz mesajın URL'si
  * İlgili [günlükler veya hata mesajları](/docs/en/capturing-a-debug-log)

  Size yardımcı olmaktan mutluluk duyarız!
</Info>

***
