Skip to content

segment-integrations/analytics-ios-integration-optimizely-x

Repository files navigation

⚠️ End-of-Support Announcement for Analytics-iOS Integrations ⚠️

Following the End-of-Support (EoS) for the core Analytics-iOS SDK in March 2026, this legacy integration repository is also deprecated and will no longer receive updates.

Segment's future development efforts are concentrated on the new Analytics-Swift ecosystem.

Segment-Optimizely-X

CircleCI Version License Platform

This SDK supports Optimizely iOS v1.1.9. Segment supports newer versions of Optimizely via Segment cloud mode. Read more about integrating with Optimizely via Segment cloud mode in our documentation here.

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Installation

Segment-Optimizely-X is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "Segment-Optimizely-X"

Usage

Objective-C:

    SEGAnalyticsConfiguration *configuration = [SEGAnalyticsConfiguration configurationWithWriteKey:@"<YOUR_WRITE_KEY>"];
    configuration.trackApplicationLifecycleEvents = YES;
    configuration.recordScreenViews = YES;

    // Setup optimizely logger.
    OPTLYLoggerDefault *optlyLogger = [[OPTLYLoggerDefault alloc] initWithLogLevel:OptimizelyLogLevelError];
    // Create an Optimizely manager.
    self.optlyManager = [OPTLYManager init:^(OPTLYManagerBuilder *_Nullable builder) {
        builder.projectId = @"<YOUR_PROJECT_ID>";
        builder.logger = optlyLogger;
    }];
    
    // Initialize an Optimizely client by asynchronously downloading the datafile.
    [self.optlyManager initializeWithCallback:^(NSError *_Nullable error, OPTLYClient *_Nullable client) {
       // Optimizely is now up and running.  You can now configure any experiments, etc.
    }];

    [configuration use:[SEGOptimizelyXIntegrationFactory instanceWithOptimizely:self.optlyManager]];
    [SEGAnalytics setupWithConfiguration:configuration];

Swift:

    let configuration = SEGAnalyticsConfiguration(writeKey: "<YOUR_WRITE_KEY>")
    configuration.trackApplicationLifecycleEvents = true
    configuration.recordScreenViews = true

    let optlyLogger = OPTLYLoggerDefault(logLevel: .error)
    optlyManager = OPTLYManager.instance(builderBlock: { (builder) in
        builder?.projectId = "<YOUR_PROJECT_ID>"
        builder?.logger = optlyLogger
    })

    optlyManager?.initialize(callback: { (error, optlyClient) in
        // Optimizely is now up and running.  You can now configure any experiments, etc.
    })

    configuration.use(SEGOptimizelyXIntegrationFactory.instance(withOptimizely: optlyManager))

    SEGAnalytics.setup(with: configuration)

License

Segment-Optimizely-X is available under the MIT license. See the LICENSE file for more info.

About

The Optimizely-X analytics-ios integration.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors