PostHog کنیکٹر

ڈیٹا سے چلنے والی مارکیٹنگ مہمات اور ذاتی کسٹمر انگیجمنٹ کے لیے پروڈکٹ اینالیٹکس ڈیٹا، صارف کے رویے کے ایونٹس، اور کوہارٹ ممبرشپس سنک کرنے کے لیے PostHog کو Tajo کے ذریعے Brevo سے منسلک کریں۔

جائزہ

خاصیتقدر
پلیٹ فارمPostHog
زمرہپروڈکٹ اینالیٹکس (حسب ضرورت)
سیٹ اپ کی پیچیدگیمعتدل
آفیشل انٹیگریشننہیں
سنک شدہ ڈیٹاایونٹس، Persons، Feature Flags، کوہارٹس
توثیقی طریقہPersonal API Key / Project Token

خصوصیات

  • ایونٹ سنک - رویّاتی ہدف بنانے کے لیے PostHog اینالیٹکس ایونٹس کو Brevo کو آگے بھیجیں
  • Person پروفائل سنک - PostHog person خصوصیات کو Brevo رابطہ خصوصیات سے سنک کریں
  • کوہارٹ پر مبنی سیگمنٹیشن - PostHog کوہارٹس کو Brevo رابطہ فہرستوں سے میپ کریں
  • Feature flag سنک - فعال feature flags کے ذریعے رابطوں کو سیگمنٹ کریں
  • فنل ڈیٹا - ہدف بنائی گئی ری-انگیجمنٹ کے لیے conversion فنل ڈیٹا کا استعمال کریں
  • Session replay میٹا ڈیٹا - session engagement میٹرکس کے ساتھ رابطوں کو بہتر بنائیں

ضروریات

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

  1. PostHog اکاؤنٹ (Cloud یا self-hosted)
  2. PostHog Settings سے Personal API Key
  3. Project Settings سے آپ کا Project API Key (token)
  4. API رسائی کے ساتھ Brevo اکاؤنٹ
  5. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

توثیق

Personal API Key (پرائیویٹ اینڈ پوائنٹس)

Terminal window
# https://app.posthog.com/settings/user-api-keys پر تخلیق کریں
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 # or https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// پرائیویٹ API اینڈ پوائنٹس Bearer توثیق استعمال کرتے ہیں
const headers = {
'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
'Content-Type': 'application/json'
};
// عوامی اینڈ پوائنٹس project token استعمال کرتے ہیں
const publicHeaders = {
'Content-Type': 'application/json'
};
// عوامی اینڈ پوائنٹس کے لیے ٹوکن درخواست کے مواد میں پاس کیا جاتا ہے

API Key سیکیورٹی

Personal API keys مکمل اکاؤنٹ رسائی فراہم کرتے ہیں۔ انہیں کبھی کلائنٹ سائیڈ کوڈ میں ظاہر نہ کریں۔ عوامی اینڈ پوائنٹس جیسے event capture اور feature flag evaluation کے لیے Project API Key (token) استعمال کریں۔

کنفیگریشن

بنیادی سیٹ اپ

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 * * *" # Every 3 hours
event_filters:
- "$pageview"
- "purchase_completed"
- "signup_completed"
- "feature_used"
lists:
all_users: 25
active_users: 26
power_users: 27

فیلڈ میپنگ

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 اینڈ پوائنٹس

اینڈ پوائنٹطریقہتفصیل
{host}/api/projects/{id}/persons/GETpersons کی فہرست
{host}/api/projects/{id}/events/GETایونٹس کی فہرست
{host}/api/projects/{id}/cohorts/GETکوہارٹس کی فہرست
{host}/api/projects/{id}/feature_flags/GETfeature flags کی فہرست
{host}/api/projects/{id}/feature_flags/evaluation/POSTflags کا جائزہ لیں
{host}/api/projects/{id}/insights/GETمحفوظ insights کی فہرست
{host}/api/projects/{id}/query/POSTHogQL queries چلائیں
{host}/i/v0/ePOSTایونٹس capture کریں (عوامی)
{host}/decide/?v=3POSTFeature flag فیصلے (عوامی)

کوڈ مثالیں

کنیکٹر کو شروع کریں

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'
});

Persons کو Brevo سے سنک کریں

// PostHog persons کے ذریعے پیجینیٹ کریں
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;
}

کوہارٹس کو Brevo فہرستوں کے طور پر سنک کریں

// PostHog کوہارٹس حاصل کریں اور ممبران کو Brevo فہرستوں سے سنک کریں
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) {
// اس کوہارٹ میں persons حاصل کریں
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
}
});
}
}
}

اینالیٹکس کے لیے HogQL Queries چلائیں

// اینالیٹکس ڈیٹا کی استفسار کے لیے HogQL استعمال کریں
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]
}
});
}

ریٹ کی حدود

اینڈ پوائنٹ کا زمرہحدنوٹس
اینالیٹکس اینڈ پوائنٹس240/منٹ، 1,200/گھنٹہGET persons، ایونٹس، insights
Query اینڈ پوائنٹ2,400/گھنٹہHogQL اور حسب ضرورت queries
Feature flag evaluation600/منٹLocal evaluation اینڈ پوائنٹ
CRUD اینڈ پوائنٹس480/منٹ، 4,800/گھنٹہCreate، update، delete operations
عوامی اینڈ پوائنٹس (capture)لامحدودEvent capture، flag فیصلے

Batch Exports

بڑے پیمانے پر ایونٹ ڈیٹا exports کے لیے، API کے بجائے PostHog کی batch exports خصوصیت استعمال کریں۔ Batch exports S3، BigQuery، Snowflake، اور دیگر منزلوں کی حمایت کرتے ہیں۔

مسائل کا سراغ

مسئلہوجہحل
401 Unauthorizedغیر معتبر API keyسیٹنگز میں Personal API Key کی تصدیق کریں
400 Invalid projectغلط project IDPostHog URL میں project ID چیک کریں
خالی persons فہرستکوئی شناخت شدہ صارفین نہیںیقینی بنائیں کہ posthog.identify() کال کیا گیا ہے
خصوصیات غائبخصوصیات سیٹ نہیںکلائنٹ SDK میں $set کالز کی تصدیق کریں
ریٹ کی حد 429بہت زیادہ درخواستیںبیک آف نافذ کریں، ریٹ کی حد کے ہیڈرز چیک کریں

ڈیبگ موڈ

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

بہترین طریقے

  1. صارفین کی شناخت کریں - person سنک فعال کرنے کے لیے ہمیشہ ای میل کے ساتھ posthog.identify() کال کریں
  2. سیگمنٹیشن کے لیے کوہارٹس استعمال کریں - Brevo فہرستوں کے لیے PostHog کے رویّاتی کوہارٹس کا فائدہ اٹھائیں
  3. API درخواستوں کو بیچ کریں - بڑے ڈیٹا سیٹس کے لیے پیجینیشن اور بیچ پروسیسنگ کا استعمال کریں
  4. پیچیدہ queries کے لیے HogQL استعمال کریں - SQL جیسی queries کے ساتھ حسب ضرورت اینالیٹکس نکالیں
  5. Batch exports سیٹ اپ کریں - بڑے ڈیٹا volumes کے لیے، API پولنگ پر batch exports کو ترجیح دیں
  6. متعلقہ ایونٹس فلٹر کریں - شور کم کرنے کے لیے صرف مارکیٹنگ سے متعلق ایونٹس سنک کریں

سیکیورٹی

  • Personal API Key - محدود Bearer token توثیق
  • Project token - صرف کلائنٹ سائیڈ آپریشنز کے لیے عوامی ٹوکن
  • صرف HTTPS - تمام اینڈ پوائنٹس کو TLS encryption کی ضرورت ہوتی ہے
  • IP allowlisting - self-hosted instances کے لیے دستیاب
  • Key محدود کرنا - مخصوص اجازت اسکوپس کے ساتھ API keys بنائیں
  • GitHub secret scanning - PostHog leaked key کا پتہ لگانے کے لیے GitHub کے ساتھ شراکت کرتا ہے

متعلقہ وسائل

Subscribe to updates

developer-docs

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

auto-detect
AI معاون

السلام علیکم! دستاویزات کے بارے میں کچھ بھی پوچھیں۔