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

# CSV ile Dinamik İçerik

> OneSignal'da CSV yüklemeleri ve Liquid sözdizimi ile push, e-posta ve SMS mesajlarını ölçekte kişiselleştirin.

OneSignal, [mesaj içeriğini ölçekte kişiselleştirmek](./message-personalization) için çeşitli yollar sunar. Bu kılavuz, push, e-posta ve SMS için OneSignal kontrol panelinde bulunan CSV yükleme özelliği ile Dinamik İçerik'in kullanımına odaklanmaktadır.

**Temel faydalar:**

* **Ölçekte kişiselleştirmek için bir CSV kullanın** – Bir mesaj, herkes için özel deneyimler
* **Çok dilli destek** – Kullanıcı başına otomatik dil değiştirme
* **Dinamik kişiselleştirme** – İçerik kullanıcı özelliklerine (dil, bölge, kampanya ID) uyum sağlar
* **Ekip işbirliği** – Teknik olmayan kullanıcılar CSV dosyalarında içerik düzenler
* **HTML enjeksiyonu (e-posta)** – CSV hücrelerine HTML işaretlemesi ekleyerek dinamik olarak zengin e-posta içeriği oluşturun
* **Kanallar arası uyumluluk** – Kanallar arasında CSV mantığını yeniden kullanın

**Yaygın kullanım senaryoları:**

* Çok dilli onboarding veya pazarlama
* Bölgeye özel promosyonlar
* Konuma göre etkinlik duyuruları
* Kampanyaya dayalı kişiselleştirme

***

## CSV ile Dinamik İçerik kurulum adımları

**Hızlı referans:**

1. İçerik varyasyonlarınızla bir CSV dosyası oluşturun.
2. Liquid sözdizimindeki `dynamic_content` özelliğini kullanarak CSV verilerini mesaja eşleyin.
3. OneSignal kontrol panelinden yeni bir mesaj veya [şablon](./templates) oluşturun.
4. **Dinamik İçerik** veya **Kişiselleştirme** düğmesini seçin.
5. CSV dosyasını yükleyin ve mesajı gönderin.

### CSV gereksinimleri ve kurulum

* **Dosya boyutu:** 200 KB'nin altında
* **Sütun başlıkları:**
  * Etiket anahtarı için ilk sütun başlığını ayırın veya bölümlere referans vermek için boş bırakın
  * Yalnızca alfanümerik karakterler ve alt çizgiler
  * Boşluk yerine alt çizgi (`_`) kullanın
* **Kodlama:** UTF-8

Boş bir CSV ile başlayın veya sağlanan bir şablon kullanın. Mesaj ve şablon editörlerinde **Dinamik İçerik** veya **Kişiselleştirme** düğmesini seçtiğinizde şablonlar sağlanır.

<Frame caption="Mesaj editöründe bulunan Dinamik İçerik düğmesi.">
  <img src="https://mintcdn.com/onesignal/jBdBk5XvQR5eKOks/images/docs/772f91e24ebca83a05d4e96819a41ec58d5ca0acd3a715e971c4a43ba7654494-Screenshot_2025-02-10_at_5.23.32_PM.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=c51a6fcb07f7aab797cbfe74423530cb" alt="OneSignal mesaj editöründeki Dinamik İçerik düğmesi" width="1960" height="380" data-path="images/docs/772f91e24ebca83a05d4e96819a41ec58d5ca0acd3a715e971c4a43ba7654494-Screenshot_2025-02-10_at_5.23.32_PM.png" />
</Frame>

Mevcut şablonlar:

* **Çok dilli** – İçeriği dile göre yerelleştirin
* **İçerik kişiselleştirme** – İçeriği Data Tag'lere göre özelleştirin

<Frame caption="OneSignal kontrol panelindeki CSV şablon seçenekleri.">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/47f48b79aa100bd5d2c59a418216bafba75daaa92d0bf939dcd3ccceca39cd7c-Screenshot_2025-02-10_at_5.26.15_PM.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=87947eb40093580c8589cf7eb4183564" alt="Çok dilli ve içerik kişiselleştirme şablonlarını gösteren CSV şablon seçenekleri" width="1986" height="870" data-path="images/docs/47f48b79aa100bd5d2c59a418216bafba75daaa92d0bf939dcd3ccceca39cd7c-Screenshot_2025-02-10_at_5.26.15_PM.png" />
</Frame>

#### Örnek CSV'ler

Bu kılavuz aşağıdaki örnek CSV verilerini kullanacaktır.

<Tabs>
  <Tab title="Çok Dilli Şablon Örneği">
    * Sütun başlıklarını [desteklenen dil kodlarınıza](./multi-language-messaging#supported-languages) eşleyin.
    * Her dil kodu için her satıra çevirilerinizi ekleyin.
    * Birden fazla bölümünüz varsa (bir e-postada olduğu gibi), ilk sütunu bölüm adı olarak belirleyin.

    Bu örnek şunları içerir:

    * 3 dil: İngilizce, İspanyolca ve Fransızca.
    * 2 bölüm: "section\_1" ve "section\_2".

    <Frame caption="Kullanıcı dil özniteliğini içerikle eşleştiren çok dilli CSV (DÜŞEYARA'ya benzer).">
      <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8716e43deead16759c2500d85900d2d1be8b6a9c51e0477160569b05534a58fb-Screenshot_2025-02-10_at_8.37.25_PM.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=4a20651cf2949bad117b8a9fda432536" alt="Dil kodlarını sütun başlığı, çevrilmiş içeriği satır olarak kullanan çok dilli CSV" width="1438" height="220" data-path="images/docs/8716e43deead16759c2500d85900d2d1be8b6a9c51e0477160569b05534a58fb-Screenshot_2025-02-10_at_8.37.25_PM.png" />
    </Frame>
  </Tab>

  <Tab title="İçerik Kişiselleştirme Şablon Örneği">
    * İlk sütun başlığını etiket anahtarına ve alttaki satırları referans vermek istediğiniz değerlere eşleyin. Kullanıcılara etiket ekleme hakkında daha fazla bilgi için [Etiketler](./add-user-data-tags)'e bakın.
    * Kalan sütun başlıklarını kişiselleştirmek istediğiniz bölümlere veya bileşenlere eşleyin.

    Bu örnekte:

    * Etiket anahtarı `campaign_id` olup olası değerleri `A` ve `B`'dir.
    * 3 bileşen vardır: "title", "message" ve "url".

    <Frame caption="campaign_id Data Tag'i kullanan kişiselleştirme CSV'si.">
      <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/2d49628c7c891801e50b7f397442f5887e7b776897d24788be16887ed191f631-Screenshot_2025-04-10_at_9.47.35_AM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=23ec0fe2224cc3103e7a7c62168dd050" alt="campaign_id etiketi ve title, message, url sütunlarını kullanan içerik kişiselleştirme CSV'si" width="1406" height="160" data-path="images/docs/2d49628c7c891801e50b7f397442f5887e7b776897d24788be16887ed191f631-Screenshot_2025-04-10_at_9.47.35_AM.png" />
    </Frame>

    <Warning>
      **Önemli:** CSV başlıklarından boşlukları ve alfanümerik olmayan karakterleri kaldırın
      veya Liquid'de hash notasyonu kullanın.
    </Warning>

    <Frame caption="Etiketlere referans vermek için Liquid sözdizimi kullanan ayrıntılı CSV örneği.">
      <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/9352ff1-event_translation.csv.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=e71b92286f500fc201b95bafa2b38a85" alt="Etiket tabanlı kişiselleştirme için Liquid sözdizimi referanslarını gösteren ayrıntılı CSV örneği" width="3189" height="2646" data-path="images/docs/9352ff1-event_translation.csv.png" />
    </Frame>
  </Tab>
</Tabs>

### CSV verilerini mesaj içeriğine eşleme

[Liquid sözdizimi](./using-liquid-syntax) kullanarak, `dynamic_content` özelliğini kullanarak mesajınızdaki CSV verilerine referans verin:

```liquid theme={null}
<!-- Seçenek 1: önce bileşene göre erişim -->
{{dynamic_content.file_name.message_component[user_property]}}

<!-- Seçenek 2: önce kullanıcı özelliğine göre erişim -->
{{dynamic_content.file_name[user_property].message_component}}
```

**Parametreler:**

* `dynamic_content` – CSV verilerine referans vermek için kullanılan özellik adı
* `file_name` – CSV dosya adı (`.csv` uzantısı olmadan)
* `message_component` – Kişiselleştirmek istediğiniz belirli mesaj bileşeni. Bu, CSV sütun başlığındaki veya ilk satırdaki statik metindir.
* `user_property` – Referans vermek istediğiniz [kullanıcı özelliği](./message-personalization#properties).

**Yedek içerik:**

CSV araması veya Dinamik İçerik başarısız olursa mesajların oluşturulmasını sağlamak için her zaman sabit kodlanmış `default` dize yedeklerini kullanın.

```liquid Yedek için Liquid sözdizimi theme={null}
{{ dynamic_content.my_template.header[user.language] | default: "En son güncellememize hoş geldiniz" }}
```

Bu, CSV araması veya Dinamik İçerik başarısız olursa mesajın yedek metni `"En son güncellememize hoş geldiniz"` oluşturacağı anlamına gelir.

Bu şunları garanti eder:

* Mevcut olduğunda Dinamik İçerik kullanılır
* Dinamik İçerik başarısız olursa sabit kodlanmış bir mesaj görünür
* Kullanıcılar asla boş içerik almaz

<Tabs>
  <Tab title="Çok Dilli Mesaj Örneği">
    ```csv translations.csv theme={null}
    ,en,es,fr
    section_1,Hello,Hola,Bonjour
    section_2,Thanks for shopping with us...,Gracias por comprar con nosotros...,Merci pour votre achat avec nous...
    ```

    * `file_name` `translations.csv`'dir.
    * `message_component` ilk sütunun satırlarında `section_1` ve `section_2`'dedir.
    * `user_property` dil koduyla eşleşen sütun başlığıdır. Bunu kullanıcı üzerinde `user.language` [özelliği](./message-personalization#properties) ile referans verebiliriz.

    ```liquid Çok dilli mesaj için temel Liquid sözdizimi theme={null}
    {{dynamic_content.translations.section_1[user.language]}}
    {{dynamic_content.translations.section_2[user.language]}}
    ```

    ```liquid (Önerilen) Varsayılan yedekli çok dilli mesaj için Liquid sözdizimi theme={null}
    {% assign supported_langs = "en,es,fr,de" | split: "," %}
    {% assign lang = user.language | default: "en" %}

    {% unless supported_langs contains lang %}
      {% assign lang = "en" %}
    {% endunless %}

    {{ dynamic_content.translations.section_1[lang] | default: "Hello" }}
    {{ dynamic_content.translations.section_2[lang] | default: "Thanks for shopping with us..." }}
    ```

    <Frame caption="Çok dilli e-posta içeriği için Liquid sözdizimi ekleme.">
      <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0df135475c202308b5b5e40f3893f1beff6d7d387a99e9264c5c5936283d699-Screenshot_2025-02-10_at_10.08.20_PM.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=bb3aaec56a1bcca6e1400b096a5550b7" alt="Çok dilli Dinamik İçerik için Liquid sözdizimini içeren OneSignal e-posta editörü" width="1062" height="446" data-path="images/docs/d0df135475c202308b5b5e40f3893f1beff6d7d387a99e9264c5c5936283d699-Screenshot_2025-02-10_at_10.08.20_PM.png" />
    </Frame>
  </Tab>

  <Tab title="İçerik Kişiselleştirme Mesaj Örneği">
    ```csv content_personalization_template.csv theme={null}
    campaign_id,title,message,url
    campaign_123,Flash deal for you,Tap to claim,https://example.com/flash
    campaign_456,Weekend picks are here,See what's trending,https://example.com/weekend
    default,Our latest offers,See what's new,https://example.com
    ```

    * `file_name` `content_personalization_template.csv`'dir.
    * `user_property` etiket anahtarına eşlenir: `campaign_id`.
    * `message_component` kişiselleştirmek istediğiniz mesaj bölümüne eşlenen sütun başlığıdır (title, message veya url).

    ```liquid İçerik kişiselleştirme mesajı için Liquid sözdizimi theme={null}
    {{ dynamic_content.content_personalization_template[campaign_id].title }}
    {{ dynamic_content.content_personalization_template[campaign_id].message }}
    {{ dynamic_content.content_personalization_template[campaign_id].url }}
    ```

    ```liquid (Önerilen) Varsayılan yedekli içerik kişiselleştirme mesajı için Liquid sözdizimi theme={null}
    {% assign cid = campaign_id | default: "default" %}

    {% unless dynamic_content.content_personalization_template[cid] %}
      {% assign cid = "default" %}
    {% endunless %}

    {{ dynamic_content.content_personalization_template[cid].title | default: "En son tekliflerimiz" }}
    {{ dynamic_content.content_personalization_template[cid].message | default: "Yenilikleri görün" }}
    {{ dynamic_content.content_personalization_template[cid].url | default: "https://example.com" }}
    ```

    <Frame caption="Kampanya tabanlı push kişiselleştirmesi için Liquid sözdizimi ekleme.">
      <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1c80cff787617df73a16bd4858446a07db6af84f4d79404c4a2ad34e3e509876-Screenshot_2025-02-10_at_9.53.13_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=37a96d318756adc6b0f2a35aecc20c92" alt="Dinamik İçerik kişiselleştirme Liquid örneği" width="1774" height="1018" data-path="images/docs/1c80cff787617df73a16bd4858446a07db6af84f4d79404c4a2ad34e3e509876-Screenshot_2025-02-10_at_9.53.13_PM.png" />
    </Frame>
  </Tab>
</Tabs>

<Check>
  Konu satırlarını, ön başlıkları, düğme
  etiketlerini ve URL'leri güncellemek için `default` yedekli Liquid kullanın.
</Check>

### CSV hücrelerinde HTML kullanma (yalnızca e-posta)

E-postalara zengin içerik eklemek için CSV hücrelerine doğrudan HTML işaretlemesi ekleyebilirsiniz. Bu, kullanıcı özelliklerine göre bir e-postanın tüm bölümlerini — banner'lar, CTA'lar veya stillendirilmiş bloklar gibi — değiştirmek için kullanışlıdır.

```csv promo_banners.csv theme={null}
campaign_id,banner_html
spring_sale,<div style="background:#4CAF50;padding:16px;text-align:center;"><a href="https://example.com/spring" style="color:#fff;font-size:18px;">Shop the Spring Sale</a></div>
default,<div style="background:#333;padding:16px;text-align:center;"><a href="https://example.com" style="color:#fff;font-size:18px;">See What's New</a></div>
```

E-posta şablonunuzda HTML hücresine referans verin:

```liquid theme={null}
{{ dynamic_content.promo_banners[campaign_id].banner_html | default: "<p>Check out our latest offers</p>" }}
```

HTML doğrudan e-posta gövdesinde görüntülenir, bu nedenle e-posta istemcilerinin desteklediği herhangi bir satır içi stil ve işaretleme kullanabilirsiniz.

<Warning>
  CSV hücrelerindeki HTML yalnızca e-postada desteklenir. Push ve SMS kanalları içeriği düz metin olarak görüntüler ve HTML işaretlemesini yorumlamaz.
</Warning>

***

## Referans

### Şablonları güncelleme

Kontrol paneli üzerinden CSV'leri yeniden yükleyin veya [Şablon Güncelleme API'sinin](/reference/update-template) `dynamic_content` özelliğini kullanın.

### Anahtarlardaki özel karakterler

**Hash notasyonu** (alfanümerik olmayan anahtarlar için):

```liquid theme={null}
{{ dynamic_content.file_name["!the_row!"]["&the_column&"] }}
```

**Nokta notasyonu** (standart anahtarlar için):

```liquid theme={null}
{{ dynamic_content.file_name.the_row.the_column }}
```

***

## SSS

### CSV ile Dinamik İçerik'i nasıl test edebilirim?

Mesajın birden fazla varyasyonunu test etmek için e-posta kullanın.

* Birden fazla varyasyonu test etmek için e-postalarda `+` adresleme kullanın: `username+test@example.com`.
* Yukarıdaki çok dilli ve içerik kişiselleştirme örneklerini takip ederek etiketleri ayarlayın.
* Birden fazla kullanıcı ve data tag'i yükleme hakkında daha fazla bilgi için [İçe Aktarma](./import)'ya bakın.

### CSV ile Dinamik İçerik ile diğer kişiselleştirme seçeneklerini ne zaman kullanmalıyım?

Kontrol panelinden mesaj gönderiyorsanız ve bir CSV dosyasında kullanıcı verileriniz varsa **CSV ile Dinamik İçerik** kullanın. Mesajlara dinamik içerik eklemenin diğer yolları için [Mesaj Kişiselleştirme](./message-personalization) veya [Çok Dilli Mesajlaşma](./multi-language-messaging)'ya bakın.

***

## İlgili sayfalar

<Columns cols={2}>
  <Card title="Mesaj Kişiselleştirme" icon="wand-magic-sparkles" href="./message-personalization">
    OneSignal'da mevcut tüm kişiselleştirme seçeneklerine genel bakış.
  </Card>

  <Card title="Liquid Sözdizimi Kullanma" icon="code" href="./using-liquid-syntax">
    OneSignal mesajları için tam Liquid sözdizimi referansı.
  </Card>

  <Card title="İçe Aktarma" icon="file-import" href="./import">
    Kullanıcı verileri ve segmentleri OneSignal'a yükleme.
  </Card>

  <Card title="Şablonlar" icon="clone" href="./templates">
    Yeniden kullanılabilir mesaj şablonları oluşturma.
  </Card>
</Columns>
