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

# Google BigQuery

> Mesajlaşma etkinlik verilerini BigQuery'ye aktarın ve kişiselleştirilmiş kampanyaları tetiklemek için BigQuery'den özel etkinlikleri içe aktarın.

export const PLATFORM_0 = "BigQuery"

export const DATA_TYPE_0 = "event table columns"

export const COLUMN_HEADER_0 = "BigQuery Column"

export const PROPERTIES_DESCRIPTION_0 = "Additional columns as JSON"

## Genel Bakış

OneSignal + BigQuery entegrasyonu iki güçlü veri hattını destekler:

* **Dışa Aktarma**: OneSignal'dan BigQuery'ye analiz ve raporlama için mesajlaşma etkinlik verilerini (push, e-posta, SMS, uygulama içi) otomatik olarak gönderin.
* **İçe Aktarma**: BigQuery veri kümelerinizden OneSignal'a özel kullanıcı etkinliklerini senkronize ederek otomatik Yolculukları ve kişiselleştirilmiş mesajlaşmayı tetikleyin.

Bu entegrasyonlar bir araya geldiğinde, kullanıcı etkileşim verileri üzerinde tam kontrol sağlar—gelişmiş analitik ve gerçek zamanlı davranış odaklı mesajlaşmayı güçlendirir.

***

## OneSignal etkinliklerini BigQuery'ye aktarma

Mesajlaşma performansı ve etkileşim etkinliklerini (örn. gönderimler, açılmalar, tıklamalar) BigQuery'ye göndererek:

* Özel panolar ve raporlar oluşturun
* Kanallar arasında teslimat ve etkileşim trendlerini takip edin
* OneSignal verilerini analiz için diğer iş verileriyle birleştirin

**Gereksinimler**

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

- **Faturalandırma etkin** Google Cloud Platform projesi
- GCP projenizde etkinleştirilmiş BigQuery
- BigQuery yazma izinlerine sahip hizmet hesabı

**Kurulum Adımları**

### 1. Hizmet Hesabı Oluşturma

<Steps>
  <Step title="Google Cloud Platform hesabınıza giriş yapın">
    Giriş yaptıktan sonra, doğru projenin seçildiğinden emin olun.

    <Frame>
      <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/7fe257f51fcacd15a07c4f4f23bf8bf2f9f22c2f1c171ad8b8648624de4de304-BQ1-2.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=038779c4d976ba56a17a32f2e6646573" width="2388" height="558" data-path="images/docs/7fe257f51fcacd15a07c4f4f23bf8bf2f9f22c2f1c171ad8b8648624de4de304-BQ1-2.png" />
    </Frame>
  </Step>

  <Step title="Hizmet hesabı oluşturun">
    [Hizmet Hesabı Oluşturma sayfasını](https://console.cloud.google.com/iam-admin/serviceaccounts/create) ziyaret edin ve **Hizmet Hesabı Oluştur**'a tıklayın.

    <Frame>
      <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/7fe257f51fcacd15a07c4f4f23bf8bf2f9f22c2f1c171ad8b8648624de4de304-BQ1-2.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=038779c4d976ba56a17a32f2e6646573" width="2388" height="558" data-path="images/docs/7fe257f51fcacd15a07c4f4f23bf8bf2f9f22c2f1c171ad8b8648624de4de304-BQ1-2.png" />
    </Frame>
  </Step>

  <Step title="Alanları doldurun.">
    Seçtiğiniz herhangi bir ad ve hizmet hesabı kimliği verin.

    <Frame>
      <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/6437e9849e23f18ec6f90e03c3821817566e7f150125f440a58fbe5fd2b42e0b-BQ1-3.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=37236688a79f1c16c0d6fdad15b03245" width="1344" height="870" data-path="images/docs/6437e9849e23f18ec6f90e03c3821817566e7f150125f440a58fbe5fd2b42e0b-BQ1-3.png" />
    </Frame>
  </Step>

  <Step title="'BigQuery User' rolünü atayın">
    Hizmet hesabına "BigQuery User" rolünü verin.

    <Frame>
      <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b1bff32d7f010b488b60347e01ecb1fbde182602f19f16d3d89914d1de1c0635-BQ1-4.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=1df75028d3632a3ed413c10c1de9b94a" width="549" height="395" data-path="images/docs/b1bff32d7f010b488b60347e01ecb1fbde182602f19f16d3d89914d1de1c0635-BQ1-4.png" />
    </Frame>
  </Step>

  <Step title="Bu hesap için JSON anahtarı oluşturun">
    Yeni hizmet hesabınıza gidin > **Anahtarlar** > **Anahtar Ekle** > **Yeni anahtar oluştur** > JSON seçin. Dosyayı kaydedin.
  </Step>
</Steps>

<Info>
  Entegrasyonu etkinleştirmek için bu JSON anahtar dosyasının tüm içeriğini OneSignal'a yapıştıracaksınız.
</Info>

### 2. OneSignal'da Entegrasyonu Etkinleştirme

<Steps>
  <Step title="OneSignal > Veri > Entegrasyonlar > BigQuery'ye gidin" />

  <Step title="Hizmet hesabı JSON anahtarınızı yapıştırın" />

  <Step title="Ayarları yapılandırın">
    * **Senkronizasyon Sıklığı**: Her 15 dakikada bir kadar sık
    * **Veri Kümesi/Tablo Adları**: Yalnızca küçük harfler, sayılar ve alt çizgiler içermeli ve bir sayı ile başlayamaz.
    * **Etkinlik Türleri**: Belirli mesaj etkinliklerini seçin (örn. gönderildi, açıldı, tıklandı)
      * **Not:** Birden fazla etkinlik türü seçebilir veya seçilen etkinlikleri daha sonra güncelleyebilirsiniz.
  </Step>

  <Step title="Kaydet'e tıklayın ve onay bekleyin" />
</Steps>

<Note>
  İlk veri senkronizasyonunun BigQuery'de görünmesi 15-30 dakika sürebilir.

  Beklerken, seçilen etkinlikleri tetiklemek için push, e-posta, uygulama içi veya SMS yoluyla mesajlar gönderin.
</Note>

### 3. BigQuery'de Verileri Görüntüleme

BigQuery konsolunuzu açın ve senkronize edilmiş mesaj etkinliklerini keşfetmek için veri kümesini (örn. `onesignal_events_<app-id>`) bulun.

<Frame caption="Dışa aktarılan mesaj etkinliklerini içeren BigQuery veri kümesi">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c40ec987eadef5dd1c16cb47fb71c2c666b30ea8667624584ecbc481c12ef026-BQ5.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=08cf57a8bd91f9447909ad619077935f" width="1552" height="1052" data-path="images/docs/c40ec987eadef5dd1c16cb47fb71c2c666b30ea8667624584ecbc481c12ef026-BQ5.png" />
</Frame>

## Mesaj etkinlikleri ve özellikleri

### Mesaj etkinlik türleri

**Özellik:** `event_kind`
**Tür:** `String`

Mesaj ve etkinlik türü (örneğin `message.push.received`, `message.push.sent`).

|   Mesaj Etkinliği (OneSignal)   |           `event_kind`           | Açıklama                                                                                      |
| :-----------------------------: | :------------------------------: | --------------------------------------------------------------------------------------------- |
|         Push Gönderildi         |        `message.push.sent`       | Push bildirimi başarıyla gönderildi.                                                          |
|           Push Alındı           |      `message.push.received`     | Teslim edilmiş push (bkz. [Onaylanmış Teslimat](/docs/en/confirmed-delivery)).                |
|          Push Tıklandı          |      `message.push.clicked`      | Kullanıcı push'u tıkladı.                                                                     |
|          Push Başarısız         |       `message.push.failed`      | Teslimat hatası. Mesaj raporlarına bakın.                                                     |
|    Push Abonelik İptal Edildi   |    `message.push.unsubscribed`   | Kullanıcı push aboneliğini iptal etti.                                                        |
|      Uygulama İçi Gösterim      |     `message.iam.impression`     | Uygulama içi mesaj gösterildi.                                                                |
|      Uygulama İçi Tıklandı      |       `message.iam.clicked`      | Uygulama içi mesaj tıklandı.                                                                  |
| Uygulama İçi Sayfa Görüntülendi |   `message.iam.page_displayed`   | Uygulama içi sayfa gösterildi.                                                                |
|        E-posta Gönderildi       |       `message.email.sent`       | E-posta teslim edildi.                                                                        |
|          E-posta Alındı         |     `message.email.received`     | E-posta alıcının posta sunucusu tarafından kabul edildi.                                      |
|          E-posta Açıldı         |      `message.email.opened`      | E-posta açıldı. Bkz. [E-posta Raporları](/docs/en/email-message-reports).                     |
|   E-posta Bağlantısı Tıklandı   |      `message.email.clicked`     | E-postadaki bağlantı tıklandı.                                                                |
|  E-posta Abonelik İptal Edildi  |   `message.email.unsubscribed`   | Alıcı aboneliğini iptal etti.                                                                 |
|  E-posta Spam Olarak Raporlandı | `message.email.reported_as_spam` | Spam olarak işaretlendi. Bkz. [E-posta Teslim Edilebilirliği](/docs/en/email-deliverability). |
|        E-posta Geri Döndü       |      `message.email.bounced`     | Kalıcı teslimat hatası nedeniyle geri döndü.                                                  |
|        E-posta Başarısız        |      `message.email.failed`      | Teslimat başarısız oldu.                                                                      |
|        E-posta Bastırıldı       |    `message.email.suppressed`    | Bastırma listesi nedeniyle bastırıldı.                                                        |
|          SMS Gönderildi         |        `message.sms.sent`        | SMS gönderildi.                                                                               |
|        SMS Teslim Edildi        |      `message.sms.delivered`     | SMS başarıyla teslim edildi.                                                                  |
|          SMS Başarısız          |       `message.sms.failed`       | SMS teslim edilemedi.                                                                         |
|       SMS Teslim Edilemedi      |     `message.sms.undelivered`    | SMS reddedildi veya ulaşılamıyor.                                                             |

### Etkinlik veri şeması

Bir kullanıcı tarafından oluşturulan her mesaj etkinliği için, aşağıdaki meta veriler kayda eklenecektir.

|                    Sütun Adı                    |        Tür        | Açıklama                                                                    |
| :---------------------------------------------: | :---------------: | --------------------------------------------------------------------------- |
|                    `event_id`                   |        UUID       | Etkinlik için benzersiz tanımlayıcı                                         |
|                `event_timestamp`                |     Timestamp     | Etkinlik gerçekleşme zamanı                                                 |
|                   `event_kind`                  |       String      | [Etkinlik Türü](#message-event-kinds)                                       |
|            `subscription_device_type`           |       String      | Cihaz türü (örneğin, iOS, Android, Web, E-posta, SMS)                       |
|                    `language`                   |       String      | Abonelik dil kodu                                                           |
|                    `version`                    |       String      | Entegrasyon sürümü                                                          |
|                   `device_os`                   |       String      | Cihaz işletim sistemi sürümü                                                |
|                  `device_type`                  |       Number      | Sayısal cihaz türü                                                          |
|                     `token`                     |       String      | Push token, telefon numarası veya e-posta                                   |
|                `subscription_id`                |        UUID       | Abonelik ID'si                                                              |
|                   `subscribed`                  |      Boolean      | Abonelik durumu                                                             |
|                  `onesignal_id`                 |        UUID       | OneSignal kullanıcı ID'si                                                   |
|                  `last_active`                  |       String      | Son aktif zaman damgası                                                     |
|                      `sdk`                      |       String      | OneSignal SDK sürümü                                                        |
|                  `external_id`                  |       String      | Entegrasyon kullanıcı ID'si ile eşleşmesi gereken harici kullanıcı ID'si    |
|                     `app_id`                    |        UUID       | OneSignal'dan uygulama ID'si                                                |
|                  `template_id`                  |        UUID       | Şablon ID'si (varsa)                                                        |
|                   `message_id`                  |        UUID       | Mesaj grubu/istek ID'si                                                     |
|                  `message_name`                 |       String      | Mesajın adı                                                                 |
|                 `message_title`                 |       String      | Mesaj başlığı (yalnızca İngilizce)                                          |
|                `message_contents`               |       String      | Kısaltılmış mesaj gövdesi (yalnızca İngilizce)                              |
|                 `failure_reason`                |       String      | Başarısızlık nedeni (push başarısızlık ve email başarısızlık olayları için) |
| `_created`, `_id`, `_index`, `_fivetran_synced` | *Dahili kullanım* | Fivetran senkronizasyon meta verileri                                       |

### Notlar

* Kaydetme/etkinleştirme sonrası senkronizasyonlar tamamlanması için ek 15-30 dakika alabilir.
* Devre dışı bırakma, devre dışı bırakıldıktan sonra hala bir son senkronizasyonla sonuçlanabilir.
* Verimli veri senkronizasyonunu sağlamak için sistemimiz otomatik olarak hazırlama veri kümelerini oluşturur ve yönetir. `fivetran_{iki rastgele kelime}_staging` gibi bir desenle adlandırılan bu veri kümeleri, ana şemanıza entegre edilmeden önce işleme sırasında geçici olarak veri depolar. Bu hazırlama veri kümeleri akıcı bir iş akışını sürdürmek için gereklidir ve otomatik olarak yeniden oluşturulacakları için silinmemelidir.

***

## BigQuery'den etkinlikleri içe aktarma

BigQuery'den OneSignal'a davranışsal etkinlik verilerini göndererek:

* Kullanıcı etkinliğine dayalı Yolculukları tetikleyin
* Davranışsal verilere dayalı mesajlaşmayı kişiselleştirin

**Gereksinimler**

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

- BigQuery ve etkinlik veri tabloları olan GCP projesi
- Okuma izinlerine sahip hizmet hesabı
- BigQuery veri kümelerinde davranışsal veri içeren etkinlik veri tabloları

**Kurulum Adımları**

<Steps>
  <Step title="BigQuery hizmet hesabı oluşturun">
    OneSignal, bağlantıyı oluşturduğunuzda otomatik olarak bir hizmet hesabı oluşturacaktır. Alternatif olarak, kendi hizmet hesabı anahtar JSON dosyanızı sağlayabilirsiniz.

    Kendi hizmet hesabınızı oluşturuyorsanız, aşağıda listelenen gerekli izinlere sahip olduğundan emin olun.
  </Step>

  <Step title="Gerekli izinleri verin">
    OneSignal hizmet hesabı şu BigQuery IAM rollerine ihtiyaç duyar:

    * **`bigquery.dataViewer`** - Etkinlik verileri içeren veri kümelerine ve tablolara okuma erişimi
    * **`bigquery.jobUser`** - Veri sorguları için işler oluşturma izni
    * **`bigquery.metadataViewer`** - Proje düzeyinde meta veri erişimi (önerilir)

    Google Cloud Console veya CLI kullanarak izinleri verin:

    ```bash theme={null}
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member serviceAccount:ONESIGNAL_SERVICE_ACCOUNT_EMAIL \
      --role roles/bigquery.dataViewer

    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member serviceAccount:ONESIGNAL_SERVICE_ACCOUNT_EMAIL \
      --role roles/bigquery.jobUser
    ```
  </Step>

  <Step title="OneSignal'da entegrasyonu ekleyin">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

    <Frame caption="BigQuery entegrasyonu ekleyin">
      <img src="https://mintcdn.com/onesignal/IHzVtEbivOs2EktQ/images/integrations/bigquery-add-integration.png?fit=max&auto=format&n=IHzVtEbivOs2EktQ&q=85&s=6877dc14cfe8f9c1677404353927e4f8" width="1944" height="1764" data-path="images/integrations/bigquery-add-integration.png" />
    </Frame>

    * **Senkronizasyon Motoru**: Büyük veri kümeleri veya karmaşık etkinlik veri sorguları için gelişmiş senkronizasyon önerilir. Temel senkronizasyonla başlayabilir ve gerekirse daha sonra gelişmiş senkronizasyona geçebilirsiniz.
    * **Google Cloud Proje Kimliği**: BigQuery veri kümelerini içeren GCP projeniz
    * **Veri Kümesi Bölgesi**: BigQuery veri kümelerinizin depolandığı konum
    * **Hizmet Hesabı Anahtarı** (isteğe bağlı): Kendi hizmet hesabınızı kullanıyorsanız JSON anahtar dosyası
  </Step>

  <Step title="Etkinlik veri kaynağını yapılandırın">
    Etkinlik verilerinizi içeren BigQuery veri kümesini ve tablosunu belirtin:

    * **Veri Kümesi**: BigQuery veri kümesi adı (örn. `analytics_events`)
    * **Tablo/Görünüm**: Etkinlik kayıtlarını içeren tablo veya görünüm
    * **Etkinlik Sorgusu**: Etkinlik verilerini filtrelemek veya dönüştürmek için isteğe bağlı SQL sorgusu

    Etkinlik tablonuz şunlar için sütunlar içermelidir:

    * Etkinlik adı/türü
    * Kullanıcı tanımlayıcısı
    * Etkinlik zaman damgası
    * Ek etkinlik özellikleri
  </Step>

  <Step title="Bağlantıyı test edin">
    OneSignal'ın BigQuery projenize erişebileceğini ve etkinlik verilerini okuyabileceğini doğrulamak için **Bağlantıyı Test Et**'e tıklayı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       |

### Gelişmiş yapılandırma

#### Özel SQL Sorguları

OneSignal'a senkronize etmeden önce etkinlik verilerini filtrelemek veya dönüştürmek için özel SQL kullanın:

```sql theme={null}
SELECT
  event_name,
  user_id,
  event_timestamp,
  STRUCT(
    product_id,
    purchase_amount,
    category
  ) as payload
FROM `project.dataset.events`
WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
```

#### Çapraz Proje Erişimi

Etkinlik verileriniz birden fazla BigQuery projesine yayılıyorsa, OneSignal hizmet hesabına referans verilen tabloları veya görünümleri içeren her projeye erişim verin.

<Warning>
  Optimal performans için BigQuery bağlantı bölgeniz belirli tablo bölgesiyle eşleşmelidir.
</Warning>

***

## SSS

### Senkronizasyonum neden başarısız oluyor?

Senkronizasyonunuzun başarısız olmasının birkaç yaygın nedeni vardır:

* Hizmet hesabı gerekli izinlere sahip değil
* Kaynak veri kümesi temel senkronizasyon için çok büyük ve gelişmiş senkronizasyon kullanmanız gerekiyor

Yukarıdaki kurulum adımlarını inceleyin ve bunları doğru şekilde takip ettiğinizden emin olun. Hala sorun yaşıyorsanız, lütfen `support@onesignal.com` ile iletişime geçin.

### Aynı içerik için neden birden fazla mesaj kimliği görüyorum?

Bu genellikle bir mesaj şablonu birden fazla gönderimde veya tetiklenen akışta yeniden kullanıldığında meydana gelir.

### OneSignal ne sıklıkla veri senkronize eder?

Hem dışa aktarma hem de içe aktarma entegrasyonları her 15 dakikada bir kadar sık senkronize edebilir.

### BigQuery görünümlerini kullanabilir miyim?

Evet. Sadece hizmet hesabının görünümde referans verilen tüm tablolara erişimi olduğundan emin olun.

***

## İlgili Kaynaklar

* [GCP'de hizmet hesabı anahtarları oluşturma](https://cloud.google.com/iam/docs/creating-managing-service-account-keys#creating)
* [OneSignal Yolculuklar belgeleri](./journeys-overview)
* [OneSignal Veri Dışa Aktarma belgeleri](./exporting-data)

***
