Adobe
Products
Acrobat
Creative Cloud
Creative Suite
Digital Marketing Suite
Digital Publishing Suite
Elements
Photoshop
Touch Apps
Student and Teacher Editions
More products
Solutions
Digital marketing
Digital media
Education
Financial services
Government
Web Experience Management
More solutions
Learning Help Downloads Company
Buy
Home use for personal and home office
Education for students, educators, and staff
Business for small and medium businesses
Licensing programs for businesses, schools, and government
Special offers
Search
 
Info Sign in
Welcome,
My cart
My orders My Adobe
My Adobe
My orders
My information
My preferences
My products and services
Sign out
Why sign in? Sign in to manage your account and access trial downloads, product extensions, community areas, and more.
Adobe
Products Sections Buy   Search  
Solutions Company
Help Learning
Sign in Sign out My orders My Adobe
Preorder Estimated Availability Date. Your credit card will not be charged until the product is shipped. Estimated availability date is subject to change. Preorder Estimated Availability Date. Your credit card will not be charged until the product is ready to download. Estimated availability date is subject to change.
Qty:
Purchase requires verification of academic eligibility
Subtotal
Review and Checkout
Adobe Developer Connection / Creative Suite Developer Center / Creative Suite Extension Builder /

So you want to sell your Creative Suite extensions?

by Lea Savage

Lea Savage

Content

  • Application stores
  • Netscape plugin API
  • Web services
  • Where to go from here

Created

27 June 2011

Page tools

Share on Facebook
Share on Twitter
Share on LinkedIn
Bookmark
Print
CS Extension Builder extensibility

Requirements

Prerequisite knowledge

This article assumes a basic understanding of Flash-based extensibility for the Creative Suite.

User level

All

Required products

  • CS Extension Builder 1.5 (Download trial)
  • Extension Manager

This article discusses how third party developers can use existing technologies to help distribute and sell Creative Suite extensions.

Application stores

The 'App store' concept is commonly associated with mobile devices, but in recent months this has begun to extend to applications based on web technologies (generally running in the context of the browser). In this section we discuss how you can use two such stores, Chrome Web Store and Intel AppUp, to help sell and distribute CS Extensions.

Chrome web store

The Chrome Web Store is an online marketplace for apps, extensions, and themes that can be used within the Google Chrome web browser. The apps, extensions and themes extend the capabilities of the web browser, offering a different and more interactive experience to the user.

For our experiments we looked at developing an app for the Google Chrome browser that acts as a distribution mechanism for an extension. Apps that can be developed for the Chrome Web Store can be Hosted or Packaged. In both cases, the app is structured like an ordinary website with the addition of a CRX manifest file. Hosted apps are described as 'ordinary web app[s] with a bit of additional metadata', while Packaged apps are marketed as 'installable web apps'. This means that Packaged apps can work offline and make use of the Google Extension APIs.

How does this relate to monetizing CS Extensions? Packaged apps have the feature that you can include additional files and refer to them with the JavaScript code:

var zxpLoc = chrome.extension.getURL("HelloWorld.zxp");

By including our CS Extension as an additional file, we can:

  • Download the ZXP extension package on initial loading of the page.
  • Make a download link available on the page.
Figure 1. Footprint of a Packaged Chrome App with the inclusion of a CS Extension.
Figure 1. Footprint of a Packaged Chrome App with the inclusion of a CS Extension.

From a user's perspective, the workflow is like this:

  1. Navigate to the Google Chrome Web Store.
  2. Find your Chrome App.
  3. Pay for and install the application.
  4. Navigate to your application homepage (the HTML file included in the app bundle; in Figure 1 this is index.html).
  5. Trigger the downloading of the ZXP.

Figure 2 shows the ZXP being downloaded. When the user clicks the lower left button, Adobe Extension Manager starts up and installs the extension.

Figure 2. Downloading the ZXP from a Packaged App in the Google Chrome browser.
Figure 2. Downloading the ZXP from a Packaged App in the Google Chrome browser.

In this example, the ZXP is freely available in the user's download folder and can be easily shared. To protect your extension from being unfairly distributed, we are looking at another technology, the Netscape Plugin API (discussed in the following section).

Intel AppUp

AppUp is Intel's app store contribution. It focuses on delivering apps to Intel® Atom™ processor-based devices. The AppUp SDK supports a number of languages including C/C++, .NET, Java, HTML5 and Adobe AIR. For our experiment, we used the Adobe AIR SDK to submit an app that contains the packaged CS Extension. When the AIR app was downloaded, it launched Adobe Extension Manager and installed the CS extension.

You can implement the same workflow using the C/C++, .NET and Java libraries.

Summary

This section has identified a couple of app stores that have extended their audience to deliver content beyond mobile devices. We have showed how you can use these to increase the availability of your CS Extensions and avoid risky infrastructure costs. The examples here are not optimized solutions, but illustrate how you can work these technologies into your deployment workflow.

Netscape plugin API

The Netscape Plugin API (NPAPI) is a plug-in architecture that was initially developed for the Netscape family of browsers. It has evolved to include cross-platform support, and is used by a number of browsers. The obvious exception is Window's Internet Explorer, which deprecated support in version 5.5 and now uses ActiveX.

The architecture enables developers to provide native code to handle unsupported content-types in the browser. A well-known example is for PDF document viewing; instead of downloading the file locally, the PDF plug-in enables you to view the document within the context of the browser.

The same workflow applies to viewing Flash content. Communication between the browser and the plug-in is established using JavaScript, with a number of required functions implemented in native code.

In creating apps for the Chrome Web Store and Intel AppUp, you may have noticed the lack of cross-browser support or reusable code. We could have encapsulated the AIR application developed for the AppUp store into the Chrome packaged app, although we didn't do it for this example.

Our interest in the Netscape plug-ins is not so much the cross-platform capabilities, but rather the ability to gain control of the installation process. As noted in the Chrome web store example, once the ZXP file was downloaded, there were no restrictions to prevent the user sharing the ZXP. With the NPAPI, we have better control of the download experience in the context of the web browser.

Prototype

We decided to develop a Netscape plug-in that would support the ZXP content-type. Using Chrome and Firefox for our experiments, we embedded a content-type x-zxp-helloworld into a simple HTML page:

<embed type='application/x-zxp-helloworld' hidden='true' id='plugin0' />

Using JavaScript, we communicate with the Netscape plug-in to pass the file contents. Once the file is loaded, we launch Adobe Extension Manager via the native plug-in to install the CS extension.

Summary

Using this workflow, we can improve security because we have much better control over both the launching of Adobe Extension Manager, and of cleanup tasks including the removal of the ZXP package file.

For example we can use an encrypted package, or simply remove the downloaded content once the CS extension is installed. Both of these measures can help to prevent unlawful distribution.

These are clear advantages of implementing a Netscape plug-in. Our example shows how, with relative ease, you can piggy-back your extension distribution to an existing channel that provides payment options.

Web services

For a different approach to monetizing a CS extension, we looked into available Payment Web Services such as Paypal and Google Checkout. This changes the point at which we monetize the extension. Instead of using a Web Store that expects payment upon download, we request payment when the user first loads the extension within a CS application.

This approach means we can integrate a number of payment web services, and are not restricted to one supplier. All payment logic is contained within the extension. We can also use ActionScript instead of requiring an additional native extension, JavaScript, and HTML. In addition, it allows us to offer different options such as trials, subscriptions, and free/premium versions.

The actual purchase workflow experience depends on the actual system you connect to. Our prototype implementation used the HTML object class to embed the browser workflow within the extension.

<mx:HTML height="100%" width="100%" id="htmlField" />

Once the extension was initialized, the htmlField was assigned the correct HTML to interact with the Payment web service. Alternatively, you could open a web browser for the purchase, before allowing the use of the extension in your application.

Summary

This alternative approach to monetizing extensions doesn't require a costly distribution workflow, or a commitment to one Web Store. However, unless you have your own payment service, you must adopt the workflow of the supplier; this might mean opening a browser, or displaying the supplier's UI within the context of your application.

Where to go from here

This article signals the beginning of an investigation by Adobe on the topic of CS extension monetization. We have identified a few existing 3rd party technologies that are available to help you distribute and monetize your CS Extensions, and provided some guidance on how to do so. You may want to use one or a combination of these examples, or develop a different approach.

We understand the importance of extension monetization for the Creative Suite developer and user base. We will continue researching the space, and sharing our findings and thoughts with you. Stay tuned on CS Extension Builder for more updates.

See below for further information about the technologies discussed in this article:

  • Google Chrome
  • Chrome Web Store
  • Intel AppUp

Additional technologies not discussed in this article:

  • Chrome Licensing APIs
  • Google In-App Payment APIs
  • Pepper Plugin API
  • Firebreath

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License

More Like This

  • Developing multiple Creative Suite extensions
  • Debugging Workflows in Creative Suite Extension Builder
  • Handling XMP Metadata with Creative Suite Extension Builder
  • Skinning Creative Suite extensions
  • Overview of Adobe Creative Suite Extensibility
  • Adobe Creative Suite image conversion utility
  • Developing extensions for multiple versions of the Creative Suite
  • Introducing CS Extension Builder 1.5
  • Developing hybrid extensions with Creative Suite Extension Builder

Products

  • Acrobat
  • Creative Cloud
  • Creative Suite
  • Digital Marketing Suite
  • Digital Publishing Suite
  • Elements
  • Mobile Apps
  • Photoshop
  • Touch Apps
  • Student and Teacher Editions

Solutions

  • Digital marketing
  • Digital media
  • Web Experience Management

Industries

  • Education
  • Financial services
  • Government

Help

  • Product help centers
  • Orders and returns
  • Downloading and installing
  • My Adobe

Learning

  • Adobe Developer Connection
  • Adobe TV
  • Training and certification
  • Forums
  • Design Center

Ways to buy

  • For personal and home office
  • For students, educators, and staff
  • For small and medium businesses
  • For businesses, schools, and government
  • Special offers

Downloads

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

Company

  • News room
  • Partner programs
  • Corporate social responsibility
  • Career opportunities
  • Investor Relations
  • Events
  • Legal
  • Security
  • Contact Adobe
Choose your region United States (Change)
Choose your region Close

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

Terms of Use | Privacy Policy and Cookies (Updated)

Ad Choices

Reviewed by TRUSTe: site privacy statement