موصل Mixpanel

اربط Mixpanel بـ Brevo عبر Tajo لتجسير تحليلات المنتج مع أتمتة التسويق. زامن ملفات المستخدمين والأحداث السلوكية والمجموعات لإنشاء حملات مدفوعة بالبيانات مبنية على الاستخدام الفعلي للمنتج.

نظرة عامة

الخاصيةالقيمة
المنصةMixpanel
الفئةتحليلات (مخصص)
تعقيد الإعدادمتوسط
تكامل رسميلا
البيانات المتزامنةالأحداث، الملفات، المجموعات، المجموعات التنظيمية
المهارات المتاحة7

الميزات

  • استيعاب الأحداث - استيراد أحداث التتبع عبر Mixpanel Ingestion API إلى سير عمل Brevo
  • مزامنة ملفات المستخدمين - ربط خصائص ملفات مستخدمي Mixpanel بسمات جهات اتصال Brevo
  • تصدير المجموعات - مزامنة مجموعات Mixpanel إلى قوائم جهات اتصال Brevo لحملات مستهدفة
  • تحليلات المجموعات - مزامنة البيانات على مستوى المجموعة للتسويق القائم على الحسابات B2B
  • إدارة الهوية - الاستفادة من دمج الهوية في Mixpanel لملفات عملاء موحدة
  • استعلامات JQL - تشغيل استعلامات JQL مخصصة لاستخراج مجموعات بيانات محددة لـ Brevo
  • جداول البحث - مزامنة بيانات الإثراء من جداول البحث في Mixpanel

المتطلبات المسبقة

قبل أن تبدأ، تأكد من توفر ما يلي:

  1. حساب Mixpanel مع مشروع تم إنشاؤه
  2. Mixpanel Project Token الخاص بك للتتبع من جانب العميل
  3. Service Account بأذونات مناسبة للوصول إلى API من جانب الخادم
  4. حساب Brevo مع وصول API
  5. حساب Tajo مع بيانات اعتماد API

المصادقة

Service Accounts (موصى بها)

يوصي Mixpanel باستخدام Service Accounts لمصادقة API. تستخدم حسابات الخدمة HTTP Basic Auth مع اسم المستخدم (اسم مستخدم حساب الخدمة) وكلمة المرور (سر حساب الخدمة).

Terminal window
# Service Account authentication
curl https://mixpanel.com/api/app/me \
-u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"

Project Token

يُستخدم Project Token لتتبع الأحداث من جانب العميل وهو آمن للتضمين في كود العميل:

// Client-side initialization
mixpanel.init("YOUR_PROJECT_TOKEN");

OAuth (لتكاملات الشركاء)

لتكاملات التطبيقات التي تصل إلى مشاريع متعددة:

Terminal window
curl https://mixpanel.com/api/2.0/engage \
-H "Authorization: Bearer YOUR_OAUTH_TOKEN"

الإعداد

الإعداد الأساسي

connectors:
mixpanel:
enabled: true
project_token: "your-project-token"
service_account:
username: "your-service-account-username"
secret: "your-service-account-secret"
project_id: "12345"
data_residency: "US" # or "EU"
# Data sync options
sync:
events: true
profiles: true
cohorts: true
groups: false
# Brevo list assignment
lists:
all_users: 15
engaged_users: 16
at_risk: 17

ربط الأحداث

اربط أحداث Mixpanel بأنواع أحداث Brevo:

event_mapping:
# Mixpanel event -> Brevo event
"Purchase": "order_completed"
"Sign Up": "customer_created"
"Add to Cart": "cart_updated"
"Page View": "page_viewed"
"$experiment_started": "experiment_started"
# Custom events
"Feature Activated": "feature_used"
"Subscription Renewed": "subscription_renewed"

ربط خصائص الملف الشخصي

اربط خصائص مستخدمي Mixpanel بسمات جهات اتصال Brevo:

property_mapping:
$email: email
$first_name: FIRSTNAME
$last_name: LASTNAME
$phone: SMS
$city: CITY
$region: REGION
$country_code: COUNTRY
plan: PLAN_TYPE
company: COMPANY
signup_date: SIGNUP_DATE
total_revenue: LTV

نقاط نهاية API

الطريقةنقطة النهايةالوصف
POST/importاستيراد الأحداث (Ingestion API)
POST/trackتتبع الأحداث (من جانب العميل)
POST/engage#$setضبط خصائص ملف المستخدم
POST/engage#$set_onceضبط الخصائص فقط إذا لم تكن مضبوطة
POST/engage#$deleteحذف ملف مستخدم
POST/engage#$unionدمج إلى خصائص القائمة
POST/groupsضبط خصائص ملف المجموعة
GET/exportتصدير بيانات الأحداث الخام
POST/cohorts/listعرض المجموعات المحفوظة
POST/engage/queryاستعلام ملفات المستخدمين
POST/jqlتشغيل استعلامات JQL مخصصة
GET/segmentationاستعلام تقارير التقسيم
GET/retentionاستعلام تقارير الاحتفاظ
GET/funnelsاستعلام تقارير القمع

أمثلة البرمجة

تهيئة موصل Mixpanel

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Mixpanel project
await tajo.connectors.connect('mixpanel', {
projectToken: process.env.MIXPANEL_TOKEN,
serviceAccountUser: process.env.MIXPANEL_SA_USER,
serviceAccountSecret: process.env.MIXPANEL_SA_SECRET,
projectId: process.env.MIXPANEL_PROJECT_ID
});

استيراد الأحداث عبر Ingestion API

// Import events to Mixpanel (automatically forwarded to Brevo)
const response = await fetch('https://api.mixpanel.com/import', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(
`${process.env.MIXPANEL_SA_USER}:${process.env.MIXPANEL_SA_SECRET}`
)
},
body: JSON.stringify([
{
event: "Purchase",
properties: {
distinct_id: "user_123",
$insert_id: "evt_abc123",
time: Math.floor(Date.now() / 1000),
revenue: 89.99,
product_id: "SKU-001",
product_name: "Widget Pro"
}
}
])
});
// Expected response: { "code": 200, "status": "OK", "num_records_imported": 1 }

مزامنة مجموعة إلى Brevo

// Export a Mixpanel cohort and sync to a Brevo list
const cohort = await tajo.connectors.syncCohort('mixpanel', {
cohortId: 12345,
targetList: 16,
syncMode: 'mirror'
});
console.log(cohort);
// {
// cohortName: "Engaged Users (Last 7 Days)",
// membersCount: 3200,
// syncedToBrevo: 3200,
// listId: 16
// }

ضبط خصائص ملف المستخدم

// Set user properties via the Engage API
const response = await fetch('https://api.mixpanel.com/engage#$set', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify([{
$token: process.env.MIXPANEL_TOKEN,
$distinct_id: "user_123",
$set: {
$email: "[email protected]",
$first_name: "Jane",
$last_name: "Kim",
plan: "premium",
total_orders: 12,
lifetime_value: 1250.00
}
}])
});

حدود المعدل

APIالحدالتفاصيل
Ingestion API2 GB/دقيقةلكل مشروع
Track APIلا حد صارمتسليم بأفضل جهد
Engage API2,000 تحديث/دُفعةبحد أقصى 2 GB/دقيقة لكل مشروع
Query API60 طلبًا/ساعةلكل مشروع (Service Account)
Export API60 طلبًا/ساعةحد أقصى 100 يوم لكل استعلام
JQL API60 طلبًا/ساعةلكل مشروع
تصدير المجموعة60 طلبًا/ساعةلكل مشروع

إلغاء تكرار الأحداث

يُلغي Mixpanel تكرار الأحداث باستخدام خاصية $insert_id. أدرج دائمًا $insert_id فريدًا لمنع الأحداث المكررة عند إعادة محاولة الاستيرادات الفاشلة.

استكشاف الأخطاء

المشكلةالسببالحل
الأحداث لا تظهررمز مشروع خاطئتحقق من أن الرمز يتطابق مع المشروع المستهدف
خصائص الملف مفقودةاستخدام API خاطئاستخدم /engage#$set لخصائص الملف، وليس /track
فشل تصدير المجموعةأذونات غير كافيةتأكد من أن Service Account لديه دور Admin أو Analyst
أحداث مكررة$insert_id مفقودأدرج $insert_id فريدًا في كل حدث
402 Payment Requiredتجاوز حدود البياناتتحقق من حدود خطة Mixpanel وقم بالترقية إذا لزم الأمر
بيانات EU لا تُوجَّهإقامة بيانات خاطئةاستخدم api-eu.mixpanel.com لمشاريع EU
مشاكل دمج الهويةdistinct_id غير صحيحاتبع أفضل ممارسات إدارة الهوية في Mixpanel

أفضل الممارسات

  1. استخدم Service Accounts - فضّل Service Accounts على Project Secret للمصادقة من جانب الخادم
  2. أدرج $insert_id - اضبط دائمًا معرف إدراج فريد لإلغاء تكرار الأحداث
  3. جمّع تحديثات الملفات - أرسل حتى 2,000 تحديث ملف لكل طلب للكفاءة
  4. استخدم نقاط نهاية EU - لإقامة بيانات EU، استخدم api-eu.mixpanel.com لجميع استدعاءات API
  5. زامن المجموعات وفق جدول - اضبط مزامنة يومية أو أسبوعية للمجموعات بدلاً من الاستطلاع المستمر
  6. اربط الخصائص المحجوزة - استخدم خصائص Mixpanel المحجوزة ($email، $first_name) لبيانات الملف
  7. راقب الاستيعاب - استخدم صفحة الأحداث في Mixpanel للتحقق من استلام الأحداث بشكل صحيح

الأمان

  • HTTPS فقط - جميع اتصالات API تتطلب تشفير TLS
  • عزل Service Account - وصول محدد النطاق لكل مشروع مع أذونات قائمة على الأدوار
  • إلغاء تكرار الأحداث - إلغاء تكرار مدمج عبر $insert_id يمنع مشاكل سلامة البيانات
  • SOC 2 Type II - Mixpanel معتمد SOC 2 Type II
  • GDPR/CCPA - يدعم حذف بيانات المستخدم عبر GDPR API
  • إقامة بيانات EU - مركز بيانات EU متاح للامتثال الأوروبي

موارد ذات صلة

Subscribe to updates

developer-docs

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

auto-detect
مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.