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

# Amazon S3

> Amazon S3 CSV dosyalarından OneSignal'e özel olayları senkronize ederek kullanıcı davranışına dayalı otomatik Journey'ler ve kişiselleştirilmiş mesajlaşma kampanyaları tetikleyin.

export const PLATFORM_0 = "S3 CSV"

export const DATA_TYPE_0 = "dosya sütunları"

export const COLUMN_HEADER_0 = "CSV Sütun Örneği"

export const PROPERTIES_DESCRIPTION_0 = "JSON dizesi olarak olay özellikleri"

## Genel bakış

OneSignal + Amazon S3 entegrasyonu, S3 bucket'ınızda saklanan CSV dosyalarından özel olayların doğrudan OneSignal'in Custom Events API'sine otomatik senkronizasyonunu sağlar. Bu, veri ambarınızda saklanan gerçek kullanıcı davranışına dayalı olarak otomatik Journey'ler ve kişiselleştirilmiş mesajlaşma kampanyaları tetiklemenize olanak tanır.

Satın almalar, ürün görüntülemeleri, abonelik değişiklikleri veya herhangi bir özel kullanıcı eylemini senkronize ederek push bildirimleri, e-posta, uygulama içi mesajlar ve SMS aracılığıyla onboarding dizilerini, yeniden etkileşim kampanyalarını, işlemsel mesajları ve hedefli promosyonları otomatik olarak tetikleyebilirsiniz.

***

## Gereksinimler

### OneSignal

* **Custom Events** özelliği etkinleştirilmiş

### Amazon S3

* S3 bucket erişimi olan **AWS Hesabı**
* Rol ve politikalar oluşturmak için **IAM izinleri**
* OneSignal gereksinimlerine göre biçimlendirilmiş olay verileri içeren **CSV dosyaları**
* `.csv` uzantılı **UTF-8 kodlu** virgülle ayrılmış dosyalar

***

## Kurulum

### Olay CSV dosyalarınızı hazırlayın

S3 bucket'ınız, OneSignal'in işleyebileceği olay verileri içeren düzgün biçimlendirilmiş CSV dosyaları içermelidir:

**Dosya Formatı Gereksinimleri:**

* Sıkıştırılmamış, UTF-8 kodlu, virgülle ayrılmış `.csv` dosya uzantılı CSV
* Başlık satırı ekleyin (OneSignal, başlıkları olay alan adları olarak kullanacaktır)
* Null değerleri `#N/A` dizesi ile temsil edin
* Virgül içeren değerler çift tırnak içine alınmalıdır
* Çift tırnak içeren değerler ikinci bir çift tırnak ile kaçırılmalıdır

**Dosya Yapısı:**
OneSignal, her **klasör yolunu benzersiz bir veri kaynağı** olarak ele alır ve dosya adını o yol içindeki verilerin bir sürümü olarak değerlendirir. Olayları işlerken, OneSignal her zaman seçilen klasör yolundaki en yeni veriyi zaman damgasına göre seçecektir.

S3'teki olay verilerini güncellerken, mevcut dosyayı değiştirebilir veya daha yeni bir sürüm ekleyebilirsiniz. OneSignal yeni olayları işleyecek ve bunları Custom Events API'sine gönderecektir.

### OneSignal için IAM rolü oluşturun

OneSignal, AWS güvenlik en iyi uygulamalarını takip ederek S3 bucket'ınıza bağlanmak için rol tabanlı kimlik doğrulama kullanır.

<Steps>
  <Step title="IAM rolünü oluşturun">
    AWS hesabınızda, OneSignal'in AWS Hesap ID'si (`341876425553`) için S3 bucket'ınıza yalnızca okuma erişimi sağlayan bir IAM rolü oluşturun:

    ```bash theme={null}
    aws iam create-role \
      --role-name OneSignalS3DataImport \
      --assume-role-policy-document '{
        "Version": "2012-10-17",
        "Statement": [{
          "Effect": "Allow",
          "Principal": {"AWS": "arn:aws:iam::341876425553:root"},
          "Action": "sts:AssumeRole"
        }]
      }'
    ```

    <Info>
      OneSignal yapılandırması için ihtiyaç duyacağınız için döndürülen Role ARN'yi kaydedin.
    </Info>
  </Step>

  <Step title="S3 izinlerini verin">
    Yeni oluşturduğunuz role S3 bucket'ınıza yalnızca okuma erişimi verin:

    ```bash theme={null}
    aws iam put-role-policy \
      --role-name OneSignalS3DataImport \
      --policy-name OneSignalS3Access \
      --policy-document '{
        "Version": "2012-10-17",
        "Statement": [{
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetBucketLocation"
          ],
          "Resource": [
            "arn:aws:s3:::YOUR_BUCKET_NAME",
            "arn:aws:s3:::YOUR_BUCKET_NAME/*"
          ]
        }]
      }'
    ```

    <Warning>
      `YOUR_BUCKET_NAME`'i gerçek S3 bucket adınızla değiştirin.
    </Warning>
  </Step>
</Steps>

### OneSignal S3 bağlantısını yapılandırın

<Steps>
  <Step title="Data Sources'a gidin">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.
  </Step>

  <Step title="Amazon S3'ü seçin">
    Mevcut entegrasyonlar listesinden **Amazon S3**'ü seçin.
  </Step>

  <Step title="Bağlantı detaylarını girin">
    Aşağıdaki bilgileri sağlayın:

    * **Region:** S3 bucket bölgeniz
    * **Bucket Name:** S3 bucket adınız
    * **Role ARN:** Adım 1'deki IAM rolü ARN'si
    * **Prefix:** Olay CSV dosyalarınızı içeren klasör yolu (isteğe bağlı)
  </Step>

  <Step title="Güvenlik el sıkışmasını tamamlayın">
    OneSignal benzersiz bir external ID oluşturacak ve bir sonraki ekranda görüntüleyecektir. IAM rolünüzü bu external ID'yi gerektirecek şekilde güncelleyin:

    ```bash theme={null}
    aws iam update-assume-role-policy \
      --role-name OneSignalS3DataImport \
      --policy-document '{
        "Version": "2012-10-17",
        "Statement": [{
          "Effect": "Allow",
          "Principal": {"AWS": "arn:aws:iam::341876425553:root"},
          "Action": "sts:AssumeRole",
          "Condition": {"StringEquals": {"sts:ExternalId": "GENERATED_EXTERNAL_ID"}}
        }]
      }'
    ```

    <Info>
      `GENERATED_EXTERNAL_ID`'yi OneSignal dashboard'unda gösterilen external ID ile değiştirin.
    </Info>
  </Step>

  <Step title="Bağlantıyı test edin">
    Kurulumun doğru çalıştığını doğrulamak için OneSignal'de **Test Connection**'a tıklayın.
  </Step>
</Steps>

***

## CSV İşleme Modları

OneSignal, S3 bucket'ınızdan olay CSV dosyalarını okurken iki modu destekler:

### Most Recent (Varsayılan)

OneSignal, yapılandırılmış S3 prefix ve klasör grubundaki yalnızca en son dosyayı işler. Tek dosya, işlenecek olayların tam seti olarak yorumlanır. Bu mod şu durumlarda iyi çalışır:

* Tek bir dosya, bir zaman periyodu için tüm olayları içerir
* Dosyaların yeni sürümleri, güncellenmiş olay verileriyle zaman içinde eklenir
* Tam bir olay grubunu bir kerede işlemek istiyorsunuz

### Merge All

OneSignal, yapılandırılmış S3 prefix ve klasör grubundaki her dosyayı alır ve olayları işlemeden önce bunları tek bir veri kümesinde birleştirir. Bu mod şu durumlarda faydalıdır:

* Olay verileriniz birden fazla dosyaya bölünmüştür
* Birden fazla kaynaktan olayları işlemek istiyorsunuz
* Dosyalar yeni olaylarla aşamalı olarak ekleniyor

<Warning>
  Merge All modunda, tüm CSV dosyalarının tamamen aynı sütun adlarına ve sırasına sahip olması gerekir.
</Warning>

***

## Olay Verisi Eşleştirme

Bağlandıktan sonra, CSV sütunlarınızı OneSignal özel olay alanlarıyla eşleştirmeniz gerekecektir:

<Steps>
  <Step title="Algılanan alanları inceleyin">
    OneSignal, olay CSV dosyalarınızdaki sütunları otomatik olarak algılayacak ve eşleştirmeler önerecektir.
  </Step>

  <Step title="Gerekli olay alanlarını eşleştirin">
    Özel olaylar için gerekli alanları eşleştirin:

    * **Event Name** (gerekli): Olayın adı/türü
    * **External ID** (gerekli): Harici Kullanıcı ID'si
    * **Event Timestamp** (isteğe bağlı): Olayın gerçekleştiği zaman. Aksi takdirde, şimdi olduğu varsayılır.
  </Step>

  <Step title="Senkronizasyon ayarlarını yapılandırın">
    Olay işleme sıklığınızı ve teslimat tercihlerinizi ayarlayın.
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

***

## Sınırlamalar

* **SQL Sorguları:** S3 kaynakları, olay verileri üzerinde SQL sorguları veya gelişmiş dönüşümleri desteklemez
* **Dosya Boyutu:** Bireysel CSV dosyaları 1GB'ı geçmemelidir
* **Güncelleme Sıklığı:** Minimum senkronizasyon aralığı 15 dakikadır
* **Dosya Türleri:** Yalnızca CSV dosyaları desteklenir (JSON, Parquet vb. desteklenmez)

***

## SSS

### CSV dosyamda biçimlendirme hataları varsa ne olur?

OneSignal, hatalı biçimlendirilmiş satırları atlayacak ve entegrasyonlar dashboard'unda ayrıntılı hata günlükleri sağlayacaktır. Yaygın sorunlar arasında eksik gerekli sütunlar, geçersiz zaman damgası formatları ve tutarsız sütun sayıları bulunur.

### OneSignal yeni dosyaları ne sıklıkla kontrol eder?

OneSignal, S3 bucket'ınızı yapılandırılmış senkronizasyon sıklığınıza göre kontrol eder, minimum aralık 15 dakikadır.

***

## Yardıma mı ihtiyacınız var?

S3 entegrasyon kurulumunuzla ilgili yardım için destek ekibimizle `support@onesignal.com` adresinden veya uygulama içi sohbet aracılığıyla iletişime geçin.
