Generate API Keys
Before you can use Google Maps in the WP Store Locator plugin, you will need to create two API keys.
- The browser key is used when data is requested from the Google Maps JavaScript API. This happens when the map is loaded in the admin area or on the store locator page itself on the front-end.
- The server key is used when a request is made to the Google Maps Geocoding API to convert an address into a set of coordinates. This happens when a new location is created in the admin area, or when a CSV file is imported and the coordinates are not included in the imported data.
-
If you don’t have an active account on the Google Cloud Platform, then the first screen will collect the required details for your billing account. This comes with $200 free monthly credit, which is sufficient for normal usage.
If you already have an active billing account, then you will be asked to provide a name for your new project.
-
After this you will be taken to the next screen where you see a generated API key. The easiest option here is to keep the ‘Enable all Google Maps APIs for this project’ box checked, but if you only want to enable the ones required for the WP Store Locator plugin, then you have to manually enable the APIs listed here.
Copy the shown api key, and set it in the ‘Browser key’ field on the settings page in the ‘Google Maps API’ section.
Because we will use this api key for the front-end, we will need to set the restrictions in the next screen to HTTP referrers.
The referrer value should be set to the domain you plan to use the plugin on. So if your website runs on xyz.com, then you should set the referrer value to xyz.com/*, or if there’s a subdomain to *.xyz.com/*. Click on ‘restrict key’ when your done.
-
Next we will create an additional api key that will be used as the server key. In the menu bar click on ‘create credentials’ and select ‘API key’.
This will show you the key that will be your server api key. Copy the key, and set it in the ‘Server key’ field on the settings page in the ‘Google Maps API’ section.
To prevent unauthorized usage we will also restrict it to the IP address of your server. You can do this by clicking on the ‘Edit API key’ text shown in the window.
-
On the next screen, set the application restriction to ‘IP addresses’ and click on ‘add an item’.
Set the value of the shown field to the IP address of your server. If your server is using a dynamic IP, then contact your host and ask for the used IP range ( the range will have this structure 172.16.0.0/12 ). Once you have have obtained the used IP range set it as the referrer for the server key.
If any of the above is unclear, then please follow the video tutorial from the Google Maps Platform team below.
Validate the API Keys
After you have saved the browser and server keys on the WPSL settings page, click on show response to make sure there are no configuration errors.
If any errors show up, then make sure to check the troubleshooting section.
Use an Existing Project In The Google Developers Console
If you have already created a project for your website in the Google Developers Console, then make sure to enable the following Google Maps APIs.
- JavaScript API
- Geocoding API
- Directions API
- Distance Matrix API
- Elevation API
- Places API
- Static Maps API
Troubleshooting
The most common issues with both the server and browser API keys are caused by missing / incorrect referrers.
The referrer for the browser key should be set to the current domain ( http(s)://domain.com/* or *.domain.com/* ), and for the server key it should be set to the IP address of the current domain.
Another common issue is that a grey map in combination with a broken start location field is shown on the settings page. This points to a problem with the used browser key. The only way to find out the exact problem is by checking the console output in your browser.
You can access the browser console in your favorite browser with F12.
Once you have opened the browser console, reload the page and check for any errors that are related to Google Maps. The error itself usually includes a link explaining the reason for the error and how to fix it.
Common API Errors
- API limit reached & For development purposes only
- You have exceeded your daily request quota for this API
- Incorrect IP for the server key referrer
- API keys with referer restrictions cannot be used with this API
- This API project was not found. This API project may have been deleted
- The provided API key is invalid ( REQUEST_DENIED / InvalidKeyMapError )
- The provided API key is expired
- This API project is not authorized to use this API
- Missing Browser API key ( NoApiKeys )
API limit reached & For development purposes only
If you get an ‘API limit reached’ error when you load the page, or it shows up in the browser console, then you probably didn’t enable billing in the Google Developers Console. This is required by Google as of July 16, 2018.
Not having enabled billing also results in a ‘For development purposes only’ text showing up on Google Maps itself.
If you have enabled billing but keep seeing this error, then you can contact Google Billing and Payments Support.
You have exceeded your daily request quota for this API
This error shows up when there’s either no billing account linked to the project that holds the API keys in the Google Developers Console, or there’s a problem with the billing account itself.
If you don’t have a billing account, then you can create one by following this link.
If you have enabled billing but keep seeing this error, then you can contact Google Billing and Payments Support
You can read more about the Google Maps API price changes here.
Incorrect IP for the server key referrer
If you have set the incorrect IP for the server key referrer, then it will say so when you try to create a new location.
The IP it expects for the referrer is included in the returned error. In the above example the 110.168.82.226 is the value that should have been used for the server key referrer. The IP shown on your site will be different.
API keys with referer restrictions cannot be used with this API
When you set the referrer for the server key to the domain name instead of the IP address, then it will show this message.
To fix this change the restriction from ‘HTTP referrers’ to ‘IP Address’ for the server key.
This API project was not found. This API project may have been deleted
This shows up when the project the API keys belonged to is no longer available in the Google Developers Console. To fix this create a new project and use the provided keys instead.
The provided API key is invalid
You can fix this by making sure you have correctly copied the API keys from the Google Develops Console to the API key fields on the settings page.
The provided API key is expired
This error can show up when the created API key hasn’t been completely processed by Google. The error will often go away by waiting a few minutes before saving it again on the settings page.
This API project is not authorized to use this API
This error means that API restrictions are set in the Google Developers Console for the used API keys.
You can check this by going to the Google Developers Console, click on ‘Credentials’ on the left hand side and then click on the API keys.
Look for the ‘API restrictions’ section and make sure ‘Don’t restrict key’ is selected.
If they are set, then click on the ‘API restrictions’ tab underneath it and remove the set restrictions. The API’s that should not have restrictions set on them are listed here.
Missing Browser API Key ( NoApiKeys )
The NoApiKeys error shows up in the browser console when no browser key is set on the settings page, or there’s code active on your server that removes parameters from the loaded JavaScripts.
If no browser key is set, then this section describes how to generate one.
You can check if the key parameter is missing from the Google Maps script by opening the HTML source on the store locator page ( CTRL + U ) and search for ‘https://maps.google.com/maps/api/js’ to see if key=xxxx is included. If this is not the case, then first look for any security / optimization plugins that are active on your server.
If this is the case, then look for an option that might be responsible for the removal of script parameters and disable it, or try to disable all plugins just to see if a plugin is causing this issue in the first place. If not, then for a second switch back to a default WP theme to see if there’s code in your theme that’s responsible for removing the ‘key=’ parameter.
If it’s not a plugin / theme issue, then it’s likely a script from your host that removed it. The only way to confirm, and solve this is by contacting support from your host and ask them about it.