Some of the most common questions in my inbox relate to the difference between direct and indirect 2d barcodes, so for those that don’t know already I hope this will help.
Direct: The data is embedded in the code.
Take for example QR Codes which can be encoded with a URL, a calendar event, contact information (vCard or MeCARD), an email address, geo location, a phone number, an SMS, or text.
With the direct method whatever data the QR Code is encoded with it will be contained in the code itself e.g. If a QR Code has been encoded in MeCARD format (a format for business card details) when it is scanned with a typical scanner app it will give the option of storing the details in the mobile device’s contacts list. An Internet connection is not required.
If the QR Code has been encoded with a URL and you wanted to see the webpage right away then of course a connection to the Internet would be necessary.
Indirect: The data resides on a server somewhere and is not embedded in the code.
An indirect 2d barcode is encoded with a short alphanumeric text string called an identifier. This kind of encoding is inevitably proprietary and often requires non-standard software to create a code and a proprietary scanner to decode it.
For example an app called the Microsoft Tag Reader for Mobile will scan a Microsoft Tag, connect to the Internet, locate the relevant Microsoft server, look up the identifier to see what data is associated with it and send the data or service back to the app.
Given this limitation of requiring an internet connection you may wonder why anyone of sound mind would want to use the indirect method? However the proponents claim that it is both more secure and also results in a smaller code. All I have to say is that in Japan where QR Codes are ubiquitous I have never seen or heard of an indirect code. Both direct and indirect methods fail to “switching” or “code-jacking” and as to size there are easy options for direct codes such as using the Bitly shortener.
I think that possibly the real reason people have used proprietary codes is because they come with a campaign management system. However recently there have been a number of excellent campaign management tools available for direct codes and it now looks as if indirect codes are all set for a back seat.
If you want to know what happens if you take a standard QR Code and try to make it indirect (and proprietary) then scan the one in the bottom right hand corner of this Neustar webpage (Edit March, 2011: Neustar have very sensibly swapped the indirect code for a direct one! A copy of the original is in the image below). For the vast majority of standard readers it will simply decode as mc*neu*23. Talk about a bad user experience! Without the right scanner even Superman would have a problem.