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 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:

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

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



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, benath "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 the Geocoding API and setting restrictions.


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). 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 that into your Google Developers account.


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


Most clients will only need to paste the Map JavaScript API into the field as in the example above. Note that, for clients that use Google Maps, and also use Bullseye's XML upload and have set restrictions,  you will need to create a separate API key in Google for your Geocoding API.


This is because when you set a restriction on an API key, Google only allows one type of restriction (such as http).  Although Google will allow you to apply both http and ip address based restrictions, only one will work.  Because our XML upload is based on IP address, you will need to give explicit IP address access on another API key in the same project in order to restrict access from both the Bullseye domain and IP address. Please allow requests from the following IP address. 146.20.85.39.


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.