---
title: "Konektor Optimizely"
description: "Kompletní průvodce integrací Optimizely pro synchronizaci výsledků experimentů, příznaků funkcí a dat publika s Brevo přes Tajo."
url: https://tajo.io/cz/docs/connectors/custom/optimizely/
markdown: https://tajo.io/cz/docs/connectors/custom/optimizely.md
lang: cs-CZ
robots: noindex
---

Požádejte o přednostní přístup

Zadejte své jméno a pracovní e-mailovou adresu. Pošleme vám odkaz pro potvrzení žádosti o přístup k Tajo.

# Konektor Optimizely

Stav konektoru: Plánováno Zatím nevytvořeno. Tajo tento konektor dnes neprovozuje.

| Zdrojové pole | Cílové pole | Ukázková hodnota |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Propojte Optimizely Feature Experimentation s Brevo přes Tajo pro synchronizaci výsledků experimentů, cílení kampaní podle segmentů příznaků funkcí a obohacení marketingových automatizací o data A/B testů a poznatky o publiku.

## Přehled

| Vlastnost | Hodnota |
| --- | --- |
| **Platforma** | Optimizely |
| **Kategorie** | Experimentování (Vlastní) |
| **Složitost nastavení** | Střední |
| **Oficiální integrace** | Ne |
| **Synchronizovaná data** | Experimenty, Publika, Události, Příznaky funkcí |
| **Metoda ověření** | Osobní přístupový token / OAuth 2.0 |

## Funkce

- **Synchronizace experimentů** – Odesílejte přiřazení variací A/B testů do atributů kontaktů Brevo
- **Cílení publika** – Používejte publika Optimizely pro segmentaci kampaní Brevo
- **Sledování konverzí** – Sledujte události Optimizely a mapujte je na sledování událostí Brevo
- **Synchronizace příznaků funkcí** – Segmentujte kontakty podle povolených příznaků funkcí
- **Reporting výsledků** – Synchronizujte výsledky experimentů pro marketingové kampaně po analýze
- **Podpora více projektů** – Propojte více projektů Optimizely s jednou instancí Tajo

## Předpoklady

Než začnete, ujistěte se, že máte:

1. Účet Optimizely Feature Experimentation
2. Osobní přístupový token z [Nastavení aplikace Optimizely](https://app.optimizely.com/v2/accountsettings/tokens)
3. SDK klíč pro vaše prostředí Optimizely
4. Účet Brevo s přístupem k API
5. Účet Tajo s oprávněními ke konektoru

## Ověření

### Osobní přístupový token

```bash
# Vygenerujte na 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
```

```javascript
// Všechny požadavky REST API používají ověření Bearer tokenem
const headers = {
  'Authorization': `Bearer ${process.env.OPTIMIZELY_ACCESS_TOKEN}`,
  'Content-Type': 'application/json'
};
```

### Ověření SDK

```javascript
// Pro vyhodnocení příznaků funkcí použijte SDK
const optimizelySDK = require('@optimizely/optimizely-sdk');

const optimizelyClient = optimizelySDK.createInstance({
  sdkKey: process.env.OPTIMIZELY_SDK_KEY,
  datafileOptions: {
    autoUpdate: true,
    updateInterval: 60000  // 1 minuta
  }
});

await optimizelyClient.onReady();
```

## Konfigurace

### Základní nastavení

```yaml
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 * * *"  # Každé 2 hodiny

    mapping:
      experiment_variation: EXPERIMENT_VARIATION
      feature_flags: ENABLED_FEATURES
      audience_segments: OPT_SEGMENTS
```

### Mapování polí

```yaml
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
```

## Koncové body API

| Koncový bod | Metoda | Popis |
| --- | --- | --- |
| `https://api.optimizely.com/v2/projects` | GET | Výpis projektů |
| `https://api.optimizely.com/v2/experiments` | GET | Výpis experimentů |
| `https://api.optimizely.com/v2/experiments/{id}` | GET | Získání podrobností experimentu |
| `https://api.optimizely.com/v2/experiments/{id}/results` | GET | Získání výsledků experimentu |
| `https://api.optimizely.com/v2/features` | GET | Výpis příznaků funkcí |
| `https://api.optimizely.com/v2/features/{id}` | GET | Získání příznaku funkce |
| `https://api.optimizely.com/v2/audiences` | GET | Výpis publik |
| `https://api.optimizely.com/v2/events` | GET | Výpis sledovaných událostí |
| `https://logx.optimizely.com/v1/events` | POST | Sledování událostí (koncový bod SDK) |

## Příklady kódu

### Inicializace konektoru

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

### Synchronizace rozhodnutí experimentu do Brevo

```javascript
// Sledování rozhodnutí experimentu a synchronizace do Brevo
const optimizelyClient = optimizelySDK.createInstance({
  sdkKey: process.env.OPTIMIZELY_SDK_KEY
});

await optimizelyClient.onReady();

// Registrace naslouchátka notifikace rozhodnutí
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()
          }
        });
      }
    }
  }
);
```

### Synchronizace výsledků experimentu

```javascript
// Načtení výsledků experimentu a synchronizace vítězných segmentů
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();

// Zpracování variací a aktualizace segmentů kontaktů
for (const variation of results.metrics) {
  const isWinner = variation.is_improvement && variation.statistical_significance >= 0.95;

  if (isWinner) {
    // Vytvoření segmentu Brevo pro uživatele ve vítězné variaci
    console.log(`Vítězná variace: ${variation.variation_name}`);
  }
}
```

### Segmentace na základě příznaků funkcí

```javascript
// Vyhodnocení příznaků funkcí pro segmentaci uživatelů
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()
    }
  });
}
```

## Omezení rychlosti

| Koncový bod | Limit | Poznámky |
| --- | --- | --- |
| REST API | 50 požadavků/min | Na osobní přístupový token |
| Results API | 10 požadavků/min | Vyšší latence, náročnější dotazy |
| Odesílání událostí SDK | 10 000 událostí/dávka | Přes procesor událostí SDK |
| Datafile CDN | Neomezeno | Ukládáno do mezipaměti s automatickými aktualizacemi |

Latence Results API

Results API experimentů zpracovává velké datové sady a může trvat 30+ sekund, než odpoví. Používejte asynchronní polling nebo ukládání do mezipaměti, abyste neblokovali svou aplikaci.

## Řešení problémů

| Problém | Příčina | Řešení |
| --- | --- | --- |
| 401 Unauthorized | Token vypršel/neplatný | Obnovte osobní přístupový token |
| SDK není připraven | Datový soubor není načten | Počkejte na vyřešení příslibu `onReady()` |
| Žádná zalogovaná rozhodnutí | Naslouchátko není registrováno | Registrujte naslouchátko před přijímáním rozhodnutí |
| Zastaralé příznaky funkcí | Mezipaměť datového souboru | Nastavte `updateInterval` pro automatické obnovování |
| Chybějící výsledky | Experiment nezačal | Ověřte, zda je stav experimentu “running” |

### Režim ladění

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

## Osvědčené postupy

1. **Používejte SDK pro rozhodnutí** – Používejte SDK pro vyhodnocení příznaků v reálném čase, REST API pro správu
2. **Implementujte dávkování událostí** – Dávkujte události SDK pro snížení síťové zátěže
3. **Ukládejte datový soubor do mezipaměti** – Povolte automatické aktualizace s vhodnými intervaly
4. **Synchronizujte vítězné variace** – Po ukončení experimentů aktualizujte segmenty kontaktů
5. **Používejte atributy pro cílení** – Předávejte e-mail a uživatelské atributy pro porovnávání publik
6. **Monitorujte stav experimentu** – Synchronizujte pouze data z běžících nebo ukončených experimentů

## Zabezpečení

- **Osobní přístupové tokeny** – Ověřování Bearer tokenem pro REST API
- **Izolace SDK klíčů** – Samostatné SDK klíče pro každé prostředí (dev, staging, prod)
- **Vyhodnocení na straně serveru** – Vyhodnocujte příznaky funkcí na straně serveru, aby nedošlo k jejich odhalení
- **Rotace tokenů** – Pravidelně rotujte osobní přístupové tokeny
- **Minimální oprávnění** – Používejte tokeny jen pro čtení, když není potřeba přístup pro zápis
- **Šifrovaný přenos** – TLS 1.2+ pro veškerou komunikaci API a SDK

## Související zdroje

- [Konektor PostHog](https://tajo.io/cz/docs/connectors/custom/posthog)
- [Konektor Segment](https://tajo.io/cz/docs/connectors/custom/segment)
- [Dovednost synchronizace zákazníků](https://tajo.io/cz/docs/skills/data-sync/customer-sync)
- [Dokumentace Optimizely Feature Experimentation](https://docs.developers.optimizely.com/feature-experimentation/docs)
