Monday, April 14, 2014

How to Disable the "Do More With QuickBooks" Ad Box

I've been installing and maintaining QuickBooks in its various flavors for years, but I very rarely used the software as a user.  That changed lately as I was assigned a task to make the quirky Advanced Inventory work for our company... As a newly minted Quickbooks user, I admit I get frustrated sometimes over little things that should work better, or that should be more logical/intuitive, or that shouldn't be there in the first place.  Among the issues in this last category is the most annoying box ever created by a software company, worse than Clippy, worse than ads in free games... the "Do More With QuickBooks" ad panel that is always visible on the lower left corner of the screen when the shortcuts bar is open.

Why is it so bad? Let's see...

1) I paid for the software, and it wasn't cheap.
2) Although I understand the idea of upselling, I find it distasteful when the customer is held captive and can't turn off, disable or opt out of said ads.
3) See #1.

So, after contacting the help line and being told "sorry, you can't turn that off", and then getting basically the same answer from the forum and blog posts, I found myself annoyed and motivated enough to try to do something about this.  What follows is a simple solution that will turn off the dreaded "Do More With QuickBooks" forever (or until Quickbooks gets an update, then I might have to redo these steps...).  Then the last part goes one step further, describing how to turn that space into an useful on-screen launch pad for often used links. 


Part I - Anatomy of the Annoying Box:

Using software development and networking tools, I found out that the programmers used a standard Web Browser control (Internet Explorer) to display the ads.  The box loads its spam from two sources:

  1. If the user has access to the Internet, it loads the contents of the URL https://qbinproduct.intuit.com/ipd/las_box/eco_box.jsp
  2. If the user is offline, it loads the contents of the file offlineEcoBox.html (depending on your version of QuickBooks, this file may be in a different folder... I found mine at C:\Program Files (x86)\Intuit\QuickBooks Enterprise Solutions 14.0\Components\Services)


Part II - How to Disable the "Do More With QuickBooks" Ad Box:

If you use any standard web browser to navigate to the URL above, you'll see this page that looks very familiar:


So, the task seems pretty simple: if we can block that page from being loaded, then QuickBooks can no longer display it.  There are many ways to do this: block it using a software firewall product, add it to IE's restricted sites zone, or simply kill the site by giving qbinproduct.intuit.com a different IP address.  I chose the latter and will describe it below.

In order to kill the site where QB loads its ads from, follow these steps:
  1. Open Notepad or your favorite code/text editor as an administrator (right click its icon and choose "Run as Administrator").
  2. Then open the following file: C:\Windows\system32\drivers\etc\hosts  (This file does not have an extension, and your file location may be different if you installed Windows on a drive other than C:).  Once opened, you should see something like this on the screen:

  3. Add this line to the end of the file, on a new/blank line (press Enter a couple of times to open new lines):

    127.0.0.1 qbinproduct.intuit.com

    (The catch: there is a TAB character between the numbers and the text, so technically you are typing this:  127.0.0.1<TAB>qbinproduct.intuit.com)

    What does this do?  This line in the HOSTS file tells Windows that files on the qbinproduct.intuit.com server are located locally (127.0.0.1), effectively making the calls to that server fail.
  4. Save the file (CTRL+S or File | Save).  If you can't save it, it's probably because you didn't open Notepad as an admin: Go back to Step 1 above.
  5. Great, we just blocked QuickBooks from loading new ads from their spam server, I mean, from the Intuit website.  The only thing left to do is to change their offline file, the one that gets loaded when users are not online.  If you still have Notepad open and running under and administrator account, then go ahead and open the following file:

    C:\Program Files (x86)\Intuit\QuickBooks Enterprise Solutions 14.0\Components\Services\offlineEcoBox.html

    (Again, depending on your QuickBooks version and installation version, the file may be in a different location, but it shouldn't be too hard to find.)
  6. You should now see something like this:

  7. What you need to do: delete all text between <head> and </head>, and then delete all text between <body scroll="no"> and </body>.  Your file should look like this now:

  8. Save and repeat steps 6 and 7 above to the following files:  offlineEcoBox_Barclays.htmlofflineEcoBox_bel_ca.htmlofflineEcoBox_bel_uk.html.

That's it.  Now reboot your computer and the annoying links in the ad box will be gone.

You can stop here, or continue to...


Part III - How to Make the Ad Space Useful (or, "Do a Little More With QuickBooks")

One problem with the method above is that the box is still there, empty.  If you're feeling a little adventurous, we can turn the otherwise annoying ad box into a nice launchpad for important links.  The example below illustrates what I mean:

Example of how to make that dead ad-space useful. Make the ad box your personal launch pad for important links, or put a picture of your puppy there... either way is better than being captive to advertising tricks.


The example above, with links to Google, a company website, weather forecast and a bank, is just one of the possibilities.  This prime real estate space can be turned into anything really, as long as you know how to code some basic HTML.  Here are my changes to the original offlineEcoBox.html included with Quickbooks, removing their ad content and creating a launchpad for useful links:


<!DOCTYPE html>
<html>
<head>
<link href="ecoBox.css" rel="stylesheet" type="text/css"></link>
<object classid="clsid:596801D8-2C9D-4627-9C67-195CB81B655A" id="xobj"></object>
<script type="text/javascript">
function launchLASCommand(url) {
if (url.indexOf("qbw:") == 0) {
xobj.RunQBCommand(url);
}
else {
url = escape(url).replace("%3A", ":");
openURL(url);
}
}
function openURL(url) {
var qbCommand = "qbw:browser?modal=n&HideURL=y&unique=y&BrowserSize=FullClient&Center=y&XOffset=10&YOffset=10&url=" + url;
xobj.RunQBCommand(qbCommand);
}
</script>
</head>
<body scroll="no">
<div class="wrapper">
<div class="ecoBanner">No More Ads With QuickBooks</div>
<div id="ecoBoxContent">
<div class="ecoLinkRow">
<div class="ecoLinks">
<a id="link1" href="#" onclick="launchLASCommand('http://www.google.com'); return false; "><span class="ecoIcon1"></span>Google</a>
</div>
</div>
<div class="ecoLinkRow">
<div class="ecoLinks">
<a id="link2" href="#" onclick="launchLASCommand('http://www.mycompany.com'); return false; "><span class="ecoIcon1"></span>Company Website</a>
</div>
</div>
<div class="ecoLinkRow">
<div class="ecoLinks">
<a id="link3" href="#" onclick="launchLASCommand('http://www.accuweather.com'); return false; "><span class="ecoIcon1"></span>Weather</a>
</div>
</div>
<div class="ecoLinkRow">
<div class="ecoLinks">
<a id="link4" href="#" onclick="launchLASCommand('http://www.bankofamerica.com'); return false; "><span class="ecoIcon1"></span>Bank of America</a>
</div>
</div>
</div>
</div>
</body>
</html>


Disclaimer: blocking the Intuit site above *may* have other consequences (e.g. some other pages not opening, etc).  To reverse this operation, simply remove the added line from the HOSTS file and everything will go back to normal.


I hope this helps someone out there.  Regards!

MiG