---
title: "PostHog Bağlayıcısı"
description: "Ürün analitiğini, özellik bayraklarını ve kullanıcı davranış verilerini Tajo üzerinden Brevo ile senkronize etmek için eksiksiz PostHog entegrasyon kılavuzu."
url: https://tajo.io/tr/docs/connectors/custom/posthog/
markdown: https://tajo.io/tr/docs/connectors/custom/posthog.md
lang: tr-TR
robots: noindex
---

Erken erişim talep edin

Adınızı ve iş e-posta adresinizi girin. Tajo erişim talebinizi onaylamanız için size bir bağlantı göndereceğiz.

# PostHog Bağlayıcısı

Bağlayıcı durumu: Planlandı Henüz oluşturulmadı. Tajo bu bağlayıcıyı bugün çalıştırmıyor.

| Kaynak alanı | Hedef alanı | Örnek değer |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Veri odaklı pazarlama kampanyaları ve kişiselleştirilmiş müşteri etkileşimi için ürün analitiği verilerini, kullanıcı davranış olaylarını ve kohort üyeliklerini senkronize etmek üzere PostHog’u Tajo aracılığıyla Brevo’ya bağlayın.

## Genel Bakış

| Özellik | Değer |
| --- | --- |
| **Platform** | PostHog |
| **Kategori** | Ürün Analitiği (Özel) |
| **Kurulum Karmaşıklığı** | Orta |
| **Resmi Entegrasyon** | Hayır |
| **Senkronize Edilen Veri** | Olaylar, Kişiler, Özellik Bayrakları, Kohortlar |
| **Kimlik Doğrulama Yöntemi** | Kişisel API Anahtarı / Proje Belirteci |

## Özellikler

- **Olay senkronizasyonu** - Davranışsal hedefleme için PostHog analitik olaylarını Brevo’ya iletin
- **Kişi profili senkronizasyonu** - PostHog kişi özelliklerini Brevo kişi özniteliklerine senkronize edin
- **Kohort tabanlı segmentasyon** - PostHog kohortlarını Brevo kişi listelerine eşleyin
- **Özellik bayrağı senkronizasyonu** - Kişileri etkinleştirilmiş özellik bayraklarına göre segmentlere ayırın
- **Huni verileri** - Hedefli yeniden etkileşim için dönüşüm huni verilerini kullanın
- **Oturum tekrarı meta verileri** - Kişileri oturum etkileşim metrikleriyle zenginleştirin

## Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

1. Bir PostHog hesabı (Bulut veya kendi barındırılan)
2. [PostHog Ayarlarından](https://app.posthog.com/settings/user-api-keys) bir Kişisel API Anahtarı
3. [Proje Ayarlarınızdan](https://app.posthog.com/project/settings) Proje API Anahtarınız (belirteç)
4. API erişimi olan bir Brevo hesabı
5. Bağlayıcı izinlerine sahip bir Tajo hesabı

## Kimlik Doğrulama

### Kişisel API Anahtarı (Özel Uç Noktalar)

```bash
# https://app.posthog.com/settings/user-api-keys adresinde oluşturun
export POSTHOG_PERSONAL_API_KEY=phx_your_personal_api_key
export POSTHOG_PROJECT_TOKEN=phc_your_project_token
export POSTHOG_HOST=https://us.posthog.com  # veya https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
```

```javascript
// Özel API uç noktaları Bearer kimlik doğrulaması kullanır
const headers = {
  'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
  'Content-Type': 'application/json'
};

// Herkese açık uç noktalar proje belirtecini kullanır
const publicHeaders = {
  'Content-Type': 'application/json'
};
// Herkese açık uç noktalar için belirteç istek gövdesinde iletilir
```

API Anahtarı Güvenliği

Kişisel API anahtarları tam hesap erişimi sağlar. Bunları asla istemci tarafı kodda ifşa etmeyin. Olay yakalama ve özellik bayrağı değerlendirmesi gibi herkese açık uç noktalar için Proje API Anahtarını (belirteç) kullanın.

## Yapılandırma

### Temel Kurulum

```yaml
connectors:
  posthog:
    enabled: true
    host: "${POSTHOG_HOST}"
    personal_api_key: "${POSTHOG_PERSONAL_API_KEY}"
    project_token: "${POSTHOG_PROJECT_TOKEN}"
    project_id: "12345"

    sync:
      persons: true
      events: true
      cohorts: true
      feature_flags: true
      schedule: "0 */3 * * *"  # Her 3 saatte bir

    event_filters:
      - "$pageview"
      - "purchase_completed"
      - "signup_completed"
      - "feature_used"

    lists:
      all_users: 25
      active_users: 26
      power_users: 27
```

### Alan Eşleştirme

```yaml
field_mapping:
  email: email
  $name: FIRSTNAME
  $browser: BROWSER
  $os: OS
  $initial_referrer: REFERRAL_SOURCE
  total_events: EVENT_COUNT
  last_seen: LAST_ACTIVE_DATE
  signup_date: SIGNUP_DATE
  plan: SUBSCRIPTION_PLAN
  company: COMPANY
  cohort_names: POSTHOG_COHORTS
```

## API Uç Noktaları

| Uç Nokta | Yöntem | Açıklama |
| --- | --- | --- |
| `{host}/api/projects/{id}/persons/` | GET | Kişileri listele |
| `{host}/api/projects/{id}/events/` | GET | Olayları listele |
| `{host}/api/projects/{id}/cohorts/` | GET | Kohortları listele |
| `{host}/api/projects/{id}/feature_flags/` | GET | Özellik bayraklarını listele |
| `{host}/api/projects/{id}/feature_flags/evaluation/` | POST | Bayrakları değerlendir |
| `{host}/api/projects/{id}/insights/` | GET | Kayıtlı öngörüleri listele |
| `{host}/api/projects/{id}/query/` | POST | HogQL sorgularını çalıştır |
| `{host}/i/v0/e` | POST | Olayları yakala (herkese açık) |
| `{host}/decide/?v=3` | POST | Özellik bayrağı kararları (herkese açık) |

## Kod Örnekleri

### Bağlayıcıyı Başlatma

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('posthog', {
  host: process.env.POSTHOG_HOST,
  personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY,
  projectToken: process.env.POSTHOG_PROJECT_TOKEN,
  projectId: '12345'
});
```

### Kişileri Brevo’ya Senkronize Etme

```javascript
// PostHog kişileri arasında sayfalama yap
let nextUrl = `${posthogHost}/api/projects/${projectId}/persons/?` +
  new URLSearchParams({ limit: '100' });

while (nextUrl) {
  const response = await fetch(nextUrl, {
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
    }
  });

  const data = await response.json();

  for (const person of data.results) {
    const email = person.properties.$email || person.properties.email;
    if (!email) continue;

    await tajo.contacts.sync({
      email,
      attributes: {
        FIRSTNAME: person.properties.$name || person.properties.name,
        LAST_ACTIVE_DATE: person.properties.$last_seen,
        SIGNUP_DATE: person.created_at,
        EVENT_COUNT: person.properties.$event_count,
        BROWSER: person.properties.$browser,
        OS: person.properties.$os,
        REFERRAL_SOURCE: person.properties.$initial_referrer
      },
      listIds: [25]
    });
  }

  nextUrl = data.next;
}
```

### Kohortları Brevo Listeleri Olarak Senkronize Etme

```javascript
// PostHog kohortlarını al ve üyeleri Brevo listelerine senkronize et
const cohortsResponse = await fetch(
  `${posthogHost}/api/projects/${projectId}/cohorts/`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
    }
  }
);

const { results: cohorts } = await cohortsResponse.json();

for (const cohort of cohorts) {
  // Bu kohorttaki kişileri al
  const personsResponse = await fetch(
    `${posthogHost}/api/projects/${projectId}/cohorts/${cohort.id}/persons/`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
      }
    }
  );

  const { results: persons } = await personsResponse.json();

  for (const person of persons) {
    const email = person.properties.$email || person.properties.email;
    if (email) {
      await tajo.contacts.update(email, {
        attributes: {
          POSTHOG_COHORTS: cohort.name
        }
      });
    }
  }
}
```

### Analitik için HogQL Sorguları Çalıştırma

```javascript
// Analitik verilerini sorgulamak için HogQL kullan
const queryResponse = await fetch(
  `${posthogHost}/api/projects/${projectId}/query/`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      query: {
        kind: 'HogQLQuery',
        query: `
          SELECT
            properties.$email AS email,
            count() AS event_count,
            max(timestamp) AS last_event
          FROM events
          WHERE event = 'purchase_completed'
            AND timestamp > now() - interval 30 day
          GROUP BY email
          HAVING event_count > 3
          ORDER BY event_count DESC
          LIMIT 1000
        `
      }
    })
  }
);

const queryResult = await queryResponse.json();

for (const row of queryResult.results) {
  await tajo.contacts.update(row[0], {
    attributes: {
      PURCHASE_COUNT_30D: row[1],
      LAST_PURCHASE: row[2]
    }
  });
}
```

## Hız Sınırları

| Uç Nokta Kategorisi | Sınır | Notlar |
| --- | --- | --- |
| Analitik uç noktaları | 240/dk, 1.200/sa | GET kişiler, olaylar, öngörüler |
| Sorgu uç noktası | 2.400/sa | HogQL ve özel sorgular |
| Özellik bayrağı değerlendirmesi | 600/dk | Yerel değerlendirme uç noktası |
| CRUD uç noktaları | 480/dk, 4.800/sa | Oluşturma, güncelleme, silme işlemleri |
| Herkese açık uç noktalar (yakalama) | Sınırsız | Olay yakalama, bayrak kararları |

Toplu Dışa Aktarmalar

Büyük ölçekli olay veri dışa aktarmaları için API yerine PostHog’un toplu dışa aktarma özelliğini kullanın. Toplu dışa aktarmalar S3, BigQuery, Snowflake ve diğer hedefleri destekler.

## Sorun Giderme

| Sorun | Neden | Çözüm |
| --- | --- | --- |
| 401 Unauthorized | Geçersiz API anahtarı | Kişisel API Anahtarını ayarlarda doğrulayın |
| 400 Invalid project | Yanlış proje kimliği | PostHog URL’sindeki proje kimliğini kontrol edin |
| Boş kişi listesi | Kimliği belirlenmiş kullanıcı yok | `posthog.identify()` çağrıldığından emin olun |
| Özellikler eksik | Özellikler ayarlanmamış | İstemci SDK’sındaki `$set` çağrılarını doğrulayın |
| Hız sınırı 429 | Çok fazla istek | Geri çekilme uygulayın, hız sınırı başlıklarını kontrol edin |

### Hata Ayıklama Modu

```yaml
connectors:
  posthog:
    debug: true
    log_level: verbose
    log_queries: true
    log_sync: true
```

## En İyi Uygulamalar

1. **Kullanıcıları tanımlayın** - Kişi senkronizasyonunu etkinleştirmek için her zaman `posthog.identify()`’yi e-posta ile çağırın
2. **Segmentasyon için kohortları kullanın** - Brevo listeleri için PostHog’un davranışsal kohortlarından yararlanın
3. **API isteklerini toplu işleyin** - Büyük veri kümeleri için sayfalama ve toplu işleme kullanın
4. **Karmaşık sorgular için HogQL kullanın** - Özel analitik verileri SQL benzeri sorgularla çıkarın
5. **Toplu dışa aktarmalar ayarlayın** - Büyük veri hacimleri için API yoklaması yerine toplu dışa aktarmaları tercih edin
6. **İlgili olayları filtreleyin** - Gürültüyü azaltmak için yalnızca pazarlamayla ilgili olayları senkronize edin

## Güvenlik

- **Kişisel API Anahtarı** - Kapsamlı Bearer belirteç kimlik doğrulaması
- **Proje belirteci** - Yalnızca istemci tarafı işlemler için herkese açık belirteç
- **Yalnızca HTTPS** - Tüm uç noktalar TLS şifrelemesi gerektirir
- **IP izin verme listesi** - Kendi barındırılan örnekler için kullanılabilir
- **Anahtar kapsamlandırma** - Belirli izin kapsamlarına sahip API anahtarları oluşturun
- **GitHub gizli anahtar taraması** - PostHog, sızdırılan anahtar tespiti için GitHub ile ortaktır

## İlgili Kaynaklar

- [Optimizely Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/optimizely)
- [Segment Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/segment)
- [Snowflake Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/snowflake)
- [PostHog API Belgeleri](https://posthog.com/docs/api)
