---
title: "Optimizely Bağlayıcısı"
description: "Deney sonuçlarını, özellik bayraklarını ve kitle verilerini Tajo üzerinden Brevo ile senkronize etmek için eksiksiz Optimizely entegrasyon kılavuzu."
url: https://tajo.io/tr/docs/connectors/custom/optimizely/
markdown: https://tajo.io/tr/docs/connectors/custom/optimizely.md
lang: tr-TR
robots: noindex
---

Erken erişim talep edin

Adınızı ve iş e-posta adresinizi girin. Tajo erişim talebinizi onaylamanız için size bir bağlantı göndereceğiz.

# Optimizely Bağlayıcısı

Bağlayıcı durumu: Planlandı Henüz oluşturulmadı. Tajo bu bağlayıcıyı bugün çalıştırmıyor.

| Kaynak alanı | Hedef alanı | Örnek değer |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Deney sonuçlarını senkronize etmek, özellik bayrağı segmentlerine göre kampanya hedeflemek ve pazarlama otomasyonlarını A/B test verileri ve kitle öngörüleriyle zenginleştirmek için Optimizely Feature Experimentation’ı Tajo üzerinden Brevo’ya bağlayın.

## Genel Bakış

| Özellik | Değer |
| --- | --- |
| **Platform** | Optimizely |
| **Kategori** | Deneme (Özel) |
| **Kurulum Karmaşıklığı** | Orta |
| **Resmi Entegrasyon** | Hayır |
| **Senkronize Edilen Veri** | Deneyler, Kitleler, Olaylar, Özellik Bayrakları |
| **Kimlik Doğrulama Yöntemi** | Kişisel Erişim Belirteci / OAuth 2.0 |

## Özellikler

- **Deney senkronizasyonu** - A/B test varyasyon atamalarını Brevo kişi özniteliklerine aktarın
- **Kitle hedefleme** - Brevo kampanya segmentasyonu için Optimizely kitlelerini kullanın
- **Dönüşüm takibi** - Optimizely olaylarını izleyin ve Brevo olay takibine eşleyin
- **Özellik bayrağı senkronizasyonu** - Kişileri etkinleştirilmiş özellik bayraklarına göre segmentlere ayırın
- **Sonuç raporlama** - Sonraki analiz pazarlama kampanyaları için deney sonuçlarını senkronize edin
- **Çoklu proje desteği** - Tek bir Tajo örneğine birden fazla Optimizely projesi bağlayın

## Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

1. Bir Optimizely Feature Experimentation hesabı
2. [Optimizely Uygulama Ayarlarından](https://app.optimizely.com/v2/accountsettings/tokens) bir Kişisel Erişim Belirteci
3. Optimizely ortamınız için bir SDK anahtarı
4. API erişimi olan bir Brevo hesabı
5. Bağlayıcı izinlerine sahip bir Tajo hesabı

## Kimlik Doğrulama

### Kişisel Erişim Belirteci

```bash
# https://app.optimizely.com/v2/accountsettings/tokens adresinde oluşturun
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
// Tüm REST API istekleri Bearer belirteç kimlik doğrulaması kullanır
const headers = {
  'Authorization': `Bearer ${process.env.OPTIMIZELY_ACCESS_TOKEN}`,
  'Content-Type': 'application/json'
};
```

### SDK Kimlik Doğrulaması

```javascript
// Özellik bayrağı değerlendirmesi için SDK'yı kullanın
const optimizelySDK = require('@optimizely/optimizely-sdk');

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

await optimizelyClient.onReady();
```

## Yapılandırma

### Temel Kurulum

```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 * * *"  # Her 2 saatte bir

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

### Alan Eşleştirme

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

## API Uç Noktaları

| Uç Nokta | Yöntem | Açıklama |
| --- | --- | --- |
| `https://api.optimizely.com/v2/projects` | GET | Projeleri listele |
| `https://api.optimizely.com/v2/experiments` | GET | Deneyleri listele |
| `https://api.optimizely.com/v2/experiments/{id}` | GET | Deney ayrıntılarını al |
| `https://api.optimizely.com/v2/experiments/{id}/results` | GET | Deney sonuçlarını al |
| `https://api.optimizely.com/v2/features` | GET | Özellik bayraklarını listele |
| `https://api.optimizely.com/v2/features/{id}` | GET | Özellik bayrağını al |
| `https://api.optimizely.com/v2/audiences` | GET | Kitleleri listele |
| `https://api.optimizely.com/v2/events` | GET | İzlenen olayları listele |
| `https://logx.optimizely.com/v1/events` | POST | Olayları izle (SDK uç noktası) |

## Kod Örnekleri

### Bağlayıcıyı Başlatma

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

### Deney Kararlarını Brevo’ya Senkronize Etme

```javascript
// Deney kararlarını izle ve Brevo'ya senkronize et
const optimizelyClient = optimizelySDK.createInstance({
  sdkKey: process.env.OPTIMIZELY_SDK_KEY
});

await optimizelyClient.onReady();

// Bir karar bildirim dinleyicisi kaydet
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()
          }
        });
      }
    }
  }
);
```

### Deney Sonuçlarını Senkronize Etme

```javascript
// Deney sonuçlarını getir ve kazanan segmentleri senkronize et
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();

// Varyasyonları işle ve kişi segmentlerini güncelle
for (const variation of results.metrics) {
  const isWinner = variation.is_improvement && variation.statistical_significance >= 0.95;

  if (isWinner) {
    // Kazanan varyasyondaki kullanıcılar için bir Brevo segmenti oluştur
    console.log(`Winning variation: ${variation.variation_name}`);
  }
}
```

### Özellik Bayrağı Tabanlı Segmentasyon

```javascript
// Kullanıcı segmentasyonu için özellik bayraklarını değerlendir
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()
    }
  });
}
```

## Hız Sınırları

| Uç Nokta | Sınır | Notlar |
| --- | --- | --- |
| REST API | 50 istek/dk | Kişisel erişim belirteci başına |
| Sonuçlar API | 10 istek/dk | Daha yüksek gecikme, daha ağır sorgular |
| SDK Olay Gönderimi | Toplu iş başına 10.000 olay | SDK olay işlemcisi aracılığıyla |
| Datafile CDN | Sınırsız | Otomatik güncellemelerle önbelleğe alınır |

Sonuçlar API Gecikmesi

Deney Sonuçları API’si büyük veri kümelerini işler ve yanıt vermesi 30+ saniye sürebilir. Uygulamanızı engellememek için eşzamansız yoklama veya önbelleğe alma kullanın.

## Sorun Giderme

| Sorun | Neden | Çözüm |
| --- | --- | --- |
| 401 Unauthorized | Süresi dolmuş/geçersiz belirteç | Kişisel Erişim Belirtecini yeniden oluşturun |
| SDK hazır değil | Datafile yüklenmedi | `onReady()` sözünün çözülmesini bekleyin |
| Karar kaydedilmiyor | Bildirim kaydedilmemiş | Kararlar vermeden önce dinleyiciyi kaydedin |
| Eski özellik bayrakları | Datafile önbelleği | Otomatik yenileme için `updateInterval` ayarlayın |
| Eksik sonuçlar | Deney başlamadı | Deney durumunun “running” olduğunu doğrulayın |

### Hata Ayıklama Modu

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

## En İyi Uygulamalar

1. **Kararlar için SDK kullanın** - Gerçek zamanlı bayrak değerlendirmesi için SDK, yönetim için REST API kullanın
2. **Olay toplu işleme uygulayın** - Ağ yükünü azaltmak için SDK olaylarını toplu işleyin
3. **Datafile’ı önbelleğe alın** - Uygun aralıklarla otomatik güncellemeyi etkinleştirin
4. **Kazanan varyasyonları senkronize edin** - Deneyler sona erdikten sonra kişi segmentlerini güncelleyin
5. **Hedefleme için öznitelikleri kullanın** - Kitle eşleştirmesi için e-posta ve kullanıcı öznitelikleri iletin
6. **Deney durumunu izleyin** - Yalnızca çalışan veya sonuçlanmış deneylerden veri senkronize edin

## Güvenlik

- **Kişisel Erişim Belirteçleri** - REST API için Bearer belirteç kimlik doğrulaması
- **SDK anahtar izolasyonu** - Ortam başına ayrı SDK anahtarları (dev, staging, prod)
- **Sunucu tarafı değerlendirme** - İfşayı önlemek için özellik bayraklarını sunucu tarafında değerlendirin
- **Belirteç rotasyonu** - Kişisel Erişim Belirteçlerini periyodik olarak döndürün
- **Minimum izinler** - Yazma erişimine gerek olmadığında yalnızca okuma belirteçleri kullanın
- **Şifreli taşıma** - Tüm API ve SDK iletişimleri için TLS 1.2+

## İlgili Kaynaklar

- [PostHog Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/posthog)
- [Segment Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/segment)
- [Müşteri Senkronizasyonu Yeteneği](https://tajo.io/tr/docs/skills/data-sync/customer-sync)
- [Optimizely Feature Experimentation Belgeleri](https://docs.developers.optimizely.com/feature-experimentation/docs)
