Mixpanel konektor
Poveži Mixpanel sa Brevo putem Tajo kako bi premostio/la analizu proizvoda sa marketing automatizacijom. Sinhronizuj korisničke profile, bihevioralne događaje i kohorte za kreiranje kampanja zasnovanih na podacima temeljenih na stvarnoj upotrebi proizvoda.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Mixpanel |
| Kategorija | Analitika (Prilagođeno) |
| Složenost podešavanja | Srednje |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Događaji, Profili, Kohorte, Grupe |
| Dostupne veštine | 7 |
Karakteristike
- Unos događaja - Uvoz track događaja putem Mixpanel Ingestion API u Brevo tokove
- Sinhronizacija profila korisnika - Mapiranje Mixpanel svojstava korisničkog profila na Brevo atribute kontakta
- Izvoz kohorti - Sinhronizacija Mixpanel kohorti na Brevo liste kontakata za ciljane kampanje
- Grupna analitika - Sinhronizacija podataka na nivou grupe za B2B account-based marketing
- Upravljanje identitetom - Korišćenje Mixpanel spajanja identiteta za ujedinjene korisničke profile
- JQL upiti - Pokretanje prilagođenih JQL upita za ekstrakciju specifičnih skupova podataka za Brevo
- Lookup tabele - Sinhronizacija podataka obogaćivanja iz Mixpanel lookup tabela
Preduslovi
Pre nego što započneš, proveri da imaš:
- Mixpanel nalog sa kreiranim projektom
- Mixpanel Project Token za praćenje na strani klijenta
- Service Account sa odgovarajućim dozvolama za server-side API pristup
- Brevo nalog sa API pristupom
- Tajo nalog sa API kredencijalima
Autentifikacija
Service Accounts (preporučeno)
Mixpanel preporučuje korišćenje Service Accounts za API autentifikaciju. Service accounts koriste HTTP Basic Auth sa korisničkim imenom (korisničko ime service account-a) i lozinkom (secret service account-a).
# Service Account authenticationcurl https://mixpanel.com/api/app/me \ -u "SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET"Project Token
Project Token se koristi za praćenje događaja na strani klijenta i bezbedno je uključiti ga u klijentski kod:
// Client-side initializationmixpanel.init("YOUR_PROJECT_TOKEN");OAuth (za partner integracije)
Za integracije aplikacija koje pristupaju više projekata:
curl https://mixpanel.com/api/2.0/engage \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Konfiguracija
Osnovno podešavanje
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: 17Mapiranje događaja
Mapiranje Mixpanel događaja na Brevo tipove događaja:
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"Mapiranje svojstava profila
Mapiranje Mixpanel korisničkih svojstava na Brevo atribute kontakta:
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: LTVAPI endpointi
| Metoda | Endpoint | Opis |
|---|---|---|
POST | /import | Uvoz događaja (Ingestion API) |
POST | /track | Praćenje događaja (client-side) |
POST | /engage#$set | Postavljanje svojstava korisničkog profila |
POST | /engage#$set_once | Postavljanje svojstava samo ako već nisu postavljena |
POST | /engage#$delete | Brisanje korisničkog profila |
POST | /engage#$union | Union na svojstvima liste |
POST | /groups | Postavljanje svojstava grupnog profila |
GET | /export | Izvoz sirovih podataka o događajima |
POST | /cohorts/list | Listanje sačuvanih kohorti |
POST | /engage/query | Upit korisničkih profila |
POST | /jql | Pokretanje prilagođenih JQL upita |
GET | /segmentation | Upit izveštaja o segmentaciji |
GET | /retention | Upit izveštaja o zadržavanju |
GET | /funnels | Upit izveštaja o levku |
Primeri koda
Inicijalizacija Mixpanel konektora
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});Uvoz događaja putem 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 }Sinhronizacija kohorte sa 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// }Postavljanje svojstava korisničkog profila
// 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 } }])});Ograničenja brzine
| API | Limit | Detalji |
|---|---|---|
| Ingestion API | 2 GB/min | Po projektu |
| Track API | Bez tvrdog limita | Isporuka po mogućnosti |
| Engage API | 2.000 ažuriranja/batch | Maksimalno 2 GB/min po projektu |
| Query API | 60 zahteva/sat | Po projektu (Service Account) |
| Export API | 60 zahteva/sat | Maksimalno 100 dana po upitu |
| JQL API | 60 zahteva/sat | Po projektu |
| Cohort Export | 60 zahteva/sat | Po projektu |
Deduplikacija događaja
Mixpanel deduplira događaje koristeći svojstvo $insert_id. Uvek uključi jedinstveni $insert_id da sprečiš duplikate događaja pri ponovnom pokušaju neuspelih uvoza.
Rešavanje problema
| Problem | Uzrok | Rešenje |
|---|---|---|
| Događaji se ne pojavljuju | Pogrešan project token | Proveri da token odgovara ciljnom projektu |
| Nedostaju svojstva profila | Korišćenje pogrešnog API-ja | Koristi /engage#$set za svojstva profila, ne /track |
| Izvoz kohorte ne uspeva | Nedovoljne dozvole | Proveri da Service Account ima Admin ili Analyst ulogu |
| Duplirani događaji | Nedostaje $insert_id | Uključi jedinstveni $insert_id na svakom događaju |
| 402 Payment Required | Prekoračeni limiti podataka | Proveri Mixpanel planove i nadogradi ako je potrebno |
| EU podaci se ne rutiraju | Pogrešna rezidencija podataka | Koristi api-eu.mixpanel.com za EU projekte |
| Problemi spajanja identiteta | Pogrešan distinct_id | Sledi Mixpanel-ove najbolje prakse upravljanja identitetom |
Najbolje prakse
- Koristi Service Accounts - Preferiraj Service Accounts umesto Project Secret za server-side autentifikaciju
- Uključi
$insert_id- Uvek postavi jedinstveni insert ID za deduplikaciju događaja - Grupišu ažuriranja profila - Šalji do 2.000 ažuriranja profila po zahtevu za efikasnost
- Koristi EU endpointe - Za EU rezidenciju podataka, koristi
api-eu.mixpanel.comza sve API pozive - Sinhronizuj kohorte po rasporedu - Postavi dnevnu ili nedeljnu sinhronizaciju kohorti umesto kontinuiranog ispitivanja
- Mapiraj rezervisana svojstva - Koristi Mixpanel rezervisana svojstva (
$email,$first_name) za podatke profila - Prati unos - Koristi Mixpanel stranicu Events za verifikaciju da se događaji ispravno primaju
Bezbednost
- Samo HTTPS - Sva API komunikacija zahteva TLS enkripciju
- Izolacija Service Account-a - Skopovani pristup po projektu sa dozvolama zasnovanim na ulogama
- Deduplikacija događaja - Ugrađena deduplikacija putem
$insert_idsprečava probleme integriteta podataka - SOC 2 Type II - Mixpanel je SOC 2 Type II sertifikovan
- GDPR/CCPA - Podrška za brisanje korisničkih podataka putem GDPR API-ja
- EU rezidencija podataka - Dostupan EU data center za evropsku usklađenost