Is Adobe copying me?

Not to toot my own horn, but twice now Adobe has copied something I have done and added something similar to Adobe analytics as a feature.  I’m not saying they stole them or anything but I did develop some similar solutions and implement them before they did so perhaps a better way to put it is, I inspired them.

The first was the DAMA (Digital Average Minute Audience) with Greg Dinsmore and Mark Dykeman. We did this way back when I worked at the CBC and I like to think it was the inspiration for Heartbeat, the Adobe video tracking.  At the time Adobe still used PEV3 calls, and CBC was consuming a billion server calls.  Now they got a good deal from Adobe which was great because tracking video at the time was very costly.  The way an average minute audience works is it adds up the total amount of time all visitors watched and then divides by the length of the show.

Let’s say you had 100 viewers watch your 22 minute sit-com show.  Some people joined late and some people left early.  Maybe some viewers flipped back and forth with another show.  Let’s say you added up the total minutes actually watched and it worked out to 1,453 total minutes.  To figure out the AMA you simply divide that by 22 minutes – the length of the show.  Rounding down, your average minute audience is 66. So at any point in the show there was, on average, 66 people watching.  This is from old-school TV measurement and we wanted something similar because we needed to speak to producers in a language they were familiar with.

The way we had set it up is the video player would ping every 5 seconds. So, if you watched a 4 minute video (480 seconds) it would make 50 primary server calls.  A start and then a timestamp every five seconds until the end and then a complete call. (This is assuming users do not pause or anything like that, those would be additional calls.)

You might think, why every 5 seconds, why not every minute?  The reason is because news clips are very short usually less than 2 minutes, we needed more accuracy.  With this we were able to report on online shows in a fashion familiar to the producers. Adobe heartbeat sends a call every 10 seconds I believe, but they don’t count them as primary server calls any more which is good because video produces a crazy number of calls and debugging the calls was Hell.

The second thing Adobe seems to have adopted from me is “activity map”.  Again while at CBC I came up with a method of recording (with Aaron Cepukas‘ help) which links on a page were being tracked.  Not only which links, but where on the page and which page.  Adobe had clickmap but it was crap and almost useless, so I came up with a better alternative.  Not as visual mind you, but you can see this functionality is still on CBC with prop22, prop23, and prop24.

cbc_call

I later made improvements (with Miguel Delgado) which minimized server calls and allowed for overrides.   Think I’m full of shit?  Check this out.  See the highlighted link on the BMO homepage which reads “Apply Now”?

bmo

When you click it, it sends a tracking call. I use custom traffic variables prop41, prop42, and prop43 to capture link ID, link Position and link page.  Notice how their “page” is my prop43 and their “region” is my prop42?

call

The reason their “link” is different than my prop41 is I built in an override.  “Apply Now” is too generic and a page may contain multiples of the same link (click here, learn more, buy now, etc…).  What I did was add the title attribute which overrides the actual link text in tracking and allows developers to make the link IDs more descriptive for analysts without affecting the actual text.

<a title=”Apply now – BMO CashBack MasterCard” class=”button primary small” href=”javascript:bmo.creditCardApply.apply(‘cb_mc’)”>Apply now</a>

The reason “page” is the region is the code crawls the DOM looking for the first parent container with an ID.  If you clicked on the “credit cards” in the navigation the link position would be “megaMenu” and so on.

I think I would have a pretty compelling argument (with lengthy history of almost 9 years) that Adobe took this idea from me, except for one issue.  I highly doubt I came up with it.  I may have done it before Adobe integrated it as a plugin into their tool, but someone else almost certainly did it before me.  In fact, I may have seen it elsewhere and thought, “Hey, that’s a great idea!”  I constantly look at other people’s implementations to see what they’ve done and because I’m a developer I can easily pull their pages apart to get at the code so I can pull it apart and see how it works.

I hope the folks at Adobe are not offended by this post and sic their lawyers after me, and I hope people do the same to my code. Imitation is the highest form of flattery and if another developer can take what I have done and improve it, that would be wonderful.

No votes yet.
Please wait...