PostHog Bağlayıcısı

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ış

ÖzellikDeğer
PlatformPostHog
KategoriÜrün Analitiği (Özel)
Kurulum KarmaşıklığıOrta
Resmi EntegrasyonHayır
Senkronize Edilen VeriOlaylar, Kişiler, Özellik Bayrakları, Kohortlar
Kimlik Doğrulama YöntemiKiş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 bir Kişisel API Anahtarı
  3. Proje Ayarlarınızdan 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)

Terminal window
# 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
// Ö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

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

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ç NoktaYöntemAçıklama
{host}/api/projects/{id}/persons/GETKişileri listele
{host}/api/projects/{id}/events/GETOlayları listele
{host}/api/projects/{id}/cohorts/GETKohortları listele
{host}/api/projects/{id}/feature_flags/GETÖzellik bayraklarını listele
{host}/api/projects/{id}/feature_flags/evaluation/POSTBayrakları değerlendir
{host}/api/projects/{id}/insights/GETKayıtlı öngörüleri listele
{host}/api/projects/{id}/query/POSTHogQL sorgularını çalıştır
{host}/i/v0/ePOSTOlayları yakala (herkese açık)
{host}/decide/?v=3POSTÖzellik bayrağı kararları (herkese açık)

Kod Örnekleri

Bağlayıcıyı Başlatma

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

// 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

// 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

// 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 KategorisiSınırNotlar
Analitik uç noktaları240/dk, 1.200/saGET kişiler, olaylar, öngörüler
Sorgu uç noktası2.400/saHogQL ve özel sorgular
Özellik bayrağı değerlendirmesi600/dkYerel değerlendirme uç noktası
CRUD uç noktaları480/dk, 4.800/saOluşturma, güncelleme, silme işlemleri
Herkese açık uç noktalar (yakalama)SınırsızOlay 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

SorunNedenÇözüm
401 UnauthorizedGeçersiz API anahtarıKişisel API Anahtarını ayarlarda doğrulayın
400 Invalid projectYanlış proje kimliğiPostHog URL’sindeki proje kimliğini kontrol edin
Boş kişi listesiKimliği belirlenmiş kullanıcı yokposthog.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 istekGeri çekilme uygulayın, hız sınırı başlıklarını kontrol edin

Hata Ayıklama Modu

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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI Asistan

Merhaba! Belgeler hakkında her şeyi sorabilirsiniz.