We have provided condensed instructions here to make implementation of Google Maps easy with Bullseye. You will need to have a Google account (gmail account) before you create your Developer's account which is necessary to obtain the Key.  These instructions assume you do not have a developer's account created yet, and that you are using a standard Bullseye interface. Google also provides instructions on how to use their API Key:  https://developers.google.com/maps/documentation/embed/get-api-key#key-restrictions


Make sure that you also enter your billing information into your Google account. You will also need to upgrade the account from a trial account to a paid account. You may upgrade in your Google Cloud Platform Console by clicking on the Upgrade button on the top of the page.  If you don't see upgrade, click on Free trial status and Upgrade will appear on the upper right.  


You will not be billed unless you exceed the quota for the the Javascript API or Geocoding API. (At time of writing, the quota is 28,000 dynamic maps per month for the Javascript API and 40,000 geocodes per month for Geocoding your locations).


See these articles for Billing/Quota information and upgrading your account:

https://developers.google.com/maps/documentation/javascript/usage-and-billing

https://developers.google.com/maps/documentation/geocoding/usage-and-billing

https://cloud.google.com/free/docs/gcp-free-tier#how-to-upgrade 






To use your own Google Maps API key with Bullseye, you must create the key through a Google developers account and enable two specific APIs:

  • Google Maps JavaScript API 
  • Google Maps Geocoding API

Follow these steps to complete this process:


1. Log in to the Google APIs manager


Go to: https://console.developers.google.com/apis 


Log in with a valid Google account 


(You may be asked to accept updated terms of service).


2. Create a project 


Select "Create project" as per the screenshot: 



You will see an option to select or create as per the image below, select "create".



You will see a page that has your project name and organization.  You may also see a "location" heading.



Project Name: You may keep the default name or change as needed.

Organization: This will be based upon the domain you set up with your Google account.

Location: If your organization has a folder set up already, you can use the default folder that is supplied in the field. The location may not be included.


Select "create".


3. Create Credentials (API Key) and Enable the Map JavaScript API and Geocoding API. 


The next step will be to create your credentials, and create access to the Map JavaScript API which allows you to generate a map for your Bullseye interface, and access to Geocoding API which allow you to get lat/long coordinates for your locations to plot on the map.


After you select "create" you may be taken directly to the API & Services page which lets you select the credentials link, or you may be taken to the dashboard.  The dashboard looks like this:



 

Under "Getting Started" select "Enable APIs and get credentials like keys.


You will be taken to the aforementioned API & Services page:


Select "credentials" on the left hand side and next to "create credentials" in the middle of the page (circled above) and select the API key option from the drop down menu.


You will see the following:



Select "Restrict Key." You'll see the following:



For Now, Select "Save." You can add restrictions later on if necessary (see the end of this article).  After you select "Save" You'll see the screen below:



We recommend that you copy the key with your mouse, and paste it somewhere.  You will need to paste this key into the Bullseye admin later.  After you have done that, select "Dashboard" as in the image above. You'll see the following:



Select "View All" on the right.


You'll see the following:



Select "Maps JavaScript API."  This is the API that will allow you to use Google Maps for the search results that are returned in your Bullseye search.  After you select that, you'll see the following:



Select "Enable." You should see the following:



Now we need to enable the Geocoding API.  This API allows you to assign lat/long coordinates to your locations so they can be used on the Google Map.  Select "APIs" as in the image above.  You will see the following:




Select Geocoding API which is under Unused APIs (make sure you don't select Geolocation API by mistake). You will see the following:



Select "Enable."


Note that the Geocoding API will use the same key as the Maps JavaScript API, so there is no need to copy the key again.  



4. Paste the Google API Key into your Bullseye Account


Login to Bullseye at https://app.bullseyelocations.com/Admin/login.aspx


Go to Settings>Set Up>Mapping on the top right.  You will see the following:




 

1. Select the Google checkbox on the top left, beneath "Use Your Own Mapping."

2. Paste your Map JavaScript API key into the Mapping API Key field as in the example above.

3. Check the "Same as Mapping API Key" checkbox.* 

4. Select "Default Mapping Service."

5. Select Save.


*Notes on Setting Restrictions and Using the Geocoding API


If you want to set restrictions on accessing the Google API (i.e. make it so that only your account can access it to prevent possible unauthorized access/fraud) we recommend that you restrict http referrals (as displayed in step 3 above) on your Maps Javascript API key. For Facebook interfaces you'll need to enter "facebook.bullseyelocations.com"  For website interfaces you'll need to allow "www.bullseyelocations.com" and "(yourdomain).bullseyelocations.com" To obtain your domain, go to Settings>Account on the top right when you are logged in to your Bullseye account.  You will see the subdomain on the account page as in the example below: 




You can paste subdomain into your Google Developers account. 


If you are using a custom locator, allow requests from the domain of the custom locator, or if your url has a subdomain, you'll need to allow requests from the entire url.


We also suggest entering "app.bullseyelocations.com" to the search api key in order to view the maps inside the admin, when you view the details of each location, or need to make edits. 

Note: If you set up restrictions on the Maps Javascript API, you will also need to set up a separate Geocoding key.


Google allows the user to set which APIs a key can be used by, and to restrict access on either a URL/domain or an IP Address basis. Please note, the restriction is either/or - you cannot restrict a key on both a URL and an IP Address. A further limitation by Google is that any key restricted by a URL cannot be used with their Geocoding API. Only IP Addresses can be restricted when using the Geocoding Key.


If you will be uploading locations in a csv or xml file through your Bullseye account, or will be adding locations manually in your Bullseye account, and wish to use restrictions, you will need to add in the IP Address (146.20.85.38). 


If you will be sending XML files via FTP and wish to restrict the Geocoding API key, and are going to use restrictions, you will need to add the IP Address of our resource server (146.20.85.39) to that key's restriction list. 

If both are likely to be used, then include both in the restriction list.