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 / Digital publishing /

Enabling promotional entitlement with Digital Publishing Suite

by Scott Dreier

Scott Dreier

Content

  • Promotional offer
  • Details
  • Installation and configuration
  • Where to go from here

Created

9 April 2012

Page tools

Share on Facebook
Share on Twitter
Share on LinkedIn
Bookmark
Print
digital publishing Digital Publishing Suite e-commerce

Requirements

Prerequisite knowledge

This article assumes the user has access to and can deploy to a web server such as Apache that is configured to run with PHP and MySQL. The user should also be familiar with creating and publishing content to Adobe Digital Publishing System applications and using Viewer Builder to create custom DPS viewer apps.

The reader should also be familiar with DPS Direct Entitlement and the Direct Entitlement Starter Kit.

 

Additional required other products

PHP

MySQL

  • MySQL Community Server (or better)
  • Sequel Pro

User level

Intermediate

Required products

  • Digital Publishing Suite, Enterprise Edition

Sample files

  • getonefree.zip

Note: If you have questions about this article, use the comments feature at the bottom of the article. Please don’t contact technical support with questions about Adobe Developer Connection articles.

Publisher's tablet viewers tend to be free applications, but the content (folios) within them usually require subscription or purchase. To allow a new (potential) customer to sample a folio of their choice for free, publishers can use a technique called Promotional Entitlement. This can be achieved by leveraging the direct entitlement capabilities of Digital Publishing Suite, Enterprise Edition. Using direct entitlement, this system will make available a single retail folio in return for the successful registration of a confirmed email address.

This example is built using the Direct Entitlement Starter Kit.

Promotional offer

As a means to promote a magazine's content, this system will enable a nonsubscriber to register an email address and, in return, receive the right to download any current or back issue. The example uses a simple direct entitlement system without any interaction with traditional fulfillment providers.

Offer

Upon installation of the application, the user is presented with an offer. The offer can be anything, but this example offers a single download in exchange for a confirmed email address. Once confirmed, the user is presented with a set of folios to choose from. In this example, this is the entire library of public and retail content. After the user chooses a single issue for download, the selection is noted in a database and then becomes the only folio to which the user has complimentary entitlement. All others revert to their previous "Buy" state.

While users will always be able to download their chosen folio, they will be prevented from choosing any other folio for download using the complimentary entitlement system. Only one per user is allowed.

Register

The system uses a banner to present the offer and collect an email address from the user (see Figure 1).

Figure 1. Using a dynamic banner to collect an email address. Note: folios only have the "buy" option.
Figure 1. Using a dynamic banner to collect an email address. Note: folios only have the "buy" option.

Verify email address

The user's email address is sent to the entitlement system, which formats and sends an email to that address. This email contains a link that will first confirm the email and then direct the user back to the application (see Figure 2).

Figure 2. Confirmation email
Figure 2. Confirmation email

Users can confirm the email on an iPad or desktop. If they do so on an iPad, the link will be opened in Safari (see Figure 3):

Figure 3. Confirmation
Figure 3. Confirmation

Entitle promotional content

After confirmation of the email, the user is directed back to the application where all public retail content has been enabled for download (see Figure 4).

Viewer app after email confirmation. Note: Any folio is now available for download.
Figure 4. Viewer app after email confirmation. Note: The folio is now available for download.

Download folio

Once the user chooses to download a folio, that folio is granted as the promotional folio and all other folios revert to Buy. In Figure 5, the user has chosen to download Folio 2.

Figure 5. Chosen folio downloaded and available to view; other folios set back to "buy"
Figure 5. Chosen folio downloaded and available to view; other folios set back to "buy"

Details

Upon registering, the email address is associated with the device's UUID. This association is stored in a server-side database. The record then waits confirmation by email. Once confirmed, the record is updated and entitlements are provided to all the public retail content that is found in the publication's DPS fulfillment account (see Figure 6).

Figure 6. Registration, confirmation, and entitlement sequence
Figure 6. Registration, confirmation, and entitlement sequence

The download action invokes the verifyEntitlement method call which will update the record with the productId being requested. This becomes the promotional item and cannot be changed.

Email, the browser and the app

The email message contains a hyperlink that will confirm the email address when selected. The authToken is added as a HTTP GET parameter on this hyperlink and will be used to look up the account.

Example:

http://lighthouse.adobe.com/dps/getonefree/confirm.php?authToken=AUTH::436ea09d860b29dbffd0fd371006f3721582464d&confirmed=1

After confirmation, a hyperlink is provided that contains a URL scheme back to the application. It is of the form: urlscheme:ignored.html

Example:

getonefree:ignored.html

Installation and configuration

The promotional entitlement example will work with your existing DPS fulfillment account, provided that you can deploy the server portion somewhere you control. You will also need to create a new DPS viewer that can connect to it.

Deploy the web application

The following is a general guide to deployment. The kit has been developed and deployed on Apache running on both OSX (Lion) and Linux.

  1. Download and unzip the distribution.
  2. Create a context root on the web server on which you plan to deploy.
  3. Modify settings.php as follows:
    1. Enter the connection information (hostname, username and password) for your MySQL instance. If it is running on the same machine as Apache, you may be able to connect via localhost.
    2. Modify the value "confirmURL" to map to your deployment. It should be a URL to confirm.php in the root directory of the distribution.
    3. Create an "emailSender" address. This should be a real email account.
    4. Modify the value "fulfillment_account" to point to an account you own. (See the Custom Storefront article on how to find this information.)
  4. Create a MySQL database entry named getonefree. You'll actually create the database table dynamically later on.
  5. Deploy.
  6. Request an integrator ID from your Adobe representative. You will need this to actually download entitled retail content. Otherwise, everything else can be implemented, but the final download step will not work.

The application should be running now. The next step is to create a database. To ease some of the details here, a PHP script to create the database is provided in the code sample. Run it now by navigating in a browser to:

http://yourservername[:port]/contextroot/initdb.php

Where:

  • yourservername is the IP address or DNS name of your server; for example, lighthouse.adobe.com.
  • port is optional, and if you have to ask, you do not need it.
  • contextroot is the value created in step 2 above. On Apache it can be the directory to which you unzipped your files—assuming the web server's documents folder is a parent. For example, http://lighthouse.adobe.com/dps/getonefree/initdb.php.

If successful, the page will return the message:

"Successfully created table: getonefree"

Configure an application with Viewer Builder

You will need an entitlement-enabled application to use the starter kit. The starter kit comes with an entitlement banner that you can use. Within Viewer Builder, use these settings:

Property Value

Viewer Type

Multi-issue with Entitlement (and Apple subscriptions)

Technically, the Apple subscriptions are not required, but the whole point is to drive conversions and you want to convert them to Apple subscriptions.

Service URL

http://yourservername[:port]/contextroot/entitlement/

(example: http://lighthouse.adobe.com/dps/getonefree/entitlement/)

Service Auth URL

Same as above

Integrator ID

You will need to get this from your Adobe representative. For now, use "promotion". The Integrator ID is used to call the verifyEntitlement() method, which is only invoked when attempting to download an entitled folio.

Create Account URL

Leave blank

Forgot Password URL

http://yourservername[:port]/contextroot/forms/forgotPassword.php

Banner Page URL

http://yourservername[:port]/contextroot/banner
Offline Banner Assets Use the file chooser to select the Archive.zip contained within the banner directory of the distribution.

Adobe DPS fulfillment account

As mentioned above, the starter kit will attempt to access your DPS fulfillment account to entitle content, so it needs to know the account number. Set the variable "$fulfillment_account" in settings.php to this value. (see the Custom Storefront article on how to find this information).

Where to go from here

Our example makes ALL public retail content available as a selection in return for an email address. Other possibilities:

Back issues only

Rather than offer the current issue, or even the first few issues, the system can be adapted to offer only back issues exclusive of the most recent n issues. For instance, you could allow complimentary entitlement only to 2011 or older content.

Collect other personal information

While the example collects only an email address, you could require the user to formally register a name, address and phone number.

Deferred payment

You could sell a subscription with a deferred payment option. This would collect credit card information up front and provide free access for a predetermined time, after which the credit card is automatically charged.

Affinity

By leveraging an existing database of users, you could provide limited access to customers of another property or service.

Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License+Adobe Commercial Rights

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. Permissions beyond the scope of this license, pertaining to the examples of code included within this work are available at Adobe.

More Like This

  • Add note-taking functionality to a folio
  • Using XML to automate production of digital publications
  • Custom storefront hands-on tutorial
  • Integrate publishing workflows and editorial systems with DPS
  • Enhance your DPS folios with HTML animations using Adobe Edge
  • Integrated social sharing with Digital Publishing Suite
  • Self-signed Adobe content viewer: How-to
  • Distributing enterprise iOS viewer applications with Digital Publishing Suite
  • Using restricted distribution with Digital Publishing Suite
  • Build a horizontal swipe storefront with folio preview

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