PostHog Konektor
Povežite PostHog s Brevom putem Taja kako biste sinkronizirali podatke o analitici proizvoda, korisničke bihevioralne događaje i članstva u kohortama za marketinške kampanje temeljene na podacima i personalizirani angažman klijenata.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | PostHog |
| Kategorija | Analitika proizvoda (Prilagođeno) |
| Složenost postavljanja | Srednje |
| Službena integracija | Ne |
| Sinkronizirani podaci | Događaji, Osobe, Feature zastavice, Kohorte |
| Metoda autentifikacije | Personal API Key / Project Token |
Značajke
- Sinkronizacija događaja - Prosljeđujte PostHog analitičke događaje u Brevo za bihevioralno ciljanje
- Sinkronizacija profila osoba - Sinkronizirajte PostHog svojstva osoba na Brevo atribute kontakata
- Segmentacija temeljena na kohortama - Mapirajte PostHog kohorte na Brevo popise kontakata
- Sinkronizacija feature zastavica - Segmentirajte kontakte prema omogućenim feature zastavicama
- Podaci o lijevcima - Koristite podatke o konverzijskim lijevcima za ciljani ponovni angažman
- Metapodaci snimke sesije - Obogatite kontakte metrikama angažmana sesije
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- PostHog račun (Cloud ili samo-hostovan)
- Personal API Key iz PostHog Postavke
- Vaš Project API Key (token) iz Postavke projekta
- Brevo račun s API pristupom
- Tajo račun s dozvolama konektora
Autentifikacija
Personal API Key (Privatne krajnje točke)
# Generirajte na https://app.posthog.com/settings/user-api-keysexport POSTHOG_PERSONAL_API_KEY=phx_your_personal_api_keyexport POSTHOG_PROJECT_TOKEN=phc_your_project_tokenexport POSTHOG_HOST=https://us.posthog.com # ili https://eu.posthog.comexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_key// Privatne API krajnje točke koriste Bearer autentifikacijuconst headers = { 'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`, 'Content-Type': 'application/json'};
// Javne krajnje točke koriste project tokenconst publicHeaders = { 'Content-Type': 'application/json'};// Token se prosljeđuje u tijelu zahtjeva za javne krajnje točkeSigurnost API ključa
Personal API ključevi pružaju potpuni pristup računu. Nikada ih ne izlažite u kodu na strani klijenta. Koristite Project API Key (token) za javne krajnje točke poput hvatanja događaja i evaluacije feature zastavica.
Konfiguracija
Osnovna konfiguracija
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 * * *" # Svakih 3 sata
event_filters: - "$pageview" - "purchase_completed" - "signup_completed" - "feature_used"
lists: all_users: 25 active_users: 26 power_users: 27Mapiranje polja
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_COHORTSAPI krajnje točke
| Krajnja točka | Metoda | Opis |
|---|---|---|
{host}/api/projects/{id}/persons/ | GET | Popis osoba |
{host}/api/projects/{id}/events/ | GET | Popis događaja |
{host}/api/projects/{id}/cohorts/ | GET | Popis kohorti |
{host}/api/projects/{id}/feature_flags/ | GET | Popis feature zastavica |
{host}/api/projects/{id}/feature_flags/evaluation/ | POST | Evaluacija zastavica |
{host}/api/projects/{id}/insights/ | GET | Popis pohranjenih uvida |
{host}/api/projects/{id}/query/ | POST | Pokretanje HogQL upita |
{host}/i/v0/e | POST | Hvatanje događaja (javno) |
{host}/decide/?v=3 | POST | Odluke feature zastavica (javno) |
Primjeri koda
Inicijalizacija konektora
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'});Sinkronizacija osoba s Brevom
// Paginacija kroz PostHog osobelet 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;}Sinkronizacija kohorti kao Brevo popisa
// Dohvaćanje PostHog kohorti i sinkronizacija članova s Brevo popisimaconst 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) { // Dohvaćanje osoba u ovoj kohorti 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 } }); } }}Pokretanje HogQL upita za analitiku
// Korištenje HogQL-a za upit analitičkih podatakaconst 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] } });}Ograničenja brzine
| Kategorija krajnje točke | Ograničenje | Napomene |
|---|---|---|
| Analitičke krajnje točke | 240/min, 1.200/sat | GET osobe, događaji, uvidi |
| Krajnja točka upita | 2.400/sat | HogQL i prilagođeni upiti |
| Evaluacija feature zastavica | 600/min | Lokalna evaluacijska krajnja točka |
| CRUD krajnje točke | 480/min, 4.800/sat | Operacije stvaranja, ažuriranja, brisanja |
| Javne krajnje točke (hvatanje) | Neograničeno | Hvatanje događaja, odluke zastavica |
Skupni izvozi
Za izvoz podataka o događajima u velikom opsegu, koristite PostHog funkciju skupnih izvoza umjesto API-ja. Skupni izvozi podržavaju S3, BigQuery, Snowflake i druge destinacije.
Rješavanje problema
| Problem | Uzrok | Rješenje |
|---|---|---|
| 401 Unauthorized | Nevažeći API ključ | Provjerite Personal API Key u postavkama |
| 400 Invalid project | Pogrešan ID projekta | Provjerite ID projekta u PostHog URL-u |
| Prazan popis osoba | Nema identificiranih korisnika | Osigurajte da se poziva posthog.identify() |
| Nedostaju svojstva | Svojstva nisu postavljena | Provjerite $set pozive u klijentskom SDK-u |
| Ograničenje brzine 429 | Previše zahtjeva | Implementirajte povratak, provjerite zaglavlja ograničenja brzine |
Način otklanjanja grešaka
connectors: posthog: debug: true log_level: verbose log_queries: true log_sync: truePreporučene prakse
- Identificirajte korisnike - Uvijek pozivajte
posthog.identify()s e-mailom za omogućavanje sinkronizacije osoba - Koristite kohorte za segmentaciju - Iskoristite PostHog bihevioralne kohorte za Brevo popise
- Skupni API zahtjevi - Koristite paginaciju i skupnu obradu za velike skupove podataka
- Koristite HogQL za složene upite - Izvlačite prilagođenu analitiku s SQL-sličnim upitima
- Postavite skupne izvoza - Za velike volumene podataka, preferirajte skupne izvoza nad API anketiranjem
- Filtrirajte relevantne događaje - Sinkronizirajte samo marketinški relevantne događaje za smanjenje šuma
Sigurnost
- Personal API Key - Opsežna Bearer token autentifikacija
- Project token - Javni token samo za operacije na strani klijenta
- Samo HTTPS - Sve krajnje točke zahtijevaju TLS enkripciju
- IP dopuštanje - Dostupno za samo-hostovane instance
- Opseženje ključeva - Stvarajte API ključeve s određenim opsezima dozvola
- GitHub skeniranje tajni - PostHog partnerira s GitHubom za otkrivanje procurjelih ključeva