Configure Google Maps
The Google Maps provider renders MyListing maps and uses Google’s Places library to suggest locations. MyListing can use either the existing Legacy integration or Places API (New) for those Location inputs. It also calls the Geocoding API when it must convert an address or coordinates without a selected suggestion.
Google Maps Platform is a metered third-party service. A Cloud project and active billing account are required; free monthly usage thresholds and prices depend on the API and can change. Set budgets and quota alerts before production use.
Create and restrict the key
Section titled “Create and restrict the key”- Open the Google Maps Platform console, then create or select the project that will own this site’s usage.
- Attach an active billing account.
- Enable Maps JavaScript API, Places API, and Geocoding API in that project. Also enable Places API (New) if MyListing will use the New mode. Keep Places API enabled if Legacy mode or a rollback path is required.
- Open APIs & Services → Credentials, choose Create credentials → API key, and give the key a recognizable name.
- Under API restrictions, allow every API used by the selected mode, including Places API (New) when New is selected.
- For ordinary browser use, set Application restrictions to Websites and add every production and staging origin that loads a map, including the actual apex,
www, and subdomain variants. - Save the key and allow the restriction change time to propagate.
MyListing stores one Google key and sends it to the browser for Maps JavaScript/Places requests. It can also use that same value for server-side Geocoding API requests during address-only saves or imports. Google recommends website restrictions for browser keys and IP restrictions for server web-service keys, but one key cannot carry both application-restriction types.
Add the key to MyListing
Section titled “Add the key to MyListing”- Go to Theme Tools → Map Services.
- Under Provider, select Google Maps.
- Under Google Places API, choose Legacy (existing integration) or New. Legacy is the default for existing and missing settings; New is enabled only when selected explicitly.
- Paste the key into Google Maps API Key.
- Set Language or leave its default browser behavior.
- Set Autocomplete returns results for. The default is Geocode; alternatives are Address, Establishment, Regions, and Cities.
- Optionally limit Autocomplete returns results in to one or more countries.
- Optionally add Custom Map Skins with a label and Google Maps Styling Wizard JSON.
- Select Save settings.
The same Google Places API selector appears when Provider is the free-map option and Geocoding Provider is Google Maps. It is hidden for Mapbox and Nominatim.
Custom skins become choices in listing-type map editors alongside MyListing’s built-in Google skins. A skin changes presentation, not geocoding results or stored coordinates.
Test all three paths: a Location field in front-end listing submission, a published listing’s interactive map, and the Explore map. Also test a server-side import if the site imports address text without coordinates.
What the Places API mode changes
Section titled “What the Places API mode changes”The Google Places API setting applies only to Google-backed Location inputs, including listing-location fields and Explore location search. It controls the suggestions shown while a user types and the formatted address and coordinates retrieved after a selection. It does not change the map renderer, tiles, markers, clusters, proximity calculations, static maps, stored location schema, or server-side import geocoding.
In New mode, MyListing uses Google’s Place Autocomplete Data API with a session token and requests only formattedAddress and location for the selected suggestion. The ordinary forward/reverse geocoder remains the Geocoding API. Only when a reverse Geocoding API request returns no address can the Location input use Places API (New) Nearby Search as a one-result fallback.
Existing installations remain on Legacy (existing integration) until an administrator selects New. New mode does not silently fall back to Legacy if the required API, key permission, or browser export is unavailable. You can explicitly switch back to Legacy without rewriting the saved key, language, countries, result type, or map skins, provided the project can still use the legacy Places service.
The existing result filters are retained, with these New-mode details:
- Geocode, Establishment, Regions, and Cities map to their corresponding New autocomplete primary-type restriction.
- Address maps to street address, route, intersection, premise, and subpremise, which uses the New API’s five-type limit.
- Country restrictions are normalized to two-letter codes and New mode accepts at most 15 distinct countries. Select fewer countries if suggestions report an error.
Google placed the old Places integration in Legacy status. New Google Cloud projects that cannot activate Legacy should enable Places API (New) and select New in MyListing instead of treating LegacyApiNotActivatedMapError as a harmless warning.
Troubleshoot Google Maps
Section titled “Troubleshoot Google Maps”- Blank or “For development purposes only” map: confirm billing, Maps JavaScript API, the API key, and the current website restriction.
- Map loads but Legacy suggestions do not: confirm Places API is enabled and check for
LegacyApiNotActivatedMapError,ApiNotActivatedMapError, or a referrer error in the browser console. - New suggestions do not appear: confirm Places API (New) is enabled, included in the key’s API restrictions, and that no more than 15 countries are selected. New mode does not retry through Legacy automatically.
- Suggestions work but an import cannot geocode: the website application restriction is probably blocking the server-side Geocoding API call. Review the restricted-key warning above.
- Only the wrong country or result type appears: recheck Autocomplete returns results for and Autocomplete returns results in under Theme Tools → Map Services.
- Usage stopped unexpectedly: inspect quotas, billing status, credentials usage, and budget alerts in the same Cloud project.
- A custom skin is absent: give it a non-empty label and valid JSON, save Map Services, and reopen the listing-type map setting.
Google’s Place Autocomplete Data API guide, Places setup guide, Maps JavaScript troubleshooting guide, API security guidance, pricing reference, and legacy-services policy are authoritative for platform behavior, billing, errors, and lifecycle status.
Problems that began only after upgrading from a MyListing version older than 2.9 may require the locations and work-hours migration.
Next: Configure Mapbox →
