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

# Materialize

> Gerçek zamanlı kullanıcı davranışına dayalı otomatik Journey'leri ve kişiselleştirilmiş mesajlaşma kampanyalarını tetiklemek için özel olayları Materialize'den OneSignal'e senkronize edin.

export const PLATFORM_0 = "Materialize"

export const DATA_TYPE_0 = "görünüm veya tablo sütunları"

export const COLUMN_HEADER_0 = "Materialize Sütunu"

export const PROPERTIES_DESCRIPTION_0 = "Olay meta verileri içeren JSON nesnesi"

## Genel bakış

OneSignal + Materialize entegrasyonu, gerçek zamanlı kullanıcı davranışına dayalı otomatik mesajlaşma kampanyalarını ve Journey'leri tetiklemek için Materialize akış veritabanınızdan OneSignal'e özel olayların otomatik senkronizasyonunu sağlar.

Materialize, verilerinizin aşamalı olarak güncellenmiş görünümlerini koruyan PostgreSQL uyumlu bir akış veritabanıdır ve gerçek zamanlı analitik ve olay işlemeyi mümkün kılar.

***

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

### Materialize

* Konsol erişimi olan **Materialize hesabı**
* Harici araç kimlik doğrulaması için **App Password**
* Olay verileri içeren **Materialized views** veya tablolar
* Materialize veritabanınızda erişilebilir **Olay verileri**

***

## Kurulum

<Steps>
  <Step title="Materialize bağlantı ayrıntılarını alın">
    Materialize konsolunda oturum açın ve bağlantı ayrıntılarınızı bulmak için **Connect** sayfasına gidin.
  </Step>

  <Step title="App Password oluşturun">
    Materialize konsolunda, OneSignal'in kimlik doğrulama için kullanması için yeni bir **App Password** oluşturun.
  </Step>

  <Step title="OneSignal'e bağlanın">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

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

    * **Host:** Materialize ana bilgisayar adınız (Materialize konsolu Connect sayfasındaki **External Tools** altında bulunur)
    * **Username:** E-posta adresiniz (Materialize'de oturum açmak için kullanılır)
    * **Password:** Adım 2'de oluşturulan App Password
    * **Database:** Veritabanı adı (isteğe bağlı, varsayılan olarak `materialize`)
  </Step>

  <Step title="Bağlantıyı test edin">
    Bağlantının doğru çalıştığını doğrulamak için **Test**'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       |

### Gerçek zamanlı Olay Görünümü Örneği

```sql theme={null}
-- Son olaylar için gerçek zamanlı materialized view
CREATE MATERIALIZED VIEW analytics.recent_user_events AS
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties,
    session_id,
    device_type
FROM raw_events.stream
WHERE event_timestamp >= NOW() - INTERVAL '1 day';
```

***

## İşleme Modları

### Materialized Views (Önerilir)

Yeni veriler geldikçe otomatik olarak güncellenen materialized view'lardan senkronize ederek Materialize'in gerçek zamanlı işlemesinden yararlanın:

```sql theme={null}
-- Yüksek değerli olaylar materialized view
CREATE MATERIALIZED VIEW analytics.high_value_events AS
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties || jsonb_build_object(
        'source', 'materialize',
        'value_tier', 'high'
    ) as event_properties
FROM raw_events.stream
WHERE (event_properties->>'value')::numeric > 100;
```

### SQL Sorgu Modu

Olay verilerinizi dönüştürmek için özel PostgreSQL uyumlu sorgular yazın:

```sql theme={null}
-- Gerçek zamanlı kullanıcı aktivite özeti
SELECT
    'activity_summary' as event_name,
    user_id,
    NOW() as event_timestamp,
    jsonb_build_object(
        'events_last_hour', COUNT(*),
        'unique_sessions', COUNT(DISTINCT session_id),
        'total_value', SUM((event_properties->>'value')::numeric),
        'last_seen', MAX(event_timestamp)
    ) as event_properties
FROM analytics.recent_user_events
WHERE event_timestamp >= NOW() - INTERVAL '1 hour'
GROUP BY user_id
HAVING COUNT(*) >= 5;
```

### Gerçek zamanlı Akış İşleme

```sql theme={null}
-- Aşamalı profil oluşturma görünümü
CREATE MATERIALIZED VIEW analytics.user_progression AS
SELECT
    user_id,
    COUNT(*) as total_events,
    COUNT(DISTINCT event_name) as unique_event_types,
    MAX(event_timestamp) as last_activity,
    CASE
        WHEN COUNT(*) >= 50 THEN 'power_user'
        WHEN COUNT(*) >= 20 THEN 'active_user'
        WHEN COUNT(*) >= 5 THEN 'engaged_user'
        ELSE 'new_user'
    END as user_segment
FROM raw_events.stream
GROUP BY user_id;
```

***

## Sınırlamalar

* Materialize yalnızca Basic Sync Engine'i destekler
* Gerçek zamanlı sorgular daha fazla işlem kaynağı tüketebilir
* Büyük veri kümeleri arasındaki karmaşık birleştirmeler optimize edilmelidir
* Materialized view'lar sürekli küme kaynakları gerektirir

***

## SSS

### Materialize'de gerçek zamanlı performansı nasıl optimize ederim?

Sık sorgulanan sütunlarda indeksler kullanın ve daha iyi performans için büyük olay veri kümelerini zaman aralıklarına göre bölümlemeyi düşünün.

### Hem tablolardan hem de materialized view'lardan senkronize edebilir miyim?

Evet, OneSignal Materialize'deki hem statik tablolardan hem de gerçek zamanlı materialized view'lardan okuyabilir.

### Gerçek zamanlı senkronizasyon nasıl çalışır?

Materialize aşamalı olarak güncellenmiş görünümleri korur, bu nedenle OneSignal ek işlem yükü olmadan her zaman verilerinizin en son durumunu okuyacaktır.

***
