Posted on

Google Maps Now Requires API Registration

There are some new Google changes that we anticipated nearly a year ago and is not specific to Store Locator Plus.


Effectively Immediately, all new websites that come online as of June 22, 2016 will require a Google Map API key.   This is no longer optional.  Store Locator Plus has had the ability to set a Google API key since version 4.  Go to the General / Server tab and enter your Google API Server Key.

SLP 4.5 General Server Settings
SLP 4.5 General Server Settings

You can learn more and sign up for a key from the Google Maps documentation site.

Google Maps API Limits
Google Maps API Limits

Location Sensor

Any users running Chrome including those using Android based web browsers will no longer be able to auto-detect their location using the location sensor unless the source site is running https.  That means that your website must have a valid SSL certificate.  If your site URL does not load when you use https:// as the starting part of your web address the location sensor provided by the Power Add On will not work.

Posted on

Google Maps API for Business, Store Locator Plus Update

SLP CSA Google Banner

Store Locator Plus, a top-ranked business locator for WordPress sites, was updated today with a patch for Google Maps API for Business users.   Google customers that were using their client ID and private key to access the higher performance Google servers through the Store Locator Plus plugin will once again be able to add and update locations after a prior release introduced a bug that caused geocoding requests to fail if the enterprise access keys were enabled.

Google license and API keys are NOT REQUIRED for the Store Locator Plus plugin to function.    Users that do have a Google Enterprise or Maps for Business account can, however, take advantage of Google’s higher-tier mapping services directly through Store Locator Plus.   With a Google Maps for Business Account key, Store Locator Plus can geocode up to 100,000 locations daily and will request the geocoding data from the high-performance Google Enterprise servers.   These servers can answer geocoding queries 5 to 10x faster than the free service that Google provides if the client ID and private key are not activated.

Other changes in the recent release include a patch to the Store Locator Plus location taxonomy, which allows third party roles & capabilities plugins to access the Tagalong category management system and grant or deny access for managing categories to site users.  Also included is an update to the search form markup structure which sets the foundation for better user interface control in future iterations of the Enhanced Search and other add-on packs that augment the search form layout.

Store Locator Plus Changelog

Posted on

Store Locator Plus : Add On Update Notifications Fixed

SLP DeBaat Button Banner

The latest release of Store Locator Plus, version 4.2.23, fixes the automatic WordPress update notification system for the premium add-on packs. The prior versions would not always report when an update was available for the add-on packs. Without the inline notifications provided by the WordPress admin panel the only option to perform an update was to perform a manual installation. The latest patch will significantly improve premium add-on updates for Store Locator Plus.

In addition to the update notification there were a few other notable patches in the most recent edition of the product. Google API key support has been removed from the product. Since Google JavaScript API V3 was released the API key did not increase map request throughput, including geocoding requests. To increase your API throughput you need to purchase a Google Maps for Business license. Google Maps for Business client ID and secure keys are supported in the product. Research is underway to utilize other third party, and less costly, alternatives for geocoding and map lookup request limit increases. Charleston Software Associates is also working on a service to “rent” increased geocoding request through the CSA Google OEM license. Watch this news feed for future announcements on those services and product updates.

SLP 4.2.23 General Settings
SLP 4.2.23 General Settings : Google API Key removed, Google Maps for Business supported.

Also, in this release, DeBaat provided patches that fix the shortcode attributes for homeicon and endicon, allowing each WordPress page or post that uses the [[slplus]] shortcode to override the default icons for the home and destination markers.

Store Locator Plus Changelog

Posted on

Store Locator Plus Ready For WordPress 4.1

WordPress 4.1 Banner

Store Locator Plus version 4.2.19 was released tonight.  This version has been tested with the latest WordPress 4.1 release candidate that is scheduled for public release any day now.   Minor CSS updates were made to the Store Locator Plus default theme to address changes in the forthcoming Twenty Fifteen WordPress theme that is coming as part of WordPress 4.1.

WordPress 4.1 About Screen
WordPress 4.1 About Screen

A fix to the way intelligent drop down menus, the administrative locations/bulk action menu for example,  are coded to address a bug introduced when WordPress 4.0.1 was released.   Turns out WordPress 4.0.1 handles inline JavaScript differently than prior releases of WordPress which breaks all kinds of things in a variety of plugins.   Store Locator Plus was mostly unscathed other than the admin interface locations bulk actions and the Tagalong cascading (hierarchical) drop down menus.   Other plugins, such as the Cool Video Galleries plugin I used extensively on the docs pages on this site, were less fortunate and may be a permanent casualty of the WordPress rendering engine and shortcode processing changes.

Store Locator Plus Changelog

Posted on

Store Locator Plus Update

GM for Work Banner

Version 4.2.10 of the Store Locator Plus plugin for WordPress was released today.

The recent update adds settings to enable Google Maps for Work clients to use their client ID to enable their access to the Google Enterprise servers.  For clients that have purchased the annual license from Google the new settings will provide access to the higher throughput services provided by Google.  The enterprise-level services includes up to 100,000 geocoding requests per day on a high throughput communication channel.

SLP 4.2.10 General Settings Server
Version 4.2.10 General Server Settings with Google Business License settings for Google Maps for Work clients.

Charleston Software Associates is the first, and possibly the only, Google OEM License plugin for WordPress.   New services are in development that will allow any Store Locator Plus customer to purchase higher-limit blocks of geocoding services directly from CSA via the Pro Pack add-on.   The new pre-request service is scheduled to be launched by January 2015 if production schedules remain on track.

The 4.2.10 includes a fix to the geocoding service which now utilizes the map domain setting under the User Experience / Map tab to request geolocation info from Google.

A patch to the SLP 4.2 add-on pack framework fixes a bug that caused excess memory consumption.

Version 4.2.10 will now show not only installed versions of your add-on packs under the Info / Plugin Environment tab but will also report any newer versions of add-on packs that may be available from the CSA servers.   Accurate upgrade reporting will require the add-on packs having already been upgraded to version 4.2, making this feature more useful for forthcoming upgrades.    The new feature does not rely on the built-in WordPress upgrade testing process which does not always query third party servers in an efficient manner and often misses update notifications.

Store Locator Plus Change Log

Posted on

AWS gMail Relay Setup

SMTP Relay Banner

After moving to a new AWS server I discovered that my mail configuration files were not configured as part of my backup service on my old server. In addition my new server is using sendmail instead of postfix for mail services. That mean re-learning and re-discovering how to setup mail relay through gmail.

Why Relay?

Cloud servers tend to be blacklisted. Sure enough, my IP address on the new server is on the Spamhaus PBL list. While Amazon allows for elastic IP addresses, a quasi-permanent IP address that acts like a static IP, which can be added to the whitelist on the Spamhaus PBL it is not the best option. Servers change, especially in the cloud. I find the best option is to route email through a trusted email service. I use Google Business Apps email accounts and have one setup just for this purpose. Now to configure sendmail to re-route all outbound mail from my server to my gmail account.

Configuring Amazon Linux

Here are my cheat-sheet notes about getting an Amazon Linux (RHEL flavor of Linux) box to use the default sendmail to push content through gmail.

Install packages needed.

# sudo su -
# yum install cyrus-sasl ca-certificates sendmail make

Create your certificates

This is needed for the TLS authentication.

# cd /etc/pki/tls/certs
# make sendmail.pem
# cd /etc/mail
# mkdir certs
# chmod 700 certs
# cd certs
# cp /etc/pki/tls/certs/ca-bundle.crt /etc/mail/certs/ca-bundle.crt
# cp /etc/pki/tls/certs/sendmail.pem /etc/mail/certs/

Setup your authinfo file

The AuthInfo entries start with the relay server host name and port.

U = the AWS server user that will be the source of the email.

I = your gmail user name, if using business apps it is likely not

P = your gmail email password

M = the method of authentication, PLAIN will suffice

# cd /etc/mail
# vim gmail-auth "U:ec2-user" "" "P:yourpassword" "M:PLAIN" "U:apache" "" "P:yourpassword" "M:PLAIN" "U:ec2-user" "" "P:yourpassword" "M:PLAIN" "U:apache" "" "P:yourpassword" "M:PLAIN"

# chmod 600 gmail-auth
# makemap -r hash gmail-auth < gmail-auth

Configure Sendmail

Edit the file and run make to turn it into a configuration file.  Look for each of the entries noted in the comments.  Uncomment the entries and/or change them as noted.    A couple of new lines will need to be added to the file.   I add the new lines just before the MAILER(smpt)dnl line at the end of the file.

Most of these exist throughout the file and are commented out.   I uncommented the lines and modified them as needed so they appear near the comment blocks that explain what is going on:

# vim /etc/mail/
define(`SMART_HOST', `')dnl
define(`confAUTH_OPTIONS', `A p')dnl
define(`confCACERT_PATH', `/etc/mail/certs')dnl
define(`confCACERT', `/etc/mail/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/mail/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/sendmail.pem')dnl

Add these lines to the end of just above the first MAILER()dnl entries:

<p style="padding-left: 30px;">define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl</p>
<p style="padding-left: 30px;">define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl</p>
<p style="padding-left: 30px;">FEATURE(`authinfo',`hash -o /etc/mail/gmail-auth.db')dnl</p>
<p style="padding-left: 30px;">

If you are using business apps you may need these settings to make the email come from your domain and to pass authentication based on your Gmail relay settings.    These are also in


Make the configuration-helper into a file and restart sendmail:

# make
# service sendmail restart

Configure Gmail Services

This is for business apps users, you need to turn on relay.

Go to “manage this domain” for your business apps account.

Go to “Google Apps”.

Click on “Gmail”.

Click “advanced settings”.

Find the “SMTP relay service” entry.    Add a  new entry.

Only addresses in my domain, require SMTP, require TLS all need to be selected.

Give it a name.


Save again.

Posted on

Charleston Software Associates Becomes A Google Enterprise Customer

SLP CSA Google Banner

Charleston Software Associates has officially become a Google Enterprise customer. The new licensing agreement for Google technologies will further strengthen the Store Locator Plus, a location mapping and search plugin for WordPress, product offering in coming months. The new licensing agreement provides CSA with direct access to the Google Enterprise support team as well as access to their high throughput map services servers.

Google Enterprise Email
Google Enterprise license confirmation email.

The combination of access to the Google Maps API for Business services and improved Google support will pave the way for the development of advanced add-on packs as well as general improvement of services in the base Store Locator Plus product offering. On the drawing board for the future of Store Locator Plus is improved direct access to the Google Maps API for Business for customers with their own API keys and new services from CSA for customers that cannot afford the 5-figure investment.

One of the first products that is on the schedule is higher limits and faster throughput on the Geocoding API calls. This is the service that adds the latitude and longitude to all locations entered into Store Locator Plus. Some clients are loading tens-of-thousands of locations via the CSV import feature provided by the Pro Pack. Unfortunately the standard, free, Google Maps API service only allows a maximum of 2500 requests per IP address. Since many shared hosts have thousands of sites, some of which are using Google API services, it is possible that as few as 100 locations will hit the daily geocoding limit. A new service, still in the planning stages, will allow customers to use the CSA servers to encode their locations for a nominal access fee.

General product improvements are expected as CSA takes advantage of Enterprise Support at Google while developing the new services and features. Getting an in-depth technical overview of the Google API services and the best practices for implementing various API calls will extend the feature set and improve the performance of Store Locator Plus and the associated premium add-on packs.

To the best of my knowledge, Charleston Software Associates is the first WordPress locator plugin author to obtain a Google Enterprise license. My goal is to make Store Locator Plus the first and best plugin for leveraging the new services this license will provide. The next year should be an exciting one for Charleston Software Associates and the Store Locator Plus product line.

Posted on

Free Google and Bing Maps? Not For Long

Money Map Banner

Store Locator Plus is helping 45,000+ WordPress sites present interactive store locator and directory maps to their customers.   Along the way I have gained the loyalty and trust of thousands of web consulting agencies, design agencies, and website owners from mom-and-pop shops to multinational corporate enterprises.    Part of keeping that loyalty and trust is keeping up with changes in technology and in business.

Over the past month I have been in conversations with both Google and Microsoft regarding their map services.   It is no surprise to anyone that has been paying attention that maps are THE Go To Service for both these companies.     The proliferation of mobile devices and the partnership it brings between  “show me what I want” and “for where I am standing right now” has catapulted mapping services from a “yeah, we have that too” service to a must-have component.

Monetizing The Maps

Based on my recent conversations with both companies it is clear.   Google and Microsoft are the top players in mapping technology and they are going to monetize that technology every way they can.    They are NOT going to leave that money sitting on the table.   If you are a business and are using maps to enhanced your customer experience, the writing is on the wall:

Period. End of story.

Money Map

Google and Microsoft have all been putting a LOT of work into their map products.  They are both offering paid services for business maps.    They are also putting a lot of pressure on third party service providers, like Charleston Software Associates, to start paying for access to those maps.

It is no longer an option to provide premium map services to your customer base and avoid paying a license fee if there is a map solution involved at any step of the process.   If you do charge for ANYTHING even remotely related to showing a map on a website you need to purchase a map license.   Have a freemium model, like Store Locator Plus, where “all the map goodness” is baked in to the free offering but the “CSS and HTML special sauce” exists in paid add-on packs?  Doesn’t matter, it is tangential to the maps and thus a “premium maps offering”.   If you earn ANY money in ANY way related to a map API you must purchase a license.

How much are those licenses?   Tens-of-thousands of dollars depending on who you talk to.      Have 100,000 visitors looking at your map page in a year?   Try something north of 6-figures.

No wonder Apple decided to contract their own mapping services. Makes complete sense why they stuck with it after the first roll out that was less-than-perfect and current iterations are “not quite right”.   If a small business is paying tens-of-thousands and a big business is paying hundreds-of-thousands, imagine what sort of licensing fees Apple had to be paying.

What This Means For SLP

I have been working the business plan for Charleston Software Associates and trying to justify the nearly $20,000 license fee that Google is charging for an OEM license starting next month.    It is an annual fee that may (and likely will) increase in coming years.   Thankfully I have just enough people buying premium add-on packs to justify the expense.

How does this affect Store Locator Plus?  I plan on providing the same plugins I have provided for the past 2 years.    I hope to continue providing a free base product in the WordPress directory, though that may change.  It is possible that I will need to keep a Google OEM license “locked up” on my servers and make a call-back to my cloud presence before locations can be geocoded.  I am still working out the legal and technical details on that aspect with Google.   Hopefully things can remain as they are with only improvements and “no additional middle-men” in the process between your website and the Google servers.


Store Locator Plus Home Page

For the foreseeable future everything will remain as it is.  This puts a significant amount of added pressure on Store Locator Plus to generate revenue.   Based on the current install base that should not be a problem. Sadly less than 10% of the 45,000 installed sites purchase ANYTHING from Charleston Software Associates.   More than 41,000 sites use the free product with zero contribution toward its development and support.

One thing is certain, starting in July I am locked into the Google Maps program for at least a year.   That means SLP and the add-on packs will be around until at least August 2015.      The best way to ensure SLP is around much longer than that is for users to support the endeavor by purchasing a Premier Subscription.  The recurring annual or monthly revenue helps offset the costs of the Google OEM license.

DIY Maps?  Not So Fast

In case you are thinking “no big deal if SLP were to go away, we will just put Google or Bing Maps into our site directly”, not so quick.    If your business is getting more than a few-thousand visits to your map you are going to get a call.  It is only a matter of time.  When you do the conversation goes something like this “Are you running a business that benefits in any way from having the map on your site?  Yes?   Here is your $20,000 bill.” .  The only way out of it will be having a registered OEM licensed product such as Store Locator Plus.

“If SLP goes away there are other WordPress locator plugins on the market.” True.  For today.   They are all “getting the call” over the next few months.    By this time next year there will be only TWO types of WordPress map plugins on the market.  Premium with support and free but in constant danger of becoming outdated, unsupported, and abandoned.

Getting A Deal On Map Licenses

How can you get the best deal for your Google Maps license?  Buy a Premier Subscription.  It is FAR cheaper than getting a license directly.    CSA is taking the “up front hit” on the license fee which is then distributed among all users.    When Google starts fine-tuning the Geocoding and map presentation service to more closely monitor per-site user stats, Premier Subscribers will be the first to have unrestricted access and higher data caps.

Paying For Good Things

I can’t say I blame Google of Microsoft.   They have a great product that they have been letting businesses use at no charge for a very long time.  They have poured millions of dollars into the acquisition of intellectual property and millions more into the research and development of the products.

I have no issue with paying for the services that enable my customers to provide a better experience for their users.

For Store Locator Plus, I have elected to continue to support Google.  I’ve been a long-time fan of Google. I am an investor in Google stocks since the early days and have been a paid Google Business services user for nearly as long.   I like the company, the culture, and their positive impact on the technology landscape.  Plus they just seemed more interested in my business and helping me out.    I also think it is the best option for my users that have been “with Google” through Store Locator Plus for that past few years.

Improved Offerings

One of the immediate benefits is that  I will have access to the Google Enterprise development team, apparently including someone into extreme skiing.  More important, however, they can help advise on how to better implement the technology.

Google Enterprise
Google Enterprise staff will be available to CSA for advice.

In addition the new license allows for much higher data caps and throughput than the base product.  I am planning several new service options to increase map throughput.     One of the top items on that list is a paid bulk upload service that will allow larger sites to geocode up to 100,000 locations daily.

I have a lot of locator coding in front of me over the next few months and will be bringing some new coders up-to-speed to help get it done.  In the meantime I ask for your patience and support as I navigate the changing landscape of mapping solutions.  I hope that I can remain a loyal and trustworthy guide for my customers.

Thank you for your continue support of Store Locator Plus!

Posted on

Store Locator Plus Update For New Search Feature

Map With Pins Banner

Store Locator Plus was updated today with a behind-the-scenes patch that will facilitate a  new Enhanced Search “append to user-entered address” feature.   This patch comes as part of the base plugin version 4.1.28 and will go largely unnoticed by most users.   There are minor updates to the new Above and Beyond NyloBoard theme that should also go unnoticed by most users.

Upcoming Enhanced Search "Append To Search" feature.
Upcoming Enhanced Search “Append To Search” feature.

Release Details

Posted on

Find Your Android Phone With Play Store

Banner Google Play Store

Lost your Android phone somewhere in your house, car, friends house or other undisclosed location and cannot find it? Not that I’ve EVER done such a thing, but I did stumble upon a feature in the Google Play Store that I never knew existed…

Geolocate and RING PHONE.

Android Find Phone
Android Find Phone

Where is this feature hidden?

Right out in the open on Google Play.

Surf to

If you are not already logged into your account, log in to the same account you use to setup and sync your Play Store apps on your Android device.

When signed in you will see the settings icon, a gear in the top right corner of the page.   Click on that and choose “Android Device Manager”.

Google Play Android Device Manager
Google Play Android Device Manager

Google will ping your device, get the GPS location, show it on the map and give you an option to ring the phone at full volume for 5 minutes.

If the battery is dead you are on your own.

At least you don’t have to borrow a friends phone to ring your cell… though you may need to borrow their computer to surf to the Google Play Store!

Posted on

Google Wallet versus PayPal

Google Thats An Error Banner

PayPal went offline for over an hour last night making the second time in a month and the third time in the past 2 months that the service was unavailable.   PayPal services have become increasingly unstable over the past year with numerous technical issues and down time that has impacts hundreds-of-thousands, if not millions, of users.    My business was impacted last night during one of the busiest days of the past 2 years as the long-awaited Store Locator Plus 4 release was launched yesterday morning.

Once again I set out to find a suitable replacement.    After some research into Amazon Payments, which has the same fee schedule as PayPal yet also has a “reserve” clause that holds your funds for 7-to-14 days, I opted not to use them.  Same with Elavon and their ridiculous 3.5% + $0.40 per transaction fee, a monthly processing fee, batch processing fees and another myriad of add-on fees and costs that I had completely forgotten about after leaving the hard goods retail world a decade ago.   Same for almost all “merchant services” (talk about a misnomer) credit card processors out there, charging more fees for less service.   That left only two choices on my short list:   PayPal and Google Checkout which is soon to be known as Google Wallet for Digital Goods.

As you can probably surmise by the name of the service, Google Wallet for Digital Goods will ONLY be useful for merchants that sell and ship digital goods.   If you are shipping physical goods you can stop reading now, suck it up and go with PayPal.    For those selling digital goods online or via mobile platforms you may want to keep reading.  Maybe.   As I learned along the way, the re-branding of Google Checkout to Google Wallet remains half-ass.    Clearly Google has not assigned their “A-Team” to this project and it appears to be the red-headed stepchild of the Google Business offerings.    As such I decided, like those with physical goods online stores, to just “suck it up” and stick with PayPal and all the warts that come with it.     Yes, PayPal rates are higher than Google’s rates.  Yes, PayPal SUCKS at helping merchants fight fraudulent chargebacks and actually turns a profit processing those chargebacks.    But PayPal clearly thinks of merchant services as their primary business and not a “give these college kids something to work on”-back-room project like Google does.    Pretty harsh review about Google Wallet for Business, I agree, but I also feel it is warranted.

Google Wallet Search
The Google Wallet Search Form – looks pretty. You’d think Google, of all people, would have this working.
Google Wallet Search Fail
What happens when you use search on the Google Wallet pages.

I’ve checked out Google merchant services many times in the past.   Despite some cleaned up modern graphics to help sell the service on the front-end, the back-end is a virtually unchanged hack job of an interface.   Not only is the interface very pedestrian, it is rife with links to outdated help documents, is completely lacking the tools any serious online business needs to research and report on their sales, and is over-simplified to the point of being utterly useless for any real accounting such as import and processing transactions in QuickBooks.    It is no wonder the Google Checkout service failed to ever gain ground against PayPal or the relatively-new-to-market Amazon Payments services.

The Fee Schedule

As with any merchant service one of the first things I look at is processing fees.    Many credit card processors, places like Elavon and, eat you alive  in processing fees.   10-cents here, a quarter-there.  Before you know it you’ve shelled out $900 for $10,000 worth of sales.     It is death by a million paper cuts.    It was true 15 years ago and is true today, traditional credit card processing companies suck at dealing with new-economy merchants.    On the other hand, places like PayPal, Amazon Payments, and Google Wallet for Digital Goods are all tooled specifically to help new economy merchants and have fee structures that are friendly to small businesses.    As such, the first stop at Google Wallet is the fee schedule.

At Google Wallet you will find a very simple web page that states the fees are the LOWER of 5% of the sale OR 1.9% + $0.30.    For anything that is selling at $10 or more the rate is 1.9% + $0.30 regardless of volume.    Both PayPal and Amazon Payments require merchants to sell $100,000 PER MONTH before you qualify for that rate.    If you sell $100k PER YEAR this lowers the fees you pay to the merchant processor by $600 when compared to PayPal.

However, when you sign up for the Google Wallet for Digital Goods service you are required to agree to the Terms of Service agreement.   Within that document they have a myriad of links to various addendum pages including the Rate Schedule (list of fees).   That link goes to an old Google Checkout transaction processing fees page that states the fees are IDENTICAL to the Amazon Payments/PayPal structure with one critical exception; Google charges 1% more per transaction if the buyer and seller are in different countries.  So much for competitive rates.

Google Checkout Fees
The now defunct, maybe-who-knows, Google Checkout fee schedule as linked in the Google Wallet Terms of Service.

Customer Service

When I discovered the discrepancy in published fees I decided I better get an answer to which fee schedule is the REAL schedule.   If it is the original 1.9% deal then making a switch may be worth the effort.   If, on the other hand, it is the tiered schedule that starts at 2.9% AND has a 1% “different country” penalty the switch would be a bad decision as I would lose money in fees AND a week of productivity would be lost during the transition.   Thus I wrote Google an email via the customer support link at Google Wallet.

Kudos to Google Customer Service, they did respond quickly and gave me an example of a $9.67 transaction and a table that was cut from the web page I already read that states the fee as 1.9% plus $0.30.    However they completely ignored the fact that the Terms of Service were wrong.    Nor do I think that if this guy pulled up the WRONG information that Google would stand behind the rate schedule some customer support dude sent me via email.  I can already see Google’s response when my first 3.9% processing fee for an order from the UK comes in… “Sorry Mr. Cleveland, the rate IS 3.9%, the customer service dude gave you bad information.  You did read and agree to the Terms of Service, didn’t you?”.     Customer Service also completely skirted the “buyer and seller in a different country” portion of my question and whether or not the 1% add-on fee applies.   Though he did avoid answering the question in a very subtle ways saying, just before his $9.67 example “for transactions in the US”.    If my read-between-the-lines skill are what I think they are then his answer was “yeah man, we’re gonna nail you for an extra 1% for selling anything to those dang non-Americans” which is EXACTLY what I don’t want as I try to expand my sales into an international customer base.

Cut and Paste Answers
Google Customer Service cut-and-paste answers.

A Collection of Fail

I’m not sure why Google even has the Google Wallet for Business / Google Wallet for Digital Goods / Google Checkout That Is Almost Dead service online in its current state.   How do they expect anyone to have any confidence that their transactions will be processed properly when Google, king of the World of Internet Searches, cannot even build a half-functional website.    It doesn’t bode well for the service if the production manager on this site doesn’t take the time to hire one of their bazillion interns to try to surf the site and make sure it works.   Fixing basic things like broken links or non-conflicting information would be nice.

Broken Help Links
Google’s inline help links are not very helpful. Did anyone at Google even try to use this site?

Final Decision

Final decision?  Not really.  These kind of services change frequently and if Google ever decides to stop putting merchant services in the back room and “letting the kids play with it” I think they can be competitor.  Especially as it is tied to their prolific mobile platforms payment engine that handles all of those android app sales.    However someone needs to be put in charge for the non-app-store side of that business and try to actually compete with PayPal.  Until they do so Google Checkout will continue to be a second-rate service that does not instil enough confidence in business owners such as my self to start putting all their online sales into the “Google Wallet Basket”.

Maybe next time around I’ll choose Google. For now I’ve decided to keep dating the wart-nosed older sister with more experience and stability than the younger less-refined and very schizophrenic cheaper date.   That old girl may trip over her walker and make us late to our next dinner date, but at least I know she’ll be there.  Warts and all.   As for that younger sister, maybe she’ll grow up some day.

Posted on

Over Query Limit

Google Developers Banner

For those of you that follow my blog posts and forum activity you’ve probably been wondering where the heck I’ve been.   Sadly I was not on some exotic trip somewhere, or even a local weekend getaway for that matter.   Instead I was playing furniture mover, construction assistant, and general mayhem manager for just over a week now.    The house flooding that happened last July finally started the repair process which was a nightmare.  The contractor has been great, but along the way we discovered a leak at a roof seam which meant replacing an entire side to the house.  Then we found the last contractor nailed through some water pipes which means some unscheduled repairs to the master bedroom.   Needless to say I’ve been busy as heck but have not been busy with getting SLP4 wrapped up or answering forum questions.

I think we’re entering the final stretch of construction and actually had the opportunity to spend most of the day on SLP code and related issues.     The past 24 hours I’ve been chasing down some issues with SLP4 and an exponential delay in processing CSV imports.    Turns out the “increase the delay each time a location hits OVER QUERY LIMIT” is great in theory, but in the real world you can hit Google’s infamous “Daily Limit” which caused all sorts of problems for me during my testing.

Google Query Limits

Google has two different paths to reaching the “Over Query Limit” issue.   Both are typically related to a bulk import using the CSV Import in Pro Pack.  Users visiting your website are using the client side geocoding process which Google counts towards their personal browser query limit which, to paraphrase the Google website, “you don’t have to worry about, nobody but a spam bot will hit that limit”.

However server based requests, which is the proper method for handling mass lookups of locations and geocoding them with proper latitude and longitude coordinates, is another story.   You CAN hit one of the two limits Google enforces.    The first limit is the “how many requests per minute” limit, or “Rate Limit”.  The rate limit is usually fairly happy as long as you are not requesting more than a dozen geocodes per minute.    If you run at “full throttle” for too long, Google will put you on a brief hold.

Rate Limit Management

Store Locator Plus does a fairly good job at managing the Rate Limit with Google.  This is the most common cause of Over Query Limit (OQL) and by introducing a slight delay between requests the Store Locator Plus engine can mitigate the OQL responses.    In SLP3 the process was fairly simple, if you receive an over query limit response from Google, wait a half-second and re-submit.   It will do this process up to the number of retires you set in the settings panel.

With SLP4 the process is far more intelligent.   While it will still retry n-times based on your setting, it starts out with a 2 second delay and increases the delay by 1 seconds each time an over query limit message is received.  These parameters are based on Google’s recommendations when OQL is received, waiting 2 seconds before the first request that returns OQL and waiting 1 second between subsequent requests. The SLP4 engine will keep track of the delay between all of your location geocoding requests, extending the delay up to 6 seconds between requests until the time the Google stops returning the OQL message.   This makes the SLP4 bulk imports much faster and has shown to get more locations encoded than the SLP3 geocoding engine.   With SLP4 you can also change the maximum delay to increase it if you are on shared or cloud hosted server where one IP address may have many sites using Google service, or turn it down if you are on a dedicated server with a dedicated IP address.

Daily Limit Management

The other way Google stops you from running geocoding processes is via the Daily Limit.  If you’ve been abusing their geocoding service for too long they will shut you off for at least 24 hours.    Normally you (or the IP address you share) need to make at least 2500 requests before they put you on this limitation.    In my testing I reached nearly 10,000 locations encoded before I ASSUME I was put on the Daily Limit restriction.  Since Google returns the same general Over Query Limit response for both Rate Limit and Daily Limit I cannot tell for certain but there are some key indicators.    Once I was put on Daily Limit, I could not encode a SINGLE location from the server request interface.    I also learned that if I tried to re-geocode a location my 24-hour wait limit was extended.    I have no idea by how much, but it seems like they won’t reset your Daily Limit or put you on a strict Rate Limit program once you’ve “crossed the line”.

Google also notes in their Web API Strategies document that you can be locked out from their service, meaning your IP address can be permanently banned from doing any geocoding.

The short version of what this means: if you hit the Daily Limit STOP trying to geocode  your locations for at least 24 hours.

Mitigation of OQL

Store Locator Plus 4 improves on the features of SLP3 for handling bulk encoding of address.   Here are some things that can help (some of these settings are SLP4 only):

– Set the Google Retries to 3, more than 3 doesn’t usually yield more locations being geocoded and just adds more marks against your Rate Limit or Daily Limit.

– If you are on a SHARED IP address server (virtual server, virtual dedicated server, cloud server, or don’t-know-what server) set your maximum delay to 10 seconds.

– If you suspect you have hit your Daily Limit, import  your data with “skip geocoding” turned ON.    This will get the locations into your database, though they will not be searchable, so you can later geocode them in smaller blocks.    I try to do no more than 100 locations per re-coding session, wait 20 minutes, and try 100 more.   Stop the process when any single batch has more than half the locations returning “Over Query Limit” warnings.

– Look closely at the SLP4 messages that are returned.   They provide more information and better statistics on the uncoded locations.   Not all uncoded locations are Over Query Limit issues.   Some addresses simply cannot be located by Google or got lost in the Google processing.   Each result will report different status messages.   Only re-try geocoding locations with OQL messages.

– Use the CSV lat/long fields to skip geocoding on any locations where you know the proper lat/long.   You can use free services like the Texas A&M service for US locations to manually look up lat/long.  They even allow spreadsheet input of locations.

– Once you have locations geocoded use the export feature in Pro Pack (v4+) to get the lat/long out of the system for future updates.    Any time you can avoid the bulk import geocoding process you will speed up the import AND stop Google from giving you the Overy Query Limit message.

Posted on

Why Do Store Locator Plus Search Results Keep Changing?

Google Maps Preview Banner

This is a question that comes up fairly regularly.  In the past few weeks it seems to have become more prevalent and while I do not have empirical data to back up my theory, my guess it that Google Maps API has once again changed their geo-location algorithm.   That is the algorithm they use for Google Maps API requests looking for the latitude and longitude of a given address.

It is important to note that I said “Google Maps API” specifically.   While it is perfectly logical to think that the results you get from a product like Store Locator Plus, which uses the Google Maps API, would yield identical results to the Google Maps website, that is not the case.   In the past year alone I’ve seen at  least a dozen cases where I do an API lookup and get one set of latitude/longitude coordinates yet a visit to yields something similar but different.  Often the locations are within a few-hundred-yards of each other. However a few hundred yards can make a BIG difference when you are searching for specific locations within a city.

The app takes whatever is in the address input field and sends it to Google asking “hey, where is this?”.  Google sends back a lat/long that can be widely variant depending on the input.  Unfortunately a simple string of numbers that an American immediately thinks of as a “zip code” is more ambiguous to the Google server.  That makes for some interesting results.    Setting your default country to “United States” does seem to influence the Google Maps API algorithm, but only marginally.   Maybe there is a way to make that setting “more influential” to the geocoding algorithm.  That is something that is worthy of some extra research.

The way Store Locator Plus works is to take an address that is put into the zip/address field and send it away to Google for a latitude/longitude coordinate.   What happens after that is very dependent on what is returned from Google.      One thing I have learned from the experience is the more detailed the input the more consistent the results.

Here are specific results from extensive customer testing last week:

1508 7th Ave

This is fairly generic, so Google uses an algorithm (which they didn’t share with me) to determine the exact latitude & longitude using their “best guess” option.

The coordinates Google returned on subsequent identical searches:

47.60153687827675, -122.32470975000001
47.602484592904055, -122.32619270000004

It is not a BIG difference in lat/long but it is enough to skew the results on what is closest based on what Google thinks you meant by that address.

1508 7th Ave, Seattle WA

A more specific address begets more consistent results from Google:

47.605118409127265, -122.33055674999997
47.605692672148685, -122.33055674999997
47.605692672148685, -122.33055674999997

More specificity in what is sent to Google means less variance on the output.

1508 7th Ave, Seattle WA 98101

The very specific address yields identical results every time:

47.605692672148685, -122.33055674999997
47.605692672148685, -122.33055674999997
47.605692672148685, -122.33055674999997
47.605692672148685, -122.33055674999997
47.605692672148685, -122.33055674999997

Making Store Locator Plus Smarter

There may be ways to address this within the plugin, but with 30,000+ sites using the plugin I need to be careful on what I change and why.

Proposal 1: Auto-extend The Address

For example, it would be possible, with a good bit of work, to “figure out” what region of the world he map is showing via an algorithm.    For example, run a “behind the scenes” search of a single address and grab the city + state + zip from that whenever the address does not have a city + state + zip.  Then re-run the search with that info appended.  But there are issues:

  •  Not all users are in the USA.
  • What do you do for countries where the format is zip + province on the end?
  • What if a user types 1508 7th Seattle?  What is the street versus the city?

I could just take the initial center of the map and use that as the zip code, but that would mangle the location sensor results.

Proposal 2 : Add Separate Search Form Address, City, State, Zip Fields

I could create new input fields for city + state + zip, but again we have country specific issues.

I think entering separate fields is more of a pain for the user.

Have An Idea?  Share…

Have and idea on how to address the “moving target” issue, please share.


Posted on

New Google Maps Coming…

Google Maps Preview Banner

I recently was approved for the upcoming Google Maps interface changes and I must say I like it a LOT more than the previous interface.  Going back to the current interface that is the “official release” everyone uses at seems old and clunky now.    This gives me some new UI design to aim for with the Store Locator Plus product line.

Here is the invite with the link to the preview site.  You’ll need to sign up and get approval before you can use the new Google Maps site.   It took 3-days to get my request approved. Your results may vary.

Google Maps Preview
Google Maps Preview
Posted on

Back Up Google Drive with CrashPlan

Today, as I put another spreadsheet with Store Locator Plus and Enhanced Results features onto Google Drive, I realized something.   If Google Drive crashes, very unlikely but stranger things have happened, I don’t have a backup copy of ANY of my Google Drive documents.  There are a lot of things I have out there that I really don’t want to re-create.   It is even more important now that I am using Google Drive to store spreadsheets that are an integral part of my WordPress plugin documentation.

While I’m thinking of it, let’s go down that road for a moment.

Using Google for WordPress Tables

A few days ago I wanted to start building an “add on pack comparison” to the site.   It helps me organize my thoughts on what features belong in which plugins, reminds me of where I put those features, and also educates the consumer on what plugin they may be interested in.    I decided a wide table with side-by-side columns for each plugin was the best option.   Since it is not a true price comparison I needed a flexible grid display.

I tried a number of table plugins that are out there in the WordPress extensions directory.   Unfortunately a large number of those plugins were defunct, many not updated in years.   The few that were updated were adequate but too hard to man-handle to look  just the way I wanted, requiring extensive CSS updates and HTML man-handling to behave as I desired.  Sure, some of those, like TablePress, had options to make those efforts easier but still not effortless.

Then I stumbled across a post that discussed inserting a Google spreadsheet in the middle of a page.   You create a spreadsheet, format it how you like, and then publish to web.   Select the “embed code” and get the unique iframe tag to put on your site.  While I was leary of the iframe idea, it worked beautifully.   Now I can format the colors, fonts, and column data exactly how I want with the ease of updating the Google spreadsheet.  It is far easier to click a cell and the color box and see the background change than tweak CSS all day.

If you are trying to put tables in WordPress you may want to check that out.     Create the spreadsheet in Google, go to “publish to web”, publish, go to “get embed code”, copy the iframe HTML snippet, and paste into your page or post (in text mode).   Tweak the width and height parameter to fit your site.  Done.

embedded google spreadsheet
embedded google spreadsheet

Check off “auto-republish” and every time you make a change it will reflect on the website within a few hours (or you can force a manual republish if you need if faster).


Backing Up Google Drive

So back to the backup issue.   I have a lot of doc, some integral to my public site, on Google Drive.   I NEED to back those up.    How did I do it?  Turns out easier than I thought.

First, I run CrashPlan as my backup service.  MUCH better than Mozy which is over-priced, IMO.   A MILLION TIMES better than Carbonite, which is slow as heck, throttles the computer, has horrible restore times, and worse support response times.   In fact if you are considering backup my only key recommendation is do NOT use Carbonite.  There is a reason you hear about them all the time, they are hiding a poor design and poor service with a huge marketing budget.

Second, getting the Google Drive content to the CrashPlan backup.   Easy.   Install Google PC Drive.   When you log into Google Drive there is a subtle link in the left sidebar for this app.    It is an program that will be installed on your local computer.   It creates a folder on your computer which is the “local sync” for the Google Drive content.  You can select which folder you want to keep in sync.   I just let it do the whole thing since I have plenty of space on the 1TB drive in my notebook computer.

Now I have a local copy (first stage backup) of everything on Google Drive.   Even better, if I create something in that folder OR on Google Drive it will be auto-replicated on both sides.   That makes for a good first stage backup strategy.

Second, since this folder goes under your user directory by default CrashPlan should automatically note the new content and mark it for backup, which it did on my system.  If it does not do this you can manually add the Google sync folder to the backup plan.

crash plan and google drive
crash plan and google drive


I like easy.


Henry Houh contact me last week about an issue with this type of backup.     It turns out Crash Plan will not back up ANYTHING by default when using this configuration.  Why?    Crash Plan runs as the user “SYSTEM” not as your normal login user.     Google Drive runs as you.

In my case the Google Drive folder was created with “Full Control” permission for me but NO permissions for the system user “System”.

The fix?

Go to the Google Drive folder, not the shortcut.

Right-click and select properties.

Select the security tab.

Click the Edit button.

google drive properties

Type “System” in the add user box.

Click “Check Names”.

Click OK.

Click on System in the list of users.

Check off “Full Control” under the allow column.

Click OK.

Click OK.

google drive with system properties

Now your Google Drive content will be backed up to Crash Plan.