This paper presents one technical solution for injecting dynamic advertising during the format process, leveraging RenderX XEP and the XEP Intermediate Document Format to calculate available space “on the fly” and inject a properly selected advertisement.
TransPromo, also known as “statement based marketing”, integrates TRANSactional documents with proactive PROMOtional marketing. TransPromo provides an opportunity to blend marketing messages with must-read printed materials such as invoices, statements, benefits confirmations, explanations, and other notifications. Ultimately, the goal is to influence behavior and drive business volume and to do so by capturing available advertising space in must read communications.
TransPromo is not stuffing extra brochures or flyers into the envelope with a statement. Rather, the offers are printed directly on the statement itself where it has a much higher chance of being read. Promotional messages can be targeted directly to the prospect's purchase patterns and known interests. The open rates of TransPromo vs. direct mail are much higher because the prospect doesn't immediately identify it as "junk mail".
Credit card bills, healthcare statements, 401k communications—they’re all documents that arrive in the mail and must be opened whether a recipient wants them or not. An almost-guaranteed open rate makes these printed transactional materials prime real estate for sales communications and marketing messages. Promotional messaging is more likely to be noticed when it is part of the reader’s bank or credit card statement.
Study after study shows that statements command the most attention among many other common forms of customer communications. With so much attention paid to this document every month, there is huge potential to communicate directly with each customer, on a "one-to-one" personal level. What were once routine requirements — regulatory notices, privacy updates, invoices — can now become sales opportunities.
Banks, utilities, retailers and credit card providers are among the companies discovering the communications value that previously had gone untouched in their statements. The trend is towards merging transaction and promotional content into one document, and delivering it via print or electronic channels.
Consumers are bombarded with advertising, e-mail, direct mail and other forms of solicitation—up to thousands per day. You now face the increasing challenge of distinguishing your communications from the rest of the pack. Consumers expect accurate, timely communications; instant Web access; loyalty programs; and other convenient ways to conduct business—a trend that favors multi-channel campaigns. TransPromo can help because it gives you a way to target your customers—95 percent of whom open transactional documents and spend as much as 1-3 minutes reviewing each piece.
TransPromo combines personalized marketing messages with must-read statements to help you accomplish two important, measurable results: increased revenue and retained customers. Transaction documents have the compelling “must read” quality that direct marketing strives for, and direct mail has the visual appeal and selling power that statements have been lacking. Combining both in the same document and in the same envelope not only saves money, but also opens up additional revenue opportunities. Creating the document in both print and electronic versions to accommodate the preferences of the individual consumer is quickly becoming the standard.
Forward-thinking companies are now incorporating highly tailored messages based on the consumer’s buying habits into transaction documents to provide promotion information relevant to their specific interests. Some companies are even selling ad space to business partners to drive more revenues and teaming up with partners on joint promotional campaigns.
Coupled with high-end variable data printing software and data mining, today’s high-speed continuous feed digital printing systems offer a viable, quick, more cost-effective solution for adding higher-quality color messages on traditional transactional statements.
With TransPromo, you can turn each step of your integrated marketing campaigns into an opportunity to strengthen and grow customer relationships. Instead of plain statements and messages, you can create personalized, customer-centric communications that can help you:
The best use of this technique applies to business-to-consumer (B2C) communication when it is focused on up sell, cross sell, and especially on customer retention campaigns.
TransPromo communications can build on what your company is already doing with direct marketing and statement applications. By making TransPromo part of your direct marketing mix, you can eliminate preprinted insert combinations mailed with each statement in favor of an infinite number and combination of highly targeted, relevant, personalized, “onsert” messages.
You may already have some of the elements required for a TransPromo solution. In fact, if you’re printing transactional customer communications now, you’re ready to begin. With the right TransPromo solution leveraging your existing RenderX installation, you can minimize cost and complexity by using an integrated approach that encompasses data integrity, regulatory compliance, print quality, operational visibility and control, and scalability.
Recently, several financial, insurance and telecommunications organizations using RenderX software for invoice, statement and benefit explanations production have been investigating methods of injecting variable advertisements into their print products. Based on the use of RenderX XEP, our original commercial grade formatting engine, RenderX has provided them with a solution to deliver TransPromo variable marketing advertisements within a complete RenderX solution.
The key to the capabilities described in this document is RenderX’s ability to format to an XML representation of the print stream. This is known as the XEP Intermediate Format (XEP format) and is documented within our support pages and in Appendix E of the XEP Reference Manual. The XEP format is a representation of a fully composed page with an easy-to-interpret XML structure of such things as document, page, text, font, rotation, and image.
Over the years, many RenderX customers have implemented strategic solutions on top of the XEP format, leveraging the ability to easily manipulate it in its XML form to accomplish a wide variety of tasks. Because the XEP format has all information about the page and the locations of everything on that page, one can do some interpretation and manipulation directly in this format without the need to recompose. Also, the XEP format is a simple, easy-to-interpret and defined XML format. Thus, this format is easily manipulated through computer programs and can be done so at blazing speeds, so there is no real impact on the overall formatting speeds.
For TransPromo marketing, most of the key factors already exist for target selection. Whether you wish to key on account balance or product purchased or some other factor, it is likely that you are already composing the information into the document or the data exists (or can be included) in the source XML which represents the statement. One key element that is missing is to determine the available white space on the page. Of course, one could just insert advertising of a fixed size into a document but in reality, one wishes to do so and not affect the page count. By just blindly inserting an advertisement of fixed size, it is likely that for some set of customers you would cause additional pages and just increase costs.
In one case, for example, a RenderX customer wished to inject a coupon in a statement for future purchases. The selection of the proper coupon depended on two factors: a category of the actual invoice recipient’s information, and the space remaining at the end of the invoice. XEP was perfectly suited for the task because the XEP format can carry information from the XML input data stream through to the XEP format in various ways. The XEP format also contains positional information about the location of all elements on the page.
Another user of RenderX has taken this simple concept to the next level. This user is dynamically composing parts of the TransPromo advertisement using information directly from the XML content. The source XML file is passed to another process with all the requisite data inside it (customer name, account number, balance or purchases, etc.). Several advertisement layouts were designed for various increments of available space.
This information along with the remaining space is programmatically assembled and sent to another thread of XEP that dynamically composes the advertisement using some logic measuring available size, using the same source content and processing a dynamic advertisement using one of a set of template layouts based on available space. The XEP format of the dynamically composed coupon is extracted and placed into the original document’s XEP format, translating the origin to the proper location. This method delivers exactly what this RenderX’s customer wanted - a perfect, targeted TransPromo advertisement that fits exactly into the remaining space on the page. The advertisement is so personalized it carries the end consumer’s name, address and various other pieces of data and is an offer based on their purchase or account balance.
Here, we’ll take a look at the detailed technical approach for accomplishing this task. It helps to understand what happens deep down in the solution, but for most users you would only need to modify your source XSLs by adding one line, implement the sample code and go.
The first part required developing an XSL style sheet that can be included within any existing style sheet and called when needed. One special element known as the <pinpoint> element exists in the compliment of RenderX XEP extensions. A <pinpoint> element injected in the XSL FO source will be dropped on the page at the exact vertical location where the XEP formatter is at the time it is encountered. It produces a zero-sized labeled pin that can be used for programmatic analysis.
So the goal here is to drop a structure that when composed with XSL FO would fill the remaining space on a page in a way that it can be measured. Let’s start with a simple case, merely selecting an image dynamically from a group of images of various sizes. Figure 1 shows the complete style sheet created for this demonstration.
Figure 1: The TransPromo XSL Style Sheet
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:rx="http://www.renderx.com/XSL/Extensions"> <xsl:template name="promo.layout"> <fo:block> <rx:pinpoint value="start,promo"/> <xsl:call-template name="promo.info"/> </fo:block> <fo:block-container background-color="white"> <fo:block-container reference-orientation="90"> <fo:block><fo:leader/></fo:block> </fo:block-container> </fo:block-container> <fo:block> <rx:pinpoint value="end,promo"/> </fo:block> </xsl:template> <xsl:template name="promo.info"> <rx:pinpoint > <xsl:attribute name="value">promo,96;promo1.jpg</xsl:attribute> </rx:pinpoint> <rx:pinpoint > <xsl:attribute name="value">promo,193;promo2.jpg</xsl:attribute> </rx:pinpoint> <rx:pinpoint > <xsl:attribute name="value">promo,288;promo3.jpg</xsl:attribute> </rx:pinpoint> <rx:pinpoint > <xsl:attribute name="value">promo,384;promo4.jpg</xsl:attribute> </rx:pinpoint> <rx:pinpoint > <xsl:attribute name="value">promo,479;promo5.jpg</xsl:attribute> </rx:pinpoint> <rx:pinpoint > <xsl:attribute name="value">promo,576;promo6.jpg</xsl:attribute> </rx:pinpoint> </xsl:template>
The trick employed was two <block-container> elements, one inside the other with the inside <block-container> rotated 90Ëš. The outside <block-container> is “white” and the inside <block-container> contains an <fo:block> with <fo:leader/>. This will essentially create a white rectangle which would exist in the intermediate format and that rectangle will fill 100% of the available space left on the page. The structure is bounded by <pinpoint> elements above and below so that the structure can be easily found in the XEP format file.
The second portion of the template, named “promo.info” is here for demonstration. Something like this could be used to pass additional information into the XEP format if desired. In the above example, we are also passing an array of advertisements and their minimum required vertical space (in “pts”).
RenderX assisted the customer with a slight modification to their XSL style sheet to call this XSL template at the location they wanted. Obviously it should be at the end of the statement after all items have been formatted. The following figure shows a fragment of XEP format when this XSL is included.
Figure 2: The resulting XEP format fragment showing the TransPromo information
<xep:pinpoint x="56693" y="262888" value="start,promo"/> <xep:pinpoint x="56693" y="262888" value="promo,96;promo1.jpg"/> <xep:pinpoint x="56693" y="262888" value="promo,193;promo2.jpg"/> <xep:pinpoint x="56693" y="262888" value="promo,288;promo3.jpg"/> <xep:pinpoint x="56693" y="262888" value="promo,384;promo4.jpg"/> <xep:pinpoint x="56693" y="262888" value="promo,479;promo5.jpg"/> <xep:pinpoint x="56693" y="262888" value="promo,576;promo6.jpg"/> <xep:gray-color gray="1.0"/> <xep:rectangle x-from="56693" y-from="56693" x-till="526693" y-till="262888"/> <xep:rotate phi="90"/> <xep:rotate phi="270"/> <xep:pinpoint x="56693" y="56693" value="end,promo"/>
From here, it is easy to figure the results. The <xep:rectangle> structure between the <xep:pinpoint> elements labeled “start, promo” and “end, promo” is the advertisement space. One can extract the attributes “x-from”, “y-from”, “x-till” and “y-till” for the exact dimensions of white space remaining. The dimensions in the RenderX XEP format are in units of 0.001pt (1/72,000 inch) so a simple calculation shows that the remaining space is: y-from=56.693pt, y-till=262.888pt or exactly 206.195pt of remaining white space.
Now, this is the critical element — we have the space. Anything could take place from here. In this simple example we also passed an array of advertisements along with their vertical dimensions (represented by the “jpg” images “promo1” through “promo6”. A simple class was developed that accepts the XEP format MemoryStream and processes it and returns the modified XEP format MemoryStream. In this case, the class injects an <xep:image> using the “promo2.jpg” because the remaining space is 206.195pt and this advertisement fits into that space. This could have even been accomplished through another XSL. Of course, if the remaining space is smaller than any of the advertisements, nothing is inserted.
In the real life application, RenderX and the customer leveraged the input XML data stream characteristics of the invoice to extract the information needed that was marketing related. This information was used by their solution to decide on which advertising banner and coupon to insert.
When the document was formatted to the XEP format, the pin was dropped at the end of the invoice tabular information and it contained the information used to determine the type of advertising banner and coupon needed. The XEP format was programmatically examined by quickly parsing the XML format to find the pinpoint, extract the business logic, calculate the remaining space on the page, inject the advertisement and send through RenderX for processing.
In this simple case, the customer had a collection of pre-sized, pre-determined coupons used to fill the remaining space on the page. The modified XEP format MemoryStream was then sent back as a stream through RenderX XEP to produce the final print output (PDF, PostScript and AFP). No re-composition of the page takes place, the advertisement image is simply injected into the formatting MemoryStream dynamically.
The whole solution was wrapped into a multi-threaded application to run single statements simultaneously in a configurable number of threads. There was little measurable impact on performance. Actual data shows a 1% increase in overall processing time when compared with the existing statement production run which used a static image. The multi-threaded solution processed 250,000 statements a day during QA testing on a dual-core, single CPU laptop computer used for testing. In production, this final results show approximately 1,500,000 statements per day on the customer’s production server—a dual-CPU, quad-core machine.
Figure 3: Various statements with TransPromo advertising
Today IT and marketing are on the same TransPromo page, so to speak. They are united in a cooperative effort to increase revenue, extend and deepen customer relationships, and lower direct marketing costs. Collaboration can make company resources stretch further and enhance the customer experience. The right technology solution can help you reduce cost and complexity and accelerate time to market—all to help you develop more quickly the untapped value of existing customer communications.
RenderX XEP and the XEP format is a perfect platform to build complete solutions for all the needs of the modern enterprise. Leveraging the XEP format is made easy because it is an XML format that is well-documented.
With the help of RenderX software and our professional services team, your marketing department can create that perfect blend and produce a cocktail of revenue boosting customer communications. Add a splash of bold design/color and a slice of variable data and your TransPromo will be guaranteed to get the kick it needs.
If you're producing transactional documents such as statements, invoices, policy notifications, or shipping documents, you already have the data to begin using our TransPromo solution. As this paper demonstrates, TransPromo advertising in a PDF, PostScript and AFP electronic and print format can easily be injected into your application with RenderX.
This solution uses RenderX XEPWin for dynamic formatting of XSL FO content. XEPWin is a product of RenderX, Copyright (c) 2004 - 2008 by RenderX, Inc. All rights reserved.
Sample code of the demonstration application is available on request. For more information about this application, contact:
Kevin Brown
RenderX, Inc.