Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

Optimizely-kobling

Koblingsstatus: Planlagt Ikke bygget ennå. Tajo kjører ikke denne koblingen i dag.

Illustrasjon · eksempeldata

Eksempel på synkronisering

Se gjennom én oppføring

Kilde

Optimizely

Koblingsstatus: Planlagt

Mål

Det andre verktøyet ditt

Koblingsstatus: Eget verktøy

KildefeltMålfeltEksempelverdi
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Utkast
  2. Se gjennom én oppføring
  3. Godkjenn denne versjonen

Status gjelder hver enkelt kobling og garanterer ikke at denne synkroniseringen er klar. Feltene er illustrative. Kontroller faktisk skjema og tillatelser før synkroniseringen kjører.

Koble Optimizely Feature Experimentation til Brevo gjennom Tajo for å synkronisere eksperimentresultater, målrette kampanjer etter feature flag-segmenter og berike markedsføringsautomatiseringer med A/B-testdata og målgruppeinnsikt.

Oversikt

EgenskapVerdi
PlattformOptimizely
KategoriEksperimentering (Custom)
OppsettskompleksitetModerat
Offisiell integrasjonNei
Synkroniserte dataEksperimenter, målgrupper, hendelser, feature flags
AutentiseringsmetodePersonlig tilgangstoken / OAuth 2.0

Funksjoner

  • Eksperimentsynkronisering - Push A/B-testvariantstildelinger til Brevo-kontaktattributter
  • Målgruppemålretting - Bruk Optimizely-målgrupper til segmentering av Brevo-kampanjer
  • Konverteringssporing - Spor Optimizely-hendelser og mapp til Brevo-hendelsessporing
  • Feature flag-synkronisering - Segmenter kontakter etter aktiverte feature flags
  • Resultatrapportering - Synkroniser eksperimentresultater for etteranalyse av markedsføringskampanjer
  • Støtte for flere prosjekter - Koble flere Optimizely-prosjekter til én enkelt Tajo-instans

Forutsetninger

Før du begynner, sørg for at du har:

  1. En Optimizely Feature Experimentation-konto
  2. Et personlig tilgangstoken fra Optimizely App Settings
  3. En SDK-nøkkel for ditt Optimizely-miljø
  4. En Brevo-konto med API-tilgang
  5. En Tajo-konto med konnektor-rettigheter

Autentisering

Personlig tilgangstoken

Terminal window
# Generer på 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
// Alle REST API-forespørsler bruker Bearer-tokenautentisering
const headers = {
'Authorization': `Bearer ${process.env.OPTIMIZELY_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
};

SDK-autentisering

// For evaluering av feature flags, bruk SDK-et
const optimizelySDK = require('@optimizely/optimizely-sdk');
const optimizelyClient = optimizelySDK.createInstance({
sdkKey: process.env.OPTIMIZELY_SDK_KEY,
datafileOptions: {
autoUpdate: true,
updateInterval: 60000 // 1 minutt
}
});
await optimizelyClient.onReady();

Konfigurasjon

Grunnleggende oppsett

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 * * *" # Hver 2. time
mapping:
experiment_variation: EXPERIMENT_VARIATION
feature_flags: ENABLED_FEATURES
audience_segments: OPT_SEGMENTS

Feltmapping

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

API-endepunkter

EndepunktMetodeBeskrivelse
https://api.optimizely.com/v2/projectsGETList prosjekter
https://api.optimizely.com/v2/experimentsGETList eksperimenter
https://api.optimizely.com/v2/experiments/{id}GETHent eksperimentdetaljer
https://api.optimizely.com/v2/experiments/{id}/resultsGETHent eksperimentresultater
https://api.optimizely.com/v2/featuresGETList feature flags
https://api.optimizely.com/v2/features/{id}GETHent feature flag
https://api.optimizely.com/v2/audiencesGETList målgrupper
https://api.optimizely.com/v2/eventsGETList sporede hendelser
https://logx.optimizely.com/v1/eventsPOSTSpor hendelser (SDK-endepunkt)

Kodeeksempler

Initialiser kobling

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

Synkroniser eksperimentbeslutninger til Brevo

// Spor eksperimentbeslutninger og synkroniser til Brevo
const optimizelyClient = optimizelySDK.createInstance({
sdkKey: process.env.OPTIMIZELY_SDK_KEY
});
await optimizelyClient.onReady();
// Registrer en lytter for beslutningsvarsler
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()
}
});
}
}
}
);

Synkroniser eksperimentresultater

// Hent eksperimentresultater og synkroniser vinnende segmenter
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();
// Behandle varianter og oppdater kontaktsegmenter
for (const variation of results.metrics) {
const isWinner = variation.is_improvement && variation.statistical_significance >= 0.95;
if (isWinner) {
// Opprett et Brevo-segment for brukere i den vinnende varianten
console.log(`Winning variation: ${variation.variation_name}`);
}
}

Feature flag-basert segmentering

// Evaluer feature flags for brukersegmentering
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()
}
});
}

Ratebegrensninger

EndepunktGrenseMerknader
REST API50 forespørsler/minPer personlig tilgangstoken
Results API10 forespørsler/minHøyere latens, tyngre spørringer
SDK Event Dispatch10 000 hendelser/batchVia SDK-hendelsesprosessor
Datafile CDNUbegrensetMellomlagret med automatisk oppdatering

Results API-latens

Experiment Results API behandler store datasett og kan ta 30+ sekunder å svare. Bruk asynkron polling eller mellomlagring for å unngå å blokkere applikasjonen din.

Feilsøking

ProblemÅrsakLøsning
401 UnauthorizedToken utløpt/ugyldigRegenerer personlig tilgangstoken
SDK ikke klarDatafile ikke lastetVent på at onReady()-promise skal løses
Ingen beslutninger loggførtVarsler ikke registrertRegistrer lytter før beslutninger tas
Utdaterte feature flagsDatafile-cacheSett updateInterval for automatisk oppdatering
Manglende resultaterEksperiment ikke startetVerifiser at eksperimentstatus er “running”

Feilsøkingsmodus

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

Beste praksis

  1. Bruk SDK-et for beslutninger - Bruk SDK-et for sanntidsevaluering av flags, REST API for administrasjon
  2. Implementer hendelsesbatching - Batch SDK-hendelser for å redusere nettverkstrafikk
  3. Mellomlagre datafile - Aktiver auto-oppdatering med passende intervaller
  4. Synkroniser vinnende varianter - Etter at eksperimenter er avsluttet, oppdater kontaktsegmenter
  5. Bruk attributter for målretting - Send e-post og brukerattributter for målgruppetreff
  6. Overvåk eksperimentstatus - Synkroniser kun data fra pågående eller avsluttede eksperimenter

Sikkerhet

  • Personlige tilgangstokens - Bearer-tokenautentisering for REST API
  • SDK-nøkkelisolering - Separate SDK-nøkler per miljø (dev, staging, prod)
  • Tjenersideevaluering - Evaluer feature flags på tjenersiden for å hindre eksponering
  • Tokenrotasjon - Roter personlige tilgangstokens regelmessig
  • Minimale rettigheter - Bruk kun lese-tokens når skrivetilgang ikke er nødvendig
  • Kryptert transport - TLS 1.2+ for all API- og SDK-kommunikasjon

Relaterte ressurser

Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

AI-assistent

Hei! Spør meg om dokumentasjonen.

Denne siden som Markdown: optimizely.md

Laster inn Markdown …
Åpne i Claude Åpne i ChatGPT