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

# Elasticsearch

> Elasticsearch'ten OneSignal'a özel etkinlikleri senkronize ederek kullanıcı davranışlarına dayalı otomatik Journey'ler ve kişiselleştirilmiş mesajlaşma kampanyaları tetikleyin.

export const PLATFORM_0 = "Elasticsearch"

export const DATA_TYPE_0 = "etkinlik belgesi alanları"

export const COLUMN_HEADER_0 = "Elasticsearch Field"

export const PROPERTIES_DESCRIPTION_0 = "İç içe geçmiş nesne veya düzleştirilmiş alanlar"

## Genel Bakış

OneSignal + Elasticsearch entegrasyonu, Elasticsearch kümenizden OneSignal'a özel etkinliklerin otomatik senkronizasyonunu sağlar. Bu, arama ve analitik motorunuzda saklanan kullanıcı davranış verilerine dayalı olarak otomatik Journey'ler ve kişiselleştirilmiş mesajlaşma kampanyaları tetiklemenize olanak tanır.

***

## Gereksinimler

* Giden mesaj etkinlikleri için [Event Streams](/docs/en/event-streams)'e erişim (Plan kısıtlamaları ve aşımlar geçerlidir)
* Gelen etkinlik senkronizasyonu için [Custom Events](/docs/en/custom-events)'e erişim (Plan kısıtlamaları ve aşımlar geçerlidir)
* [Güncellenmiş Hesap Planı](https://onesignal.com/pricing) (ücretsiz uygulamalarda mevcut değildir)

### Elasticsearch

* **Elasticsearch kümesi** (sürüm 7.0 veya üstü önerilir)
* **Kimlik doğrulama bilgileri** (API anahtarı, kullanıcı adı/şifre veya sertifika)
* **Etkinlik indeksleri** uygun belge yapısıyla davranışsal veri içerir
* OneSignal'dan Elasticsearch kümenize **ağ erişimi**

***

## Kurulum

<Steps>
  <Step title="Elasticsearch erişimini yapılandırın">
    OneSignal'ın Elasticsearch kümenize bağlanabildiğinden emin olun:

    **Elasticsearch Cloud için:**

    * Elasticsearch Cloud konsolunuzda **Security**'ye gidin
    * Etkinlik indeksleri için okuma izinlerine sahip bir API anahtarı oluşturun
    * **Cloud ID** ve **API Key**'inizi not edin

    **Self-hosted Elasticsearch için:**

    * Kimlik doğrulamayı yapılandırın (temel kimlik doğrulama veya API anahtarı)
    * Kümenizin OneSignal'ın IP adreslerinden erişilebilir olduğundan emin olun
    * Küme **endpoint URL**'nizi ve **kimlik bilgilerinizi** not edin
  </Step>

  <Step title="Özel kullanıcı oluşturun (önerilir)">
    Etkinlik indekslerine salt okunur erişime sahip OneSignal için özel bir kullanıcı oluşturun:

    ```json theme={null}
    PUT _security/user/onesignal_reader
    {
      "password": "strong_password",
      "roles": ["onesignal_events_reader"]
    }

    PUT _security/role/onesignal_events_reader
    {
      "indices": [
        {
          "names": ["events-*", "user_events"],
          "privileges": ["read", "view_index_metadata"]
        }
      ]
    }
    ```
  </Step>

  <Step title="OneSignal'da entegrasyon ekleyin">
    OneSignal'da, **Veri > Entegrasyonlar**'a gidin ve **Entegrasyon Ekle**'ye tıklayın.

    **Elasticsearch**'i seçin ve şunları sağlayın:

    * **Cluster URL**: Elasticsearch endpoint'iniz (örneğin, `https://your-cluster.es.amazonaws.com`)
    * **Authentication Method**: API Key, Basic Auth veya Certificate
    * **Username/Password** veya **API Key**: Kimlik doğrulama bilgileri
    * **Cloud ID** (Elasticsearch Cloud kullanıyorsanız): Deployment Cloud ID'niz
  </Step>

  <Step title="Etkinlik veri kaynağını yapılandırın">
    Etkinlik verilerinizi içeren Elasticsearch indeksini belirtin:

    * **Index Pattern**: Etkinlikleri içeren indeks veya indeks deseni (örneğin, `events-*`)
    * **Event Query**: Etkinlik belgelerini filtrelemek için isteğe bağlı Elasticsearch Query DSL
    * **Time Field**: Zaman tabanlı filtreleme için zaman damgası alanı (örneğin, `@timestamp`)

    Etkinlik belgeleriniz şunlar için alanlar içermelidir:

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

  <Step title="Bağlantıyı test edin">
    OneSignal'ın Elasticsearch kümenize erişebildiğini ve etkinlik verilerini okuyabildiğini doğrulamak için **Test Connection**'a tıklayın.
  </Step>
</Steps>

***

### Etkinlik veri eşleştirme

{PLATFORM_0} {DATA_TYPE_0} verilerinizi OneSignal'ın özel etkinlik formatına eşleştirin:

| OneSignal Alanı | {COLUMN_HEADER_0} | Açıklama                       | Gerekli |
| --------------- | ----------------- | ------------------------------ | ------- |
| `name`          | `event_name`      | Etkinlik tanımlayıcı           | Evet    |
| `external_id`   | `user_id`         | Kullanıcı tanımlayıcı          | Evet    |
| `timestamp`     | `event_timestamp` | Etkinliğin gerçekleştiği zaman | Hayır   |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0}     | Hayır   |

***

## Gelişmiş Yapılandırma

### Query DSL Filtreleme

OneSignal'a senkronize etmeden önce etkinlik verilerini filtrelemek ve dönüştürmek için Elasticsearch Query DSL kullanın:

```json theme={null}
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-7d"
            }
          }
        },
        {
          "terms": {
            "event_name": ["purchase", "signup", "upgrade"]
          }
        }
      ],
      "must_not": [
        {
          "term": {
            "test_user": true
          }
        }
      ]
    }
  },
  "_source": [
    "event_name",
    "user_id",
    "@timestamp",
    "properties.*"
  ]
}
```

### Index Pattern Yapılandırması

Birden fazla indekste verimli sorgulama yapın:

* **Zaman tabanlı indeksler**: Zaman bölümlenmiş veriler için `events-2024-*` gibi desenler kullanın
* **Routing**: Kullanıcı tabanlı sorgular için tutarlı yönlendirme sağlayın
* **Aliases**: Basitleştirilmiş yönetim için indeks takma adları kullanın

### Performans Optimizasyonu

Büyük etkinlik hacimleri için sorguları optimize edin:

* **Alan filtreleme**: Yalnızca gerekli alanları almak için `_source` filtreleme kullanın
* **Scroll API**: Büyük sonuç kümeleri için OneSignal scroll sayfalama kullanır
* **Date math**: Verimli zaman tabanlı filtreleme için Elasticsearch date math kullanın

<Warning>
  Elasticsearch kümenizin, kümeyi kullanan diğer uygulamaları etkilemeden OneSignal'ın sorgularını işlemek için yeterli kaynaklara sahip olduğundan emin olun.
</Warning>

***

## SSS

### OneSignal etkinlikleri Elasticsearch'ten ne sıklıkla senkronize eder?

OneSignal, yapılandırılmış programınıza göre minimum 15 dakikalık aralıklarla etkinlik verilerini senkronize eder.

### Birden fazla Elasticsearch indeksinden etkinlikleri senkronize edebilir miyim?

Evet, birden fazla indekste sorgu yapmak için indeks desenleri (örneğin, `events-*`) kullanabilir veya farklı indeks grupları için birden fazla entegrasyon oluşturabilirsiniz.

### Elasticsearch kümem geçici olarak kullanılamıyorsa ne olur?

OneSignal üstel geri çekilme ile bağlantıları yeniden deneyecektir. Kümeniz tekrar erişilebilir olduğunda etkinlik senkronizasyonu otomatik olarak devam edecektir.
