Konektor Mixpanel
Połącz Mixpanel z Brevo przez Tajo, aby połączyć analitykę produktową z automatyzacją marketingu. Synchronizuj profile użytkowników, zdarzenia behawioralne i kohorty, aby tworzyć kampanie oparte na danych z rzeczywistego użytkowania produktu.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Mixpanel |
| Kategoria | Analityka (Niestandardowa) |
| Poziom konfiguracji | Średni |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Zdarzenia, Profile, Kohorty, Grupy |
| Dostępne Skills | 7 |
Funkcje
- Pozyskiwanie zdarzeń - Importuj zdarzenia śledzenia przez Mixpanel Ingestion API do przepływów Brevo
- Synchronizacja profili użytkowników - Mapuj właściwości profili użytkowników Mixpanel na atrybuty kontaktów Brevo
- Eksport kohort - Synchronizuj kohorty Mixpanel z listami kontaktów Brevo dla ukierunkowanych kampanii
- Analityka grup - Synchronizuj dane na poziomie grupy dla B2B marketingu opartego na kontach
- Zarządzanie tożsamością - Korzystaj ze scalania tożsamości Mixpanel dla ujednoliconych profili klientów
- Zapytania JQL - Uruchamiaj niestandardowe zapytania JQL, aby wyodrębniać określone zestawy danych dla Brevo
- Tabele przeglądowe - Synchronizuj dane wzbogacające z tabel przeglądowych Mixpanel
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Mixpanel z utworzonym projektem
- Token projektu Mixpanel do śledzenia po stronie klienta
- Konto serwisowe z odpowiednimi uprawnieniami dla dostępu API po stronie serwera
- Konto Brevo z dostępem do API
- Konto Tajo z danymi uwierzytelniającymi API
Uwierzytelnianie
Konta serwisowe (zalecane)
Mixpanel zaleca używanie kont serwisowych do uwierzytelniania API. Konta serwisowe używają HTTP Basic Auth z nazwą użytkownika (nazwa konta serwisowego) i hasłem (sekret konta serwisowego).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Token projektu
Token projektu służy do śledzenia zdarzeń po stronie klienta i jest bezpieczny do umieszczenia w kodzie klienta:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (dla integracji partnerskich)
Dla integracji aplikacji uzyskujących dostęp do wielu projektów:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Konfiguracja
Podstawowa konfiguracja
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: 17Mapowanie zdarzeń
Mapuj zdarzenia Mixpanel na typy zdarzeń 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"Mapowanie właściwości profilu
Mapuj właściwości użytkowników Mixpanel na atrybuty kontaktów 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: LTVEndpointy API
| Metoda | Endpoint | Opis |
|---|---|---|
POST | /import | Importuj zdarzenia (Ingestion API) |
POST | /track | Śledź zdarzenia (po stronie klienta) |
POST | /engage#$set | Ustaw właściwości profilu użytkownika |
POST | /engage#$set_once | Ustaw właściwości tylko jeśli jeszcze nie ustawione |
POST | /engage#$delete | Usuń profil użytkownika |
POST | /engage#$union | Połącz z właściwościami listy |
POST | /groups | Ustaw właściwości profilu grupy |
GET | /export | Eksportuj surowe dane zdarzeń |
POST | /cohorts/list | Lista zapisanych kohort |
POST | /engage/query | Odpytaj profile użytkowników |
POST | /jql | Uruchom niestandardowe zapytania JQL |
GET | /segmentation | Odpytaj raporty segmentacji |
GET | /retention | Odpytaj raporty retencji |
GET | /funnels | Odpytaj raporty lejka |
Przykłady kodu
Inicjalizacja konektora Mixpanel
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Mixpanel projectawait 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});Importuj zdarzenia przez 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 }Synchronizuj kohortę z Brevo
// Export a Mixpanel cohort and sync to a Brevo listconst 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// }Ustaw właściwości profilu użytkownika
// Set user properties via the Engage APIconst 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: { $first_name: "Jane", $last_name: "Kim", plan: "premium", total_orders: 12, lifetime_value: 1250.00 } }])});Limity API
| API | Limit | Szczegóły |
|---|---|---|
| Ingestion API | 2 GB/min | Na projekt |
| Track API | Bez twardego limitu | Dostarczanie best-effort |
| Engage API | 2 000 aktualizacji/partia | Maks. 2 GB/min na projekt |
| Query API | 60 żądań/godzinę | Na projekt (konto serwisowe) |
| Export API | 60 żądań/godzinę | Maks. 100 dni na zapytanie |
| JQL API | 60 żądań/godzinę | Na projekt |
| Eksport kohort | 60 żądań/godzinę | Na projekt |
Deduplikacja zdarzeń
Mixpanel deduplikuje zdarzenia używając właściwości $insert_id. Zawsze dołączaj unikalny $insert_id, aby zapobiec duplikatom zdarzeń przy ponownym próbowaniu nieudanych importów.
Rozwiązywanie problemów
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| Zdarzenia nie pojawiają się | Zły token projektu | Zweryfikuj, że token pasuje do docelowego projektu |
| Brakujące właściwości profilu | Używanie złego API | Używaj /engage#$set dla właściwości profilu, nie /track |
| Eksport kohorty nie powiódł się | Niewystarczające uprawnienia | Upewnij się, że konto serwisowe ma rolę Admin lub Analyst |
| Duplikaty zdarzeń | Brak $insert_id | Uwzględnij unikalny $insert_id na każdym zdarzeniu |
| 402 Payment Required | Przekroczono limity danych | Sprawdź limity planu Mixpanel i w razie potrzeby ulepsz |
| Dane EU nie przekierowują | Zła rezydencja danych | Używaj api-eu.mixpanel.com dla projektów UE |
| Problemy ze scalaniem tożsamości | Nieprawidłowy distinct_id | Postępuj zgodnie z najlepszymi praktykami zarządzania tożsamością Mixpanel |
Najlepsze praktyki
- Używaj kont serwisowych - Preferuj konta serwisowe nad Project Secret dla uwierzytelniania po stronie serwera
- Uwzględnij
$insert_id- Zawsze ustawiaj unikalny insert ID dla deduplikacji zdarzeń - Wsadowe aktualizacje profilu - Wysyłaj do 2 000 aktualizacji profilu na żądanie dla efektywności
- Używaj endpointów UE - Dla rezydencji danych UE używaj
api-eu.mixpanel.comdla wszystkich wywołań API - Synchronizuj kohorty wg harmonogramu - Konfiguruj codzienną lub tygodniową synchronizację kohort zamiast ciągłego odpytywania
- Mapuj zarezerwowane właściwości - Używaj zarezerwowanych właściwości Mixpanel (
$email,$first_name) dla danych profilu - Monitoruj pozyskiwanie - Używaj strony Events Mixpanel, aby weryfikować poprawne odbieranie zdarzeń
Bezpieczeństwo
- Tylko HTTPS - Cała komunikacja API wymaga szyfrowania TLS
- Izolacja kont serwisowych - Dostęp z zakresem na projekt z uprawnieniami opartymi na rolach
- Deduplikacja zdarzeń - Wbudowana dedup przez
$insert_idzapobiega problemom integralności danych - SOC 2 Type II - Mixpanel posiada certyfikat SOC 2 Type II
- RODO/CCPA - Obsługuje usuwanie danych użytkownika przez GDPR API
- Rezydencja danych UE - Centrum danych UE dostępne dla zgodności europejskiej