Skip to content

isabella232/analytics-ios-integration-optimizely-x

 
 

Repository files navigation

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.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 55.5%
  • M 37.7%
  • Ruby 4.4%
  • Makefile 2.4%