Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

Conector Optimizely

Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.

Ilustrație · date de exemplu

Exemplu de sincronizare

Verifică o înregistrare

Sursă

Optimizely

Starea conectorului: Planificat

Destinație

Celălalt instrument al tău

Starea conectorului: Instrument personalizat

Câmp sursăCâmp destinațieValoare exemplu
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Ciornă
  2. Verifică o înregistrare
  3. Aprobă această versiune

Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.

Conectați Optimizely Feature Experimentation la Brevo prin Tajo pentru a sincroniza rezultatele experimentelor, a targeta campanii după segmentele de fanioane de funcționalități și a îmbogăți automatizările de marketing cu date din testele A/B și informații despre audiență.

Prezentare generală

ProprietateValoare
PlatformăOptimizely
CategorieExperimentare (Personalizat)
Complexitate configurareMedie
Integrare oficialăNu
Date sincronizateExperimente, Audiențe, Evenimente, Fanioane de funcționalități
Metodă de autentificareToken de acces personal / OAuth 2.0

Funcționalități

  • Sincronizare experimente - Transmiteți atribuirile variațiilor testelor A/B la atributele de contact Brevo
  • Targetare audiență - Utilizați audiențele Optimizely pentru segmentarea campaniilor Brevo
  • Urmărire conversii - Urmăriți evenimentele Optimizely și mapați-le la urmărirea evenimentelor Brevo
  • Sincronizare fanioane funcționalități - Segmentați contactele după fanioanele de funcționalități activate
  • Raportare rezultate - Sincronizați rezultatele experimentelor pentru campanii de marketing post-analiză
  • Suport multi-proiect - Conectați mai multe proiecte Optimizely la o singură instanță Tajo

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  1. Un cont Optimizely Feature Experimentation
  2. Un Token de acces personal din Optimizely App Settings
  3. O cheie SDK pentru mediul Optimizely
  4. Un cont Brevo cu acces API
  5. Un cont Tajo cu permisiuni de conector

Autentificare

Token de acces personal

Terminal window
# Generate at https://app.optimizely.com/v2/accountsettings/tokens
export OPTIMIZELY_ACCESS_TOKEN=your_personal_access_token
export OPTIMIZELY_SDK_KEY=your_sdk_key
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// All REST API requests use Bearer token auth
const headers = {
'Authorization': `Bearer ${process.env.OPTIMIZELY_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
};

Autentificare SDK

// For feature flag evaluation, use the SDK
const optimizelySDK = require('@optimizely/optimizely-sdk');
const optimizelyClient = optimizelySDK.createInstance({
sdkKey: process.env.OPTIMIZELY_SDK_KEY,
datafileOptions: {
autoUpdate: true,
updateInterval: 60000 // 1 minute
}
});
await optimizelyClient.onReady();

Configurare

Configurare de bază

connectors:
optimizely:
enabled: true
access_token: "${OPTIMIZELY_ACCESS_TOKEN}"
sdk_key: "${OPTIMIZELY_SDK_KEY}"
project_id: "12345678"
sync:
experiments: true
audiences: true
events: true
feature_flags: true
schedule: "0 */2 * * *" # Every 2 hours
mapping:
experiment_variation: EXPERIMENT_VARIATION
feature_flags: ENABLED_FEATURES
audience_segments: OPT_SEGMENTS

Mapare câmpuri

field_mapping:
user_id: email
experiment_key: EXPERIMENT_NAME
variation_key: VARIATION_NAME
feature_key: FEATURE_FLAG
enabled: FEATURE_ENABLED
audience_name: AUDIENCE_SEGMENT
decision_timestamp: EXPERIMENT_DATE

Puncte finale API

Punct finalMetodăDescriere
https://api.optimizely.com/v2/projectsGETListează proiectele
https://api.optimizely.com/v2/experimentsGETListează experimentele
https://api.optimizely.com/v2/experiments/{id}GETObține detalii experiment
https://api.optimizely.com/v2/experiments/{id}/resultsGETObține rezultatele experimentului
https://api.optimizely.com/v2/featuresGETListează fanioanele de funcționalități
https://api.optimizely.com/v2/features/{id}GETObține fanionul de funcționalitate
https://api.optimizely.com/v2/audiencesGETListează audiențele
https://api.optimizely.com/v2/eventsGETListează evenimentele urmărite
https://logx.optimizely.com/v1/eventsPOSTUrmărește evenimente (punct final SDK)

Exemple de cod

Inițializare conector

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('optimizely', {
accessToken: process.env.OPTIMIZELY_ACCESS_TOKEN,
sdkKey: process.env.OPTIMIZELY_SDK_KEY,
projectId: '12345678'
});

Sincronizare decizii experiment cu Brevo

// Track experiment decisions and sync to Brevo
const optimizelyClient = optimizelySDK.createInstance({
sdkKey: process.env.OPTIMIZELY_SDK_KEY
});
await optimizelyClient.onReady();
// Register a decision notification listener
optimizelyClient.notificationCenter.addNotificationListener(
optimizelySDK.enums.NOTIFICATION_TYPES.DECISION,
async (decisionObject) => {
const { type, userId, attributes, decisionInfo } = decisionObject;
if (type === 'feature' || type === 'ab-test') {
const email = attributes.email;
if (email) {
await tajo.contacts.update(email, {
attributes: {
EXPERIMENT_NAME: decisionInfo.experimentKey || decisionInfo.featureKey,
VARIATION_NAME: decisionInfo.variationKey,
FEATURE_ENABLED: decisionInfo.featureEnabled || false,
EXPERIMENT_DATE: new Date().toISOString()
}
});
}
}
}
);

Sincronizare rezultate experiment

// Fetch experiment results and sync winning segments
const resultsResponse = await fetch(
`https://api.optimizely.com/v2/experiments/${experimentId}/results`,
{
headers: {
'Authorization': `Bearer ${process.env.OPTIMIZELY_ACCESS_TOKEN}`
}
}
);
const results = await resultsResponse.json();
// Process variations and update contact segments
for (const variation of results.metrics) {
const isWinner = variation.is_improvement && variation.statistical_significance >= 0.95;
if (isWinner) {
// Create a Brevo segment for users in the winning variation
console.log(`Winning variation: ${variation.variation_name}`);
}
}

Segmentare bazată pe fanioane de funcționalități

// Evaluate feature flags for user segmentation
async function syncFeatureFlags(userEmail, userId) {
const features = ['new_checkout', 'loyalty_program', 'ai_recommendations'];
const enabledFeatures = [];
for (const feature of features) {
const user = optimizelyClient.createUserContext(userId, {
email: userEmail
});
const decision = user.decide(feature);
if (decision.enabled) {
enabledFeatures.push(feature);
}
}
await tajo.contacts.update(userEmail, {
attributes: {
ENABLED_FEATURES: enabledFeatures.join(', '),
FEATURE_FLAGS_SYNCED: new Date().toISOString()
}
});
}

Limite de rată

Punct finalLimităNote
REST API50 cereri/minPer token de acces personal
Results API10 cereri/minLatență mai mare, interogări mai grele
Expediere evenimente SDK10.000 evenimente/lotPrin procesorul de evenimente SDK
CDN fișier dateNelimitatStocat în cache cu actualizări automate

Latența Results API

Experiment Results API procesează seturi de date mari și poate dura 30+ secunde pentru a răspunde. Utilizați interogare asincronă sau stocare în cache pentru a evita blocarea aplicației.

Depanare

ProblemăCauzăSoluție
401 NeautorizatToken expirat/invalidRegenerați Tokenul de acces personal
SDK nepregatitFișier date neîncărcatAșteptați rezolvarea promisiunii onReady()
Nicio decizie înregistratăNotificare neînregistratăÎnregistrați listener înainte de a lua decizii
Fanioane de funcționalități deprecateCache fișier dateSetați updateInterval pentru reîmprospătare automată
Rezultate lipsăExperimentul nu a începutVerificați că statusul experimentului este “running”

Modul de depanare

connectors:
optimizely:
debug: true
log_level: verbose
log_decisions: true
log_events: true

Bune practici

  1. Utilizați SDK-ul pentru decizii - Utilizați SDK-ul pentru evaluarea fanionelor în timp real, REST API pentru management
  2. Implementați gruparea evenimentelor - Grupați evenimentele SDK pentru a reduce sarcina rețelei
  3. Stocați în cache fișierul date - Activați actualizarea automată cu intervale corespunzătoare
  4. Sincronizați variațiile câștigătoare - După finalizarea experimentelor, actualizați segmentele de contacte
  5. Utilizați atribute pentru targetare - Transmiteți e-mailul și atributele utilizatorului pentru potrivirea audiențelor
  6. Monitorizați statusul experimentului - Sincronizați date doar din experimentele în desfășurare sau finalizate

Securitate

  • Tokeni de acces personal - Autentificare cu token Bearer pentru REST API
  • Izolare cheie SDK - Chei SDK separate per mediu (dev, staging, prod)
  • Evaluare pe server - Evaluați fanioanele de funcționalități pe server pentru a preveni expunerea
  • Rotație token - Rotiți Tokenii de acces personal periodic
  • Permisiuni minime - Utilizați tokeni read-only când accesul de scriere nu este necesar
  • Transport criptat - TLS 1.2+ pentru toate comunicațiile API și SDK

Resurse conexe

Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

Asistent AI

Bună! Întreabă-mă orice despre documentație.

Această pagină în Markdown: optimizely.md

Se încarcă Markdown…
Deschide în Claude Deschide în ChatGPT