Marty Thomas,

KISSmetrics is a very robust analytics tool that has the ability to track individual visitors. As their tagline says – Google analytics tells you what’s happening. Kissmetrics tells you who’s doing it.

Kissmetrics does this by assigning a random identifier to each visitor.  This way, you can see that visitor_XYZ123 visited the pricing page and watched the video. But, you won’t know who visitor_XYZ123 actually is.  However, by integrating Kissmetrics into your Personalized URL (PURL) landing pages, we can tell KISSmetrics exactly WHO the person is by name.  Doing this, KISSmetrics will tell you the activity of “Bob Jones” or “Sally Anderson.”  Way better!

Another good application for this is to track people after they visit their PURL.  Say, for example, that “Bob Jones” visits his Personalized URL – Purlem will be able to track that Bob visited his PURL.  But if Bob later returned to the home page, you would not know that it’s still Bob.  Unless you previously installed Kissmetrics and told them It’s Bob. If you did that, any time Bob visits the site, views a video, or downloads a whitepaper, you’ll know that it’s him. This is extremely valuable information that opens up a world of possibilities.

Here is the step-by-step for tracking PURLs with Kissmetrics:

1. Sign up for a Kissmetrics account

Screen Shot 2014-04-07 at 5.51.14 PM

2. Install Kissmetrics on your website

Kissmetrics has some great documentation on installing here. I’d recommend using the Javascript Library.

3. Match the Kissmetrics Identity code to the PURL visitor

You can do this by adding the following to your PURL landing page.

<!-- Kissmetrics Id -->
<?php if(isset($visitor->email) && $visitor->email != '') { ?>
 <script type="text/javascript"> _kmq.push(['identify', '<?= $visitor->email; ?>']);</script>
<?php } ?>

4. Assign a Kissmetrics event to the page visited

You may also want to let Kissmetrics know which PURL page the visitor is on.  You can do that with the code here:

<!-- Kissmetrics Event -->
<script type="text/javascript"> _kmq.push(['record', 'PURL Visit - <?= $visitor->landingpage_name; ?>', '',redirect]);</script>

5. View Results

With Kissmetrics now installed and integrated into your PURL landing page, your Kissmetrics results will now show identify each user by their email.  This is much more valuable than random identifier!

Kissmetrics PURL Results

Marty Thomas,

I was recently asked by a client if I was going to integrate “Real-Time Personalization” to Purlem. I said – I have no idea what that is.

So I did a bit of research and found this Click Z article that does a nice job of introducing and defining real-time personalization:

Basic personalization (such as name and account personalization and dynamic interest or product content) no longer serves consumers’ demand for deeper levels of real-time personalized information.

[Real-time personalization] leverages the most appropriate communications to deliver a personalized customer experience, based on time, place, and the most recent understanding of individual customer intent.

Alright.  That make sense and sounds pretty cool. But what are the actual uses of real-time personalization? The definition above defines three areas that make up real-time personalization:

  1. Time
  2. Place
  3. Customer Intent

For my research, I initially wanted find specific examples for each major industry (Mortgage, Auto, Finance, Education, etc..), and of how each used real-time personalization. However, I quickly realized that there is not much documented on the topic, so had to scratch that ambitious goal.

You would think that companies that specialize in real-time personalization would have a thousand case studies and examples… but they don’t! I’m not sure if it is because the industry is so new, OR, if companies are yet to find the real value.  Either way, I was able to find a couple examples of real-time personalization.  One is based on customer intent, and the other on place. I did not find one example of a company that used time.

Customer Intent

The most obvious example of real-time personalization is Amazon’s recommendation engine, which shows products based off the visitor’s past browsing and purchase history. Here are my Kindle Store recommendations:

Screen Shot 2014-03-10 at 10.08.06 AM


Here is an example of how the Pennsylvania Tourism Office used geography to promote attractions that appeal to specific regions of Pennsylvania.

Geography Personalization


From all the research I did, I did not able to find one example time being used for personalization.  I do, however, have a couple thoughts about how time could be used.  Peapod, for example, may want to highlight breakfast related items in the morning. Or, Honda may want to highlight their car’s traction-control capabilities in the Winter, and the convertibles in the Summer.

If you have any examples of real-time personalization, please share!

Marty Thomas,

Creating Personalized URLs (PURLs) On The Fly is a great money-saving tactic for marketers with a large contact database. (Typically > 1 Million)

PURLs On The Fly

I came up with this tactic after a prospective client came to me wanting to take advantage for USPS’s PURL Promotion.  They have a database of 6 Million contacts, and it simply wouldn’t make sense to transfer this data into Purlem, let along pay up-front for 6 Million PURLs. Creating PURLs on the fly would allow for this user to only pay for contacts that actually visited their PURL!

There are two major catches:

  1. The level personalization on the PURL landing page can’t go beyond the contact’s first and last name (because that is all we know about the visitor)
  2. It will be up to you to de-dup the contacts.

For example, if there are two “Joe Smiths” in your database, you will need to make them unique.  This could be as simple as adding a number to the end of their PURLs:

With that, you can simply send the de-duped PURLs to your print provider or email service. There is no need to first upload (and pay for) your contacts into Purlem.

Setting up PURLs On The Fly

The setup for PURLs On The Fly can be a bit technical. If you need assistance with getting this setup, please contact us.  But if you’d like to give it a try yourself, this is how to do it…

Insert unknown contact through Purlem’s API

You will need to work with through Purlem’s API to automatically add contacts into Purlem that do not yet exist.  The code to do that is below. Add this code to your landing page (index.php) file, just below the existing PURL CODE.

You’ll also want to download the purlapi.php, and add it to your server.

if($visitor->firstName == '') {
 require '../purlapi.php';
 $firstName = $_GET['first'];
 $lastName = preg_replace('/[^\\/\-a-z\s]/i', '', $_GET['last']);
 $dupID = preg_replace('/\D/', '', $_GET['last']);

 ******* Enter Your Info Here ********
 $userID = 'xxxx'; //Enter your userID here
 $token = 'xxxxxxxxxxxxxxxx'; //Enter your API Token here
 $campaignID = 'xxxx'; //The campaign that you would like to add the contact to
 // Add Contact 
 $data = array(
 'campaignID' => $campaignID,
 'firstName' => $firstName,
 'lastName' => $lastName,
 'customXXXX' => $dupID //the custom field to store the duplicate ID
 $response = Purlem::add_contact($data);
 $response = json_decode($response);

  if($response->code == 400) {
  $error = $response->message;

 else {
  //Redirect to PURL (Optional)
  header( 'Location: http://'. $response->data->purl ) ;

Define First and Last Name

Next you’ll want to add the following just above the existing PURL CODE to define the first and last name:

if($_GET['name']) $name = $_GET['name'];
if($_GET['first']) $name = $_GET["first"].$_GET["last"];

Modify .htaccess file

Every Purlem campaign uses the .htaccess file to redirect the PURL to the proper landing page. PURLs On The Fly request slight modification of this code.  Find the following line:

RewriteRule ^([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)/?$$1$2&ID=2764&page=1 [R,L]

And replace with:

RewriteRule ^([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]+)/?$$1&last=$2&ID=2764&page=1 [R,L]


And that’s it!  When a PURL is visited, if it doesn’t already exist in Purlem, a new contact will be added and tracked.  Pretty slick huh?

Marty Thomas,

I just got back from TM360.  It was in beautiful Dana Point, CA – and a much needed escape from the unrelenting cold and snow in Chicago.

dana point, ca

I’ve only been to a few conferences like this. And to tell you the truth, I never seem to get to much out of the sessions.  But meeting new people and seeing how other businesses are trying to stake their claim in the wild west of personalized marketing is very inspiring.

But there was one overarching theme of the conference that I wanted to share.  It’s so deep, that it requires you to rethink everything you know, and have been taught about marketing.  It made a big impact on me, and how to position Purlem for the future.  It’s the fact that B2B is dead.

Brad Brooks‘ keynote set the tone for the rest of the conference, and was – in my opinion – the best session of the conference.  Brooks encouraged marketers to rethink their strategy as “B2ME” as opposed to B2B. It’s no longer about targeting a company, it’s about targeting individuals within that company. People – even in business – want a personalized experience.

So what does this all mean? Quite simply that new business is dependent on building relationships with individuals. You should start to target your marketing efforts towards individuals in businesses, or begin to loose out to your competition.

You can start to build your B2ME strategy through the following steps…

  1. Identifying your market personas.
  2. Create content specific for each persona.
  3. Filter inbound prospects into their proper persona.
  4. Show each prospect content specific to them.

For example.  With Purlem I have identified the following personas: Print Provider, Agency, Educator, Auto Dealer, etc…

With those personas identified, I can create content specific to each persona.  Then, when a new prospect enters the sales funnel, I can identify them with the proper persona, and show them content that is relevant to them in future correspondence (email, direct mail, purls, website…).

Now, there is no doubt out this that it takes work.  Lots of work.  Just creating the content can and should be a full time job. But keep in mind that this is replacing your “traditional” advertising.  You know, the type of advertising where you would throw thousands at the magazine or TV and crossed your fingers that somebody would pick.  The ‘ol spray-and-pray method is long gone. B2B is dead.

Marty Thomas,

This is somewhat of a common problem for Purlem users. Purlem requires that the first and last name be split up in two separate columns. However, many people have a spreadsheet with the first and last names combined into a single column.

Fortunately, the solution is quite simple. I outlined the steps below to separate the first and last names into their own columns.

More of a visual learner?  Watch the video here.

1) Open the Spreadsheet in Excel

I’m using Mac Numbers in the example below.  But the process is more or less the same. In this example we have a single “Owner Name” column, with two different names separated by a forward slash.  The goal is the extract only the first of the two names, and then to split the first and last names into their own columns.

Screen Shot 2014-02-11 at 10.23.11 AM

2) Copy and Paste the Name column into a new spreadsheet.

Create a new spreadsheet in excel.  Then copy the entire name column from the old spreadsheet, into the new one.

Screen Shot 2014-02-11 at 10.24.14 AM

3) Save as CSV

If your using Excel, select File > Export > Save As > CSV (Windows)

Open the CSV file in a text editor.

Screen Shot 2014-02-11 at 10.25.01 AM

4) Find/Replace to Create new Columns

In CSV files, the comma represents a new column.  Hence the “Comma Separated Values.”

So to split up the name into it’s own columns, we simply want to replace every space with a comma.  In this example, we will also be replacing every forward slash with a comma.

Once commas have been added, Save the CSV file.

Screen Shot 2014-02-11 at 11.30.31 AM

5) Open CSV file in Excel

You now have all the names sepearted in their own column.  Since we only want to keep the first and last name, we can delete all other columns.

Screen Shot 2014-02-11 at 11.31.54 AM

6) Past the First and Last Names into Original Spreadsheet

Now you can copy out the first and last name columns, and past them into your original spreadsheet.  And that’s it!

Screen Shot 2014-02-11 at 10.31.46 AM

Marty Thomas,

Below are the keys to a successful email marketing campaign with Personalized URLs (PURLs).

I’d like to point out that PURLs are not on the list!  Yes, I sell PURLs – I dream of PURLs in my sleep – but I’ll be the first one to tell you that they are not the key to an email campaign’s success. PURLs will, however, enhance a successful email campaign by increasing both response and conversion rates. But you first need to get the following right…

Example PURL Email from Mount St. Mary's UniversityQuality of the email list

I’ve said it before that having a highly targeted audience is crucial to Personalized URL (PURL) campaigns. The same applies for your email marketing campaigns.  Email campaigns are the most effective when the recipients know who you are.  This requires that you spend the time to create your own list, rather than purchasing one.

Call to action

The recipient should not have to think about what action you want them to take.  It should be immediately obvious, and the incentive should be strong enough to entice a click!  Need some help brainstorming?  see > PURL Offers – What Works? What Doesn’t?

Design of the email

It doesn’t have to be anything fancy.  In fact, I’ve found that plain-text emails that speak personally to each recipients work the best. Key here is to test many formats and see what works best for your audience.


You can’t just send out one email and hope for the best.  Your email campaign should be ongoing and incorporate print (if applicable).

With that said, it’s important not to overuse email.  I’ve found that every month or two is appropriate for B2B.  A newsletter format can be great way to frequently send emails, and if done right, will provide great value to your recipients.


This one is obvious. People that you send emails to should have previously opted-in.

Marty Thomas,

Personalized Direct Mail is nothing new.  What is new is how affordable personalization is becoming.

The technology that allows you to print personalized data on each direct mail piece is called Variable Data Printing. The cost for variable data printing has historically been an obstacle for those looking to personalize their direct marketing efforts.  However, the technology is both becoming cheaper and easier to use.  If you haven’t already, now is a perfect time to begin to experiment with personalization.

Just take a look the chart below from Banta Corp that shows the production cost and ROI for personalized direct mail.

Low-Level Targeting & Personalization High-Level Targeting & Personalization

Production cost: 25,000 pieces @ $.40 each = $10,000
2% Response rate = 500
Revenue model: 500 @ $100 average sale = $50,000
Production cost as % of revenue = 20%
R.O.I = 5.0x
Cost per response = $20

Production cost: 12,500 pieces @ $.80 each = $10,000
10% Response rate = 1,250
Revenue model: 1,250 @ $100 average sale = $125,000
Production cost as % of revenue = 8%
R.O.I = 12.5x
Cost per response = $8