SlideShare a Scribd company logo
#opticon2015
Getting Started with the
Optimizely Developer Platform
Jon Gaulding
Senior SWE, Optimizely
jon@optimizely.com
Josiah Gaskin
Senior SWE, Optimizely
josiah@optimizely.com
• Growth of the Optimizely developer platform
• Custom integrations
• Optimizely packaged apps
• Building your own packaged apps (sneak peek)
Overview
We’re just getting started.
The Optimizely Platform
1 Year of Mobile SDK Growth
Optimizely
Opticon
2014
Opticon 2015
(present day)
Growth of the REST API(number of endpoints)
Use our APIs directly, wherever you like.
Custom Integrations
The Stats Endpoint
GET "https://www.optimizelyapis.com/experiment/v1/experiments/1234/stats"
# optimize.ly/stats-api #
Your
System
Auto-allocate
or
Warehouse data
or
Build custom reports
or
Send notifications
The Stats Endpoint
GET “https://www.optimizelyapis.com/experiment/v1/experiments/1234/stats”
# optimize.ly/stats-api-demo #
• Bradley (→) wants to get a phone call when a
winner is first declared for an experiment
• Let’s see a demo!
The User List Targeting Endpoint
POST "https://www.optimizelyapis.com/experiment/v1/projects/456/targeting_lists"
# optimize.ly/list-api #
Your
System
CRM
or
Data warehouse
or
Analytics Provider
or
Anything!
● cookies
● query params
● zip codes
The User List Targeting Endpoint
POST "https://www.optimizelyapis.com/experiment/v1/projects/456/targeting_lists"
# optimize.ly/list-api-demo #
• Byron (→) wanted to to target an Opticon
promotion to certain Optimizely customers
• Queried account IDs from Salesforce matching an
account cookie on optimizely.com
• Let’s see a demo!
Example: Experience Delivery
Mobile Custom
Integrations
Example: Dialogs
LiveVariableDialogBuilder.java
public class LiveVariableDialogBuilder extends AlertDialog.Builder {
LiveVariable<String> mMessageVariable;
LiveVariable<String> mTitleVariable;
public LiveVariableDialogBuilder setVariableKey(@NonNull String variableKey) {
mMessageVariable = Optimizely.stringVariable(variableKey + "_message", "");
mTitleVariable = Optimizely.stringVariable(variableKey + "_title", "");
return this;
}
@NonNull @Override
public AlertDialog create() {
if (mMessageVariable != null) { setMessage(mMessageVariable.get()); }
if (mTitleVariable != null) { setTitle(mTitleVariable.get()); }
return super.create();
}
}
MyActivity.java
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
final LiveVariableDialogBuilder salesDialogBuilder =
new LiveVariableDialogBuilder(CodeUIActivity.this)
.setVariableKey("SalesDialog");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
salesDialogBuilder.show();
}
});
}
}
Code once. Use Everywhere!
Optimizely Packaged
Apps
Packaged Apps Live Right Now
Target by company demographics Target by Lytics segments
Target by weather conditionsTarget accounts, leads, and contacts
Target by Krux audiences
Packaged Apps Live Right Now
Segment Analytics Results by
Optimizely Bucketing
The Salesforce App
# optimize.ly/salesforce-app #
● leads
● contacts
● accounts
● opportunities
The Salesforce App
# optimize.ly/salesforce-app #
• Built on top of the list targeting API
• Target visitors tied to Salesforce leads,
contacts, accounts, or opportunities
• Another way to make this guy a hero! →
• Let’s see it live!
Example: Targeting
Mobile Packaged Apps
Example: Geofenced Targeting
GeofenceTransitionsIntentService.java
public class GeofenceTransitionsIntentService extends IntentService {
// ...
protected void onHandleIntent(Intent intent) {
GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
if (geofencingEvent.getGeofenceTransition() == Geofence.GEOFENCE_TRANSITION_ENTER) {
Geofence fence = geofencingEvent.getTriggeringGeofence();
SharedPreferences prefs = getSharedPreferences("brickandmortar");
int newTotal = prefs.getInt("TOTAL_VISITS", 0) + 1;
Set<String> visitedSet = new HashSet<String>(prefs.getStringSet("VISITED_SET"));
visitedSet.add(fence.getRequestId());
prefs.edit()
.putStringSet("VISITED_SET", visitedSet)
.putInt("TOTAL_VISITS", newTotal)
.apply();
}
}
}
BrickAndMortarPlugin.java
package com.brickandmortar.optimizelyplugins;
public class BrickAndMortarPlugin implements OptimizelyPlugin {
@Override
public String getPluginId() { return "brickandmortar"; }

@Override
public List<String> getRequiredPermissions(Context context) {
return Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION);
}
@Override
public boolean start(Optimizely optimizely, JSONObject config) {
// Do some setup
}
}
BrickAndMortarPlugin.java
package com.brickandmortar.optimizelyplugins;
public class BrickAndMortarPlugin implements OptimizelyPlugin {
@Override
public String getPluginId() { return "brickandmortar"; }

@Override
public List<String> getRequiredPermissions(Context context) {
return Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION);
}
@Override
public boolean start(Optimizely optimizely, JSONObject config) {
// Do some setup
}
}
BrickAndMortarPlugin.java
@Override
public boolean start(Optimizely optimizely, JSONObject config) {
// Set up Geofencing triggers
Intent intent = new Intent(this, GeofenceTransitionsIntentService.class);
setResponderForGeofenceEntry(intent);
// Add current data to optimizely
SharedPreferences prefs = mContext.getSharedPreferences("brickandmortar");
int totalVisits = prefs.getInt("TOTAL_VISITS", 0);
Optimizely.setCustomTag("brickandmortar_TotalVisits", Integer.toString(totalVisits));
for (String locationName : prefs.getStringSet("VISITED_SET", Collections.EMPTY_SET)) {
Optimizely.setCustomTag("brickandmortar_Visited_" + locationName, "true");
}
return true;
}
MyActivity.java
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
Optimizely.registerPlugin(new BrickAndMortarPlugin(this));
Optimizely.startOptimizely(getString(R.string.api_key), getApplication());
}
}
Targeting Using the BrickAndMortar Integration
Build and distribute packaged apps. Power overwhelming.
Sneak Peek: 

Building Your Own
Anatomy of an App Package
integration.yaml + config.yaml
➔ contain standard application data like app IDs, app type, and required settings
functions.py
➔ contain standard server-side logic like how to fetch audience options provided by an
app and how to validate settings
functions.js
➔ when needed, contains standard client-side logic like how to publish third-party
condition data to Optimizely
etc.
➔ you can bundle other files with the package, such as unit tests and API libraries
Key Takeaways
• A rich and ever-expanding set of APIs is available today
• You can use them to address innumerable needs
• Build custom integrations for your own business
• Build and distribute solutions for Optimizely customers at scale
• Packaged apps enable activation and use of application across
any number of accounts, within the native Optimizely experience
• We’re putting the power of packaged apps in your hands!
Join Us!
We’re eager to help you write and publish custom integrations and packaged apps
Talk to us here at Opticon, or email developers@optimizely.com

More Related Content

What's hot

Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion RevenueZillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
Optimizely
 
How to Use Quant and Qual Feedback to Rapidly Improve Your Product
How to Use Quant and Qual Feedback to Rapidly Improve Your ProductHow to Use Quant and Qual Feedback to Rapidly Improve Your Product
How to Use Quant and Qual Feedback to Rapidly Improve Your Product
Optimizely
 
Opticon 2017 Day in the Life of a Modern Experimenter
Opticon 2017 Day in the Life of a Modern ExperimenterOpticon 2017 Day in the Life of a Modern Experimenter
Opticon 2017 Day in the Life of a Modern Experimenter
Optimizely
 
Optimizely Partner Ecosystem
Optimizely Partner EcosystemOptimizely Partner Ecosystem
Optimizely Partner Ecosystem
Optimizely
 
Optimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development TeamsOptimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development Teams
Optimizely
 
Virality in SaaS: What works and what doesn't
Virality in SaaS: What works and what doesn'tVirality in SaaS: What works and what doesn't
Virality in SaaS: What works and what doesn't
Olof Mathé
 
Opticon 2017 Do the Thing That Makes the Money
Opticon 2017 Do the Thing That Makes the MoneyOpticon 2017 Do the Thing That Makes the Money
Opticon 2017 Do the Thing That Makes the Money
Optimizely
 
How We Do It: Proven Website Personalization Strategies
How We Do It: Proven Website Personalization StrategiesHow We Do It: Proven Website Personalization Strategies
How We Do It: Proven Website Personalization Strategies
Optimizely
 
Mailchimp: Scaling Experimentation Across Teams
Mailchimp: Scaling Experimentation Across TeamsMailchimp: Scaling Experimentation Across Teams
Mailchimp: Scaling Experimentation Across Teams
Optimizely
 
Case Study - Webwalk
Case Study - Webwalk Case Study - Webwalk
Case Study - Webwalk
Freshdesk
 
Product Experimentation | Forming Strong Experiment Hypotheses
Product Experimentation | Forming Strong Experiment HypothesesProduct Experimentation | Forming Strong Experiment Hypotheses
Product Experimentation | Forming Strong Experiment Hypotheses
Optimizely
 
Optimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - AtlassianOptimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - Atlassian
Optimizely
 
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance EdgeAhead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Optimizely
 
Apply A/B Testing with NGINX Routing Policy
Apply A/B Testing with NGINX Routing PolicyApply A/B Testing with NGINX Routing Policy
Apply A/B Testing with NGINX Routing Policy
Supachai Jaturaprom
 
Opticon 2017 Bend the B2B Curve
Opticon 2017 Bend the B2B CurveOpticon 2017 Bend the B2B Curve
Opticon 2017 Bend the B2B Curve
Optimizely
 
SplitMetrics answers burning questions on mobile A/B testing
SplitMetrics answers burning questions on mobile A/B testingSplitMetrics answers burning questions on mobile A/B testing
SplitMetrics answers burning questions on mobile A/B testing
SplitMetrics
 
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
Optimizely
 
Retain or Die: The Retention Playbook
Retain or Die: The Retention PlaybookRetain or Die: The Retention Playbook
Retain or Die: The Retention Playbook
Optimizely
 
How FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesHow FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room Devices
Optimizely
 
Opticon 2017 Pushing the Boundaries of Experimentation
Opticon 2017 Pushing the Boundaries of ExperimentationOpticon 2017 Pushing the Boundaries of Experimentation
Opticon 2017 Pushing the Boundaries of Experimentation
Optimizely
 

What's hot (20)

Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion RevenueZillow + Optimizely: Building the Bridge to $20 Billion Revenue
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
 
How to Use Quant and Qual Feedback to Rapidly Improve Your Product
How to Use Quant and Qual Feedback to Rapidly Improve Your ProductHow to Use Quant and Qual Feedback to Rapidly Improve Your Product
How to Use Quant and Qual Feedback to Rapidly Improve Your Product
 
Opticon 2017 Day in the Life of a Modern Experimenter
Opticon 2017 Day in the Life of a Modern ExperimenterOpticon 2017 Day in the Life of a Modern Experimenter
Opticon 2017 Day in the Life of a Modern Experimenter
 
Optimizely Partner Ecosystem
Optimizely Partner EcosystemOptimizely Partner Ecosystem
Optimizely Partner Ecosystem
 
Optimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development TeamsOptimizely's Vision for Product Development Teams
Optimizely's Vision for Product Development Teams
 
Virality in SaaS: What works and what doesn't
Virality in SaaS: What works and what doesn'tVirality in SaaS: What works and what doesn't
Virality in SaaS: What works and what doesn't
 
Opticon 2017 Do the Thing That Makes the Money
Opticon 2017 Do the Thing That Makes the MoneyOpticon 2017 Do the Thing That Makes the Money
Opticon 2017 Do the Thing That Makes the Money
 
How We Do It: Proven Website Personalization Strategies
How We Do It: Proven Website Personalization StrategiesHow We Do It: Proven Website Personalization Strategies
How We Do It: Proven Website Personalization Strategies
 
Mailchimp: Scaling Experimentation Across Teams
Mailchimp: Scaling Experimentation Across TeamsMailchimp: Scaling Experimentation Across Teams
Mailchimp: Scaling Experimentation Across Teams
 
Case Study - Webwalk
Case Study - Webwalk Case Study - Webwalk
Case Study - Webwalk
 
Product Experimentation | Forming Strong Experiment Hypotheses
Product Experimentation | Forming Strong Experiment HypothesesProduct Experimentation | Forming Strong Experiment Hypotheses
Product Experimentation | Forming Strong Experiment Hypotheses
 
Optimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - AtlassianOptimizely Experience Customer Story - Atlassian
Optimizely Experience Customer Story - Atlassian
 
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance EdgeAhead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
 
Apply A/B Testing with NGINX Routing Policy
Apply A/B Testing with NGINX Routing PolicyApply A/B Testing with NGINX Routing Policy
Apply A/B Testing with NGINX Routing Policy
 
Opticon 2017 Bend the B2B Curve
Opticon 2017 Bend the B2B CurveOpticon 2017 Bend the B2B Curve
Opticon 2017 Bend the B2B Curve
 
SplitMetrics answers burning questions on mobile A/B testing
SplitMetrics answers burning questions on mobile A/B testingSplitMetrics answers burning questions on mobile A/B testing
SplitMetrics answers burning questions on mobile A/B testing
 
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
The Optimizely Experience Keynote by Matt Althauser - Optimizely Experience L...
 
Retain or Die: The Retention Playbook
Retain or Die: The Retention PlaybookRetain or Die: The Retention Playbook
Retain or Die: The Retention Playbook
 
How FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesHow FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room Devices
 
Opticon 2017 Pushing the Boundaries of Experimentation
Opticon 2017 Pushing the Boundaries of ExperimentationOpticon 2017 Pushing the Boundaries of Experimentation
Opticon 2017 Pushing the Boundaries of Experimentation
 

Similar to Opticon 2015 - Getting Started with the Optimizely Developer Platform

Cómo tener analíticas en tu app y no volverte loco
Cómo tener analíticas en tu app y no volverte locoCómo tener analíticas en tu app y no volverte loco
Cómo tener analíticas en tu app y no volverte loco
Gemma Del Olmo
 
Making your managed package extensible with Apex Plugins
Making your managed package extensible with Apex PluginsMaking your managed package extensible with Apex Plugins
Making your managed package extensible with Apex Plugins
Stephen Willcock
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Sittiphol Phanvilai
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
Mahmoud Hamed Mahmoud
 
Asp netmvc e03
Asp netmvc e03Asp netmvc e03
Asp netmvc e03
Yu GUAN
 
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on AndroidMobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
Alberto Ruibal
 
Write once, ship multiple times
Write once, ship multiple timesWrite once, ship multiple times
Write once, ship multiple times
Željko Plesac
 
Google analytics
Google analyticsGoogle analytics
Google analytics
Sean Tsai
 
Let's your users share your App with Friends: App Invites for Android
 Let's your users share your App with Friends: App Invites for Android Let's your users share your App with Friends: App Invites for Android
Let's your users share your App with Friends: App Invites for Android
Wilfried Mbouenda Mbogne
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
IndicThreads
 
Testing your application on Google App Engine
Testing your application on Google App EngineTesting your application on Google App Engine
Testing your application on Google App Engine
Inphina Technologies
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
Paradigma Digital
 
Knowing is Understanding: A road trip through Google analytics for Windows Ph...
Knowing is Understanding: A road trip through Google analytics for Windows Ph...Knowing is Understanding: A road trip through Google analytics for Windows Ph...
Knowing is Understanding: A road trip through Google analytics for Windows Ph...
blugri software + services BVBA
 
AI: Integrate Search Function into Your App Using Bing Search API.
AI: Integrate Search Function into Your App Using Bing Search API.AI: Integrate Search Function into Your App Using Bing Search API.
AI: Integrate Search Function into Your App Using Bing Search API.
Marvin Heng
 
Google Optimize for testing and personalization
Google Optimize for testing and personalizationGoogle Optimize for testing and personalization
Google Optimize for testing and personalization
OWOX BI
 
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
Salesforce Developers
 
Advanced Dagger talk from 360andev
Advanced Dagger talk from 360andevAdvanced Dagger talk from 360andev
Advanced Dagger talk from 360andev
Mike Nakhimovich
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
Vinoaj Vijeyakumaar
 
Relevance trilogy may dream be with you! (dec17)
Relevance trilogy  may dream be with you! (dec17)Relevance trilogy  may dream be with you! (dec17)
Relevance trilogy may dream be with you! (dec17)
Woonsan Ko
 
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
mharkus
 

Similar to Opticon 2015 - Getting Started with the Optimizely Developer Platform (20)

Cómo tener analíticas en tu app y no volverte loco
Cómo tener analíticas en tu app y no volverte locoCómo tener analíticas en tu app y no volverte loco
Cómo tener analíticas en tu app y no volverte loco
 
Making your managed package extensible with Apex Plugins
Making your managed package extensible with Apex PluginsMaking your managed package extensible with Apex Plugins
Making your managed package extensible with Apex Plugins
 
Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]Introduction to Firebase [Google I/O Extended Bangkok 2016]
Introduction to Firebase [Google I/O Extended Bangkok 2016]
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
 
Asp netmvc e03
Asp netmvc e03Asp netmvc e03
Asp netmvc e03
 
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on AndroidMobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
Mobile 2.0 Open Ideas WorkShop: Building Social Media Enabled Apps on Android
 
Write once, ship multiple times
Write once, ship multiple timesWrite once, ship multiple times
Write once, ship multiple times
 
Google analytics
Google analyticsGoogle analytics
Google analytics
 
Let's your users share your App with Friends: App Invites for Android
 Let's your users share your App with Friends: App Invites for Android Let's your users share your App with Friends: App Invites for Android
Let's your users share your App with Friends: App Invites for Android
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
 
Testing your application on Google App Engine
Testing your application on Google App EngineTesting your application on Google App Engine
Testing your application on Google App Engine
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Knowing is Understanding: A road trip through Google analytics for Windows Ph...
Knowing is Understanding: A road trip through Google analytics for Windows Ph...Knowing is Understanding: A road trip through Google analytics for Windows Ph...
Knowing is Understanding: A road trip through Google analytics for Windows Ph...
 
AI: Integrate Search Function into Your App Using Bing Search API.
AI: Integrate Search Function into Your App Using Bing Search API.AI: Integrate Search Function into Your App Using Bing Search API.
AI: Integrate Search Function into Your App Using Bing Search API.
 
Google Optimize for testing and personalization
Google Optimize for testing and personalizationGoogle Optimize for testing and personalization
Google Optimize for testing and personalization
 
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)How We Built the Private AppExchange App (Apex, Visualforce, RWD)
How We Built the Private AppExchange App (Apex, Visualforce, RWD)
 
Advanced Dagger talk from 360andev
Advanced Dagger talk from 360andevAdvanced Dagger talk from 360andev
Advanced Dagger talk from 360andev
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
 
Relevance trilogy may dream be with you! (dec17)
Relevance trilogy  may dream be with you! (dec17)Relevance trilogy  may dream be with you! (dec17)
Relevance trilogy may dream be with you! (dec17)
 
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
 

More from Optimizely

Clover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive ExperimentationClover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive Experimentation
Optimizely
 
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Optimizely
 
The Science of Getting Testing Right
The Science of Getting Testing RightThe Science of Getting Testing Right
The Science of Getting Testing Right
Optimizely
 
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Atlassian's Mystique CLI, Minimizing the Experiment Development CycleAtlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Optimizely
 
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Optimizely
 
The Future of Optimizely for Technical Teams
The Future of Optimizely for Technical TeamsThe Future of Optimizely for Technical Teams
The Future of Optimizely for Technical Teams
Optimizely
 
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Optimizely
 
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Optimizely
 
Building an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team OfferingBuilding an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team Offering
Optimizely
 
AMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server SideAMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server Side
Optimizely
 
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
Overcoming the Challenges of Experimentation on a Service Oriented ArchitectureOvercoming the Challenges of Experimentation on a Service Oriented Architecture
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
Optimizely
 
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
Optimizely
 
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product StrategyMaking Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Optimizely
 
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives RevenueKick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Optimizely
 
Experimentation through Clients' Eyes
Experimentation through Clients' EyesExperimentation through Clients' Eyes
Experimentation through Clients' Eyes
Optimizely
 
Shipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHubShipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHub
Optimizely
 
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely
 
The Future of Software Development
The Future of Software DevelopmentThe Future of Software Development
The Future of Software Development
Optimizely
 
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Optimizely
 
Run High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer DiscoveryRun High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer Discovery
Optimizely
 

More from Optimizely (20)

Clover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive ExperimentationClover Rings Up Digital Growth to Drive Experimentation
Clover Rings Up Digital Growth to Drive Experimentation
 
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
 
The Science of Getting Testing Right
The Science of Getting Testing RightThe Science of Getting Testing Right
The Science of Getting Testing Right
 
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Atlassian's Mystique CLI, Minimizing the Experiment Development CycleAtlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
 
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
 
The Future of Optimizely for Technical Teams
The Future of Optimizely for Technical TeamsThe Future of Optimizely for Technical Teams
The Future of Optimizely for Technical Teams
 
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
 
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
 
Building an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team OfferingBuilding an Experiment Pipeline for GitHub’s New Free Team Offering
Building an Experiment Pipeline for GitHub’s New Free Team Offering
 
AMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server SideAMC Networks Experiments Faster on the Server Side
AMC Networks Experiments Faster on the Server Side
 
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
Overcoming the Challenges of Experimentation on a Service Oriented ArchitectureOvercoming the Challenges of Experimentation on a Service Oriented Architecture
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
 
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
 
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product StrategyMaking Your Hypothesis Work Harder to Inform Future Product Strategy
Making Your Hypothesis Work Harder to Inform Future Product Strategy
 
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives RevenueKick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
 
Experimentation through Clients' Eyes
Experimentation through Clients' EyesExperimentation through Clients' Eyes
Experimentation through Clients' Eyes
 
Shipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHubShipping to Learn and Accelerate Growth with GitHub
Shipping to Learn and Accelerate Growth with GitHub
 
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature Delivery
 
The Future of Software Development
The Future of Software DevelopmentThe Future of Software Development
The Future of Software Development
 
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
 
Run High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer DiscoveryRun High Impact Experimentation with High-quality Customer Discovery
Run High Impact Experimentation with High-quality Customer Discovery
 

Recently uploaded

Innovation Management Frameworks: Your Guide to Creativity & Innovation
Innovation Management Frameworks: Your Guide to Creativity & InnovationInnovation Management Frameworks: Your Guide to Creativity & Innovation
Innovation Management Frameworks: Your Guide to Creativity & Innovation
Operational Excellence Consulting
 
Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
LuanWise
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
JeremyPeirce1
 
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
Stephen Cashman
 
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Kalyan Satta Matka Guessing Matka Result Main Bazar chart
 
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challengesEvent Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
Holger Mueller
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
Christian Dahlen
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
aragme
 
Digital Transformation Frameworks: Driving Digital Excellence
Digital Transformation Frameworks: Driving Digital ExcellenceDigital Transformation Frameworks: Driving Digital Excellence
Digital Transformation Frameworks: Driving Digital Excellence
Operational Excellence Consulting
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
my Pandit
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
Norma Mushkat Gaffin
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
my Pandit
 
Authentically Social by Corey Perlman - EO Puerto Rico
Authentically Social by Corey Perlman - EO Puerto RicoAuthentically Social by Corey Perlman - EO Puerto Rico
Authentically Social by Corey Perlman - EO Puerto Rico
Corey Perlman, Social Media Speaker and Consultant
 
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdfThe 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
thesiliconleaders
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
techboxsqauremedia
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
jeffkluth1
 
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
AnnySerafinaLove
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
ssuser567e2d
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
NZSG
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
sssourabhsharma
 

Recently uploaded (20)

Innovation Management Frameworks: Your Guide to Creativity & Innovation
Innovation Management Frameworks: Your Guide to Creativity & InnovationInnovation Management Frameworks: Your Guide to Creativity & Innovation
Innovation Management Frameworks: Your Guide to Creativity & Innovation
 
Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
 
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
The Heart of Leadership_ How Emotional Intelligence Drives Business Success B...
 
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
 
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challengesEvent Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challenges
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
 
Digital Transformation Frameworks: Driving Digital Excellence
Digital Transformation Frameworks: Driving Digital ExcellenceDigital Transformation Frameworks: Driving Digital Excellence
Digital Transformation Frameworks: Driving Digital Excellence
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
 
Authentically Social by Corey Perlman - EO Puerto Rico
Authentically Social by Corey Perlman - EO Puerto RicoAuthentically Social by Corey Perlman - EO Puerto Rico
Authentically Social by Corey Perlman - EO Puerto Rico
 
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdfThe 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdf
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
 
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
 

Opticon 2015 - Getting Started with the Optimizely Developer Platform

  • 1. #opticon2015 Getting Started with the Optimizely Developer Platform Jon Gaulding Senior SWE, Optimizely jon@optimizely.com Josiah Gaskin Senior SWE, Optimizely josiah@optimizely.com
  • 2. • Growth of the Optimizely developer platform • Custom integrations • Optimizely packaged apps • Building your own packaged apps (sneak peek) Overview
  • 3. We’re just getting started. The Optimizely Platform
  • 4. 1 Year of Mobile SDK Growth Optimizely
  • 5. Opticon 2014 Opticon 2015 (present day) Growth of the REST API(number of endpoints)
  • 6. Use our APIs directly, wherever you like. Custom Integrations
  • 7. The Stats Endpoint GET "https://www.optimizelyapis.com/experiment/v1/experiments/1234/stats" # optimize.ly/stats-api # Your System Auto-allocate or Warehouse data or Build custom reports or Send notifications
  • 8. The Stats Endpoint GET “https://www.optimizelyapis.com/experiment/v1/experiments/1234/stats” # optimize.ly/stats-api-demo # • Bradley (→) wants to get a phone call when a winner is first declared for an experiment • Let’s see a demo!
  • 9. The User List Targeting Endpoint POST "https://www.optimizelyapis.com/experiment/v1/projects/456/targeting_lists" # optimize.ly/list-api # Your System CRM or Data warehouse or Analytics Provider or Anything! ● cookies ● query params ● zip codes
  • 10. The User List Targeting Endpoint POST "https://www.optimizelyapis.com/experiment/v1/projects/456/targeting_lists" # optimize.ly/list-api-demo # • Byron (→) wanted to to target an Opticon promotion to certain Optimizely customers • Queried account IDs from Salesforce matching an account cookie on optimizely.com • Let’s see a demo!
  • 11. Example: Experience Delivery Mobile Custom Integrations
  • 13. LiveVariableDialogBuilder.java public class LiveVariableDialogBuilder extends AlertDialog.Builder { LiveVariable<String> mMessageVariable; LiveVariable<String> mTitleVariable; public LiveVariableDialogBuilder setVariableKey(@NonNull String variableKey) { mMessageVariable = Optimizely.stringVariable(variableKey + "_message", ""); mTitleVariable = Optimizely.stringVariable(variableKey + "_title", ""); return this; } @NonNull @Override public AlertDialog create() { if (mMessageVariable != null) { setMessage(mMessageVariable.get()); } if (mTitleVariable != null) { setTitle(mTitleVariable.get()); } return super.create(); } }
  • 14. MyActivity.java public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // ... final LiveVariableDialogBuilder salesDialogBuilder = new LiveVariableDialogBuilder(CodeUIActivity.this) .setVariableKey("SalesDialog"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { salesDialogBuilder.show(); } }); } }
  • 15. Code once. Use Everywhere! Optimizely Packaged Apps
  • 16. Packaged Apps Live Right Now Target by company demographics Target by Lytics segments Target by weather conditionsTarget accounts, leads, and contacts Target by Krux audiences
  • 17. Packaged Apps Live Right Now Segment Analytics Results by Optimizely Bucketing
  • 18. The Salesforce App # optimize.ly/salesforce-app # ● leads ● contacts ● accounts ● opportunities
  • 19. The Salesforce App # optimize.ly/salesforce-app # • Built on top of the list targeting API • Target visitors tied to Salesforce leads, contacts, accounts, or opportunities • Another way to make this guy a hero! → • Let’s see it live!
  • 22. GeofenceTransitionsIntentService.java public class GeofenceTransitionsIntentService extends IntentService { // ... protected void onHandleIntent(Intent intent) { GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent); if (geofencingEvent.getGeofenceTransition() == Geofence.GEOFENCE_TRANSITION_ENTER) { Geofence fence = geofencingEvent.getTriggeringGeofence(); SharedPreferences prefs = getSharedPreferences("brickandmortar"); int newTotal = prefs.getInt("TOTAL_VISITS", 0) + 1; Set<String> visitedSet = new HashSet<String>(prefs.getStringSet("VISITED_SET")); visitedSet.add(fence.getRequestId()); prefs.edit() .putStringSet("VISITED_SET", visitedSet) .putInt("TOTAL_VISITS", newTotal) .apply(); } } }
  • 23. BrickAndMortarPlugin.java package com.brickandmortar.optimizelyplugins; public class BrickAndMortarPlugin implements OptimizelyPlugin { @Override public String getPluginId() { return "brickandmortar"; }
 @Override public List<String> getRequiredPermissions(Context context) { return Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION); } @Override public boolean start(Optimizely optimizely, JSONObject config) { // Do some setup } }
  • 24. BrickAndMortarPlugin.java package com.brickandmortar.optimizelyplugins; public class BrickAndMortarPlugin implements OptimizelyPlugin { @Override public String getPluginId() { return "brickandmortar"; }
 @Override public List<String> getRequiredPermissions(Context context) { return Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION); } @Override public boolean start(Optimizely optimizely, JSONObject config) { // Do some setup } }
  • 25. BrickAndMortarPlugin.java @Override public boolean start(Optimizely optimizely, JSONObject config) { // Set up Geofencing triggers Intent intent = new Intent(this, GeofenceTransitionsIntentService.class); setResponderForGeofenceEntry(intent); // Add current data to optimizely SharedPreferences prefs = mContext.getSharedPreferences("brickandmortar"); int totalVisits = prefs.getInt("TOTAL_VISITS", 0); Optimizely.setCustomTag("brickandmortar_TotalVisits", Integer.toString(totalVisits)); for (String locationName : prefs.getStringSet("VISITED_SET", Collections.EMPTY_SET)) { Optimizely.setCustomTag("brickandmortar_Visited_" + locationName, "true"); } return true; }
  • 26. MyActivity.java public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // ... Optimizely.registerPlugin(new BrickAndMortarPlugin(this)); Optimizely.startOptimizely(getString(R.string.api_key), getApplication()); } }
  • 27. Targeting Using the BrickAndMortar Integration
  • 28. Build and distribute packaged apps. Power overwhelming. Sneak Peek: 
 Building Your Own
  • 29. Anatomy of an App Package integration.yaml + config.yaml ➔ contain standard application data like app IDs, app type, and required settings functions.py ➔ contain standard server-side logic like how to fetch audience options provided by an app and how to validate settings functions.js ➔ when needed, contains standard client-side logic like how to publish third-party condition data to Optimizely etc. ➔ you can bundle other files with the package, such as unit tests and API libraries
  • 30. Key Takeaways • A rich and ever-expanding set of APIs is available today • You can use them to address innumerable needs • Build custom integrations for your own business • Build and distribute solutions for Optimizely customers at scale • Packaged apps enable activation and use of application across any number of accounts, within the native Optimizely experience • We’re putting the power of packaged apps in your hands!
  • 31. Join Us! We’re eager to help you write and publish custom integrations and packaged apps Talk to us here at Opticon, or email developers@optimizely.com