SlideShare a Scribd company logo
Do (10x) more with extensions
Do (10x) More with Extensions!
Martijn Beijk
Director Solutions Engineering
EMEA, Optimizely
David Sertillange
Senior Solutions Architect,
Optimizely
Hiltsje Smilde
Solutions Architect, Optimizely
Bradley Taylor
Senior Front End Engineer,
Optimizely
Bryce Wellington
Front End Engineer, Optimizely
1. Introduction
2. Workshop
a. Starter - banner
b. Advanced I - CMS
c. Advanced II - API
3. Closure
Introduction
Into
Extensions
Extensions -
Overview
1. Reusable templates
2. Built by developers
using HTML, CSS and
JavaScript
3. Configured by non-
technical users on a per-
experiment basis
4. Extensions streamline
experiment creation and
reduce code duplication
1. Show a banner
2. Integrate with external
APIs
3. Help marketers to leverage
complex behavioral call to
actions without writing any
code
4. Integrate with your content
management system
Extension
Examples
Extension –
Components
• Fields
• HTML
• CSS (optional)
• Apply JS
• Reset JS
Fields 1. Provide an interface that allows non-technical
users to configure extension
2. Users provide values for variables used by
your code
3. Field types:
1. Selector
2. Text
3. Number
4. Dropdown
5. Color
6. etc.
4. Referenced in code using mustache syntax:
{{ extension.FIELD_API_NAME }}
HTML 1. Provides the structure of the Extension
2. Can reference Field values
3. Define optimizely-extension-instance for easy
removal via Reset JS.
4. Reference fields using mustache syntax:
{{ extension.FIELD_API_NAME }}
CSS 1. Extensions may inherit CSS styling from the
page where it is included, but you can
optionally define CSS styles
2. Use standard CSS file syntax
3. Does not support Field values
4. CSS gets appended to the <body> of the
document using <style> tags and jQuery.
1. Use double-quotes (“”) for any strings
Apply JS 1. The JavaScript which inserts the HTML into a
page (reference using extension.$html)
2. Can use utilities and other Optimizely helper
modules and page variables to assist in
development
Reset JS 1. The JavaScript which runs to remove the
Extension
2. Used in the visual editor and when using
dynamic page activation
3. Use extension.$instance (unique id randomly
generated for each instance of the Extension
on a page)
Using the
Extension
1. Enable the extension before adding it to an
experiment
2. The step of enabling makes sure you can
never use an extension that’s still in
development
Adding to
Experiment
1. The extension becomes available as an extra
feature in the visual editor.
2. When you add the extension you can
configure the editable fields.
3. You can make multiple variations by adding
the extension with different values for the
editable fields.
Workshops
Starter
For everyone who
has never used
extensions before
For everyone
interested in using
an extension for
CMS integration
For everyone
interested in making
behavior or external
API calls with an
extension
Advanced I Advanced II
Starter
Create a New
Base
Extension
1. In the ‘Implementation’ tab under ‘Extensions’
click on ‘Create New’ ‘Editor Extension’
2. Give the extension a name, editor URL, and
description
Do (10x) more with extensions
Add a New Text
Field
1. Add a new text field (one line) by clicking ’Add’
on the left.
2. Give it a label and an API name.
Add New Field
to HTML
1. Reference the new field in the HTML using
mustache syntax:
{{ extension.FIELD_API_NAME }}
Add Another
Field
1. Add another field that enables you to change
the style of the extension
2. For example a dropdown
Changing Style 1. Add a style tag in the HTML
2. Reference the new field in the HTML using
mustache syntax:
{{ extension.FIELD_API_NAME }}
Q&A
Advanced I
Advanced Workshop:
Grab Content from
CMS to an Extension
• Help the attendees
understand the power
of extensions when
used with an API
• Fetch content from
CMS and render
extension
asynchronously
• Deconstruct extension
from optimizely.com
Extension
Configuration
• Use Contentful’s Content Delivery
API, a read-only API for delivering
content.
• Content is delivered as JSON
data, and images, videos and
other media as files.
• Client-side JavaScript SDK
• Extension fields to build API query
Extension
Configuration
• Gather query values
• Make API request
• Pass response to $render to
compile
Advanced II
Advanced Workshop:
Weather-Specific Call-
to-Action
• Help the attendees understand the
power of extensions when used
with an external API
• Demonstrate how extension
developers can allow deep
customization of the added
elements with Fields
Advanced Workshop:
Personalization Only:
Behavior API
• Leverage Optimizely
Personalization to capture visitor
behavior data
• Discover how to use your visitors
behavior information to create
personalized experiences
• Learn how editable fields can be
used to work with your extension
code and configuration
Closure
Takeaways
• Extensions are re-usable templates that make
running experiments easier.
• Keep using extensions!
• Send this to your developers:
• https://github.com/optimizely/addons-library
Thank you!

More Related Content

PDF
2018 What's New in Visual Studio Code 1.25?
PDF
Hello World e4 Application Part 2
PPTX
How to commit a project in svn using svn plugin in anypoint studio
PDF
Getting Started with Visual Studio 2015 and C# 6.0
PPTX
Code repository management
PPTX
MEF Deep Dive by Piotr Wlodek
PPTX
Git hub plugin setup and working with Git hub on anypoint studio
PPTX
Creating extendable applications using MEF
2018 What's New in Visual Studio Code 1.25?
Hello World e4 Application Part 2
How to commit a project in svn using svn plugin in anypoint studio
Getting Started with Visual Studio 2015 and C# 6.0
Code repository management
MEF Deep Dive by Piotr Wlodek
Git hub plugin setup and working with Git hub on anypoint studio
Creating extendable applications using MEF

Similar to Do (10x) more with extensions (20)

DOCX
Foundation and PathwaysCOS10020 Creating Web Application.docx
PDF
No gEEk? No Problem!
PDF
Module 4: Introduction to ASP.NET 3.5 (Material)
PPT
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
PPTX
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
PDF
Html predestination - must everyone have
PPT
Content Management Training
PPTX
Content Management Training
PPT
In Act Developers Platform
PPT
What's New in Visual Studio 2008
PDF
HTML5 Up and Running
PPTX
PL-400T00A-ENU-PowerPoint_03.pptx - Power Platform
PPTX
SoftShake 2013 - Vaadin componentization
PDF
FlexNet Delivery and FlexNet Operations On-Demand Tips & Tricks
PPT
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
PPTX
Whats new in visual studio 2017
PDF
Presenting Data – An Alternative to the View Control
PPTX
Custom Widgets Tutorial InTouch Machine Edition (ITME)
PDF
nothing to share right now here. kindly lkeave this section right away thankuu
PDF
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
Foundation and PathwaysCOS10020 Creating Web Application.docx
No gEEk? No Problem!
Module 4: Introduction to ASP.NET 3.5 (Material)
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
Html predestination - must everyone have
Content Management Training
Content Management Training
In Act Developers Platform
What's New in Visual Studio 2008
HTML5 Up and Running
PL-400T00A-ENU-PowerPoint_03.pptx - Power Platform
SoftShake 2013 - Vaadin componentization
FlexNet Delivery and FlexNet Operations On-Demand Tips & Tricks
5-Must-Have-Tools-for-.NET-Application-Development-Services-pptx-.ppt
Whats new in visual studio 2017
Presenting Data – An Alternative to the View Control
Custom Widgets Tutorial InTouch Machine Edition (ITME)
nothing to share right now here. kindly lkeave this section right away thankuu
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
Ad

More from Optimizely (20)

PDF
Clover Rings Up Digital Growth to Drive Experimentation
PPTX
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
PPTX
The Science of Getting Testing Right
PDF
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
PPTX
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
PPTX
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
PDF
The Future of Optimizely for Technical Teams
PPTX
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
PPTX
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
PDF
Building an Experiment Pipeline for GitHub’s New Free Team Offering
PPTX
AMC Networks Experiments Faster on the Server Side
PDF
Evolving Experimentation from CRO to Product Development
PDF
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
PPTX
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
PPTX
Making Your Hypothesis Work Harder to Inform Future Product Strategy
PPTX
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
PPTX
Experimentation through Clients' Eyes
PPTX
Shipping to Learn and Accelerate Growth with GitHub
PPTX
Test Everything: TrustRadius Delivers Customer Value with Experimentation
PDF
Optimizely Agent: Scaling Resilient Feature Delivery
Clover Rings Up Digital Growth to Drive Experimentation
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
The Science of Getting Testing Right
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
The Future of Optimizely for Technical Teams
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Building an Experiment Pipeline for GitHub’s New Free Team Offering
AMC Networks Experiments Faster on the Server Side
Evolving Experimentation from CRO to Product Development
Overcoming the Challenges of Experimentation on a Service Oriented Architecture
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Experimentation through Clients' Eyes
Shipping to Learn and Accelerate Growth with GitHub
Test Everything: TrustRadius Delivers Customer Value with Experimentation
Optimizely Agent: Scaling Resilient Feature Delivery
Ad

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Machine learning based COVID-19 study performance prediction
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Cloud computing and distributed systems.
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
“AI and Expert System Decision Support & Business Intelligence Systems”
Machine learning based COVID-19 study performance prediction
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
20250228 LYD VKU AI Blended-Learning.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Cloud computing and distributed systems.
Encapsulation_ Review paper, used for researhc scholars
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Do (10x) more with extensions

  • 2. Do (10x) More with Extensions! Martijn Beijk Director Solutions Engineering EMEA, Optimizely David Sertillange Senior Solutions Architect, Optimizely Hiltsje Smilde Solutions Architect, Optimizely Bradley Taylor Senior Front End Engineer, Optimizely Bryce Wellington Front End Engineer, Optimizely
  • 3. 1. Introduction 2. Workshop a. Starter - banner b. Advanced I - CMS c. Advanced II - API 3. Closure
  • 5. Extensions - Overview 1. Reusable templates 2. Built by developers using HTML, CSS and JavaScript 3. Configured by non- technical users on a per- experiment basis 4. Extensions streamline experiment creation and reduce code duplication
  • 6. 1. Show a banner 2. Integrate with external APIs 3. Help marketers to leverage complex behavioral call to actions without writing any code 4. Integrate with your content management system Extension Examples
  • 7. Extension – Components • Fields • HTML • CSS (optional) • Apply JS • Reset JS
  • 8. Fields 1. Provide an interface that allows non-technical users to configure extension 2. Users provide values for variables used by your code 3. Field types: 1. Selector 2. Text 3. Number 4. Dropdown 5. Color 6. etc. 4. Referenced in code using mustache syntax: {{ extension.FIELD_API_NAME }}
  • 9. HTML 1. Provides the structure of the Extension 2. Can reference Field values 3. Define optimizely-extension-instance for easy removal via Reset JS. 4. Reference fields using mustache syntax: {{ extension.FIELD_API_NAME }}
  • 10. CSS 1. Extensions may inherit CSS styling from the page where it is included, but you can optionally define CSS styles 2. Use standard CSS file syntax 3. Does not support Field values 4. CSS gets appended to the <body> of the document using <style> tags and jQuery. 1. Use double-quotes (“”) for any strings
  • 11. Apply JS 1. The JavaScript which inserts the HTML into a page (reference using extension.$html) 2. Can use utilities and other Optimizely helper modules and page variables to assist in development
  • 12. Reset JS 1. The JavaScript which runs to remove the Extension 2. Used in the visual editor and when using dynamic page activation 3. Use extension.$instance (unique id randomly generated for each instance of the Extension on a page)
  • 13. Using the Extension 1. Enable the extension before adding it to an experiment 2. The step of enabling makes sure you can never use an extension that’s still in development
  • 14. Adding to Experiment 1. The extension becomes available as an extra feature in the visual editor. 2. When you add the extension you can configure the editable fields. 3. You can make multiple variations by adding the extension with different values for the editable fields.
  • 16. Starter For everyone who has never used extensions before For everyone interested in using an extension for CMS integration For everyone interested in making behavior or external API calls with an extension Advanced I Advanced II
  • 18. Create a New Base Extension 1. In the ‘Implementation’ tab under ‘Extensions’ click on ‘Create New’ ‘Editor Extension’ 2. Give the extension a name, editor URL, and description
  • 20. Add a New Text Field 1. Add a new text field (one line) by clicking ’Add’ on the left. 2. Give it a label and an API name.
  • 21. Add New Field to HTML 1. Reference the new field in the HTML using mustache syntax: {{ extension.FIELD_API_NAME }}
  • 22. Add Another Field 1. Add another field that enables you to change the style of the extension 2. For example a dropdown
  • 23. Changing Style 1. Add a style tag in the HTML 2. Reference the new field in the HTML using mustache syntax: {{ extension.FIELD_API_NAME }}
  • 24. Q&A
  • 26. Advanced Workshop: Grab Content from CMS to an Extension • Help the attendees understand the power of extensions when used with an API • Fetch content from CMS and render extension asynchronously • Deconstruct extension from optimizely.com
  • 27. Extension Configuration • Use Contentful’s Content Delivery API, a read-only API for delivering content. • Content is delivered as JSON data, and images, videos and other media as files. • Client-side JavaScript SDK • Extension fields to build API query
  • 28. Extension Configuration • Gather query values • Make API request • Pass response to $render to compile
  • 30. Advanced Workshop: Weather-Specific Call- to-Action • Help the attendees understand the power of extensions when used with an external API • Demonstrate how extension developers can allow deep customization of the added elements with Fields
  • 31. Advanced Workshop: Personalization Only: Behavior API • Leverage Optimizely Personalization to capture visitor behavior data • Discover how to use your visitors behavior information to create personalized experiences • Learn how editable fields can be used to work with your extension code and configuration
  • 33. Takeaways • Extensions are re-usable templates that make running experiments easier. • Keep using extensions! • Send this to your developers: • https://github.com/optimizely/addons-library