---
title: Setting up Google Places with Reactiv
description: "The Google Places integration powers address autocomplete in your Reactiv app.\nWhen a shopper enters an address — for example in Find in Store, or when editing a\nsaved address — Reactiv fetches address suggestions from Google on your behalf."
---

[Skip to content](https://info.reactiv.ai/reactiv-help-center/setting-up-the-google-places-integration-with-reactiv#main-content)

![logo-mono-light](https://info.reactiv.ai/hubfs/logo-mono-light.svg)

Open main navigation

Close main navigation

- [Contact us](https://info.reactiv.ai/reactiv-help-center/how-do-i-contact-customer-support-reactiv-support-center)

[Contact us](https://info.reactiv.ai/reactiv-help-center/how-do-i-contact-customer-support-reactiv-support-center?hsLang=en-ca)

 Answers, documented.

- There are no suggestions because the search field is empty.

1. [Reactiv Help Center](https://info.reactiv.ai/reactiv-help-center?hsLang=en-ca)
2. [Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca)
3. [Profile Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#profile-integrations)

September 13, 2026

# Setting up Google Places with Reactiv

## The Google Places integration powers address autocomplete in your Reactiv app. When a shopper enters an address — for example in Find in Store, or when editing a saved address — Reactiv fetches address suggestions from Google on your behalf.

You provide a Google Cloud API key, and Google bills your account for the usage. We recommend providing a **Google Places API (New)** key: Reactiv then uses the newer autocomplete flow, which relies on Google's [session-based pricing](https://developers.google.com/maps/documentation/places/web-service/session-pricing). Combined with how Reactiv makes requests — suggestions as the shopper types, then a single address lookup only when they pick a result — this keeps your Google usage costs down. This guide covers creating your keys in Google Cloud and entering them in your Reactiv dashboard.

---

### Prerequisites

Before you begin, make sure you have:

- **A Google Cloud project with billing enabled.** Google requires an active billing account to use the Places API.
- **Permission to create and restrict API keys** in that project.
- **Access to your Reactiv dashboard** with permission to manage integrations.

---

### Which Key Do I Need?

The Reactiv dashboard's **Google Places API** form has two key fields:

| **Field in the dashboard** | **Required?** | **What to provide** |
| --- | --- | --- |
| **Google Maps API Key** | Yes | A Google Cloud API key with the **(legacy) Places API** enabled. Despite the field's name, it's the Places API this key needs — not a separate Maps product. The form requires a value here. |
| **Google Places API (New) Key** | No (recommended) | A key enabled for the **Places API (New)**. Providing it turns on Reactiv's newer, more efficient autocomplete flow. |

The form **requires** the **Google Maps API Key** field, so you must enter a key there. To turn on the recommended flow, also provide a key enabled for the **Places API (New)** in the **Google Places API (New) Key** field. Google recommends a **separate API key for each API version**, so use one key per field rather than reusing a single key for both.

---

### Create Your API Keys

You create and restrict keys in the Google Cloud Console. Rather than reproduce every screen here, we link to Google's own up-to-date guides. Make sure billing is enabled on your Google Cloud project first.

- **Google Maps API Key (required).** If you already use Google Places on your store, enter your existing key here. Otherwise, create an API key in your Google Cloud project with the Places API enabled. See [Use API keys](https://developers.google.com/maps/documentation/places/web-service/get-api-key).
- **Google Places API (New) Key (recommended).** In the same project, enable the **Places API (New)**, create a second API key, and **restrict it to the Places API (New)**. See [Set up the Places API (New)](https://developers.google.com/maps/documentation/places/web-service/cloud-setup).

Restricting each key to only the API it needs is a security best practice — it limits what the key can do if it's ever exposed (see **Key Format & Security** below).

> 💡 **Migrating from the legacy Places API?** Google recommends keeping a separate key per API version rather than repurposing your existing one — see the [Migration overview](https://developers.google.com/maps/documentation/places/web-service/legacy/migrate-overview).

---

### Connect the Integration in Your Reactiv Dashboard

In your Reactiv dashboard, go to **Integrations**, select **Google Places**, and fill in the **Google Places API** form:

| **Field** | **Required** | **What to enter** |
| --- | --- | --- |
| **Google Maps API Key** | Yes | Your Google Cloud API key for the Places API. |
| **Google Places API (New) Key** | No (recommended) | Your **Places API (New)**-enabled key, to turn on the recommended flow. |

Then switch **Enabled** on and save.

---

### Key Format & Security

- **Format:** a valid key is made up of letters, digits, hyphens, and underscores, up to 40 characters. If you paste a value containing spaces or other characters, the dashboard rejects it with an "…please ensure your key is in the proper format" message — re-copy the key from Google Cloud with no extra characters.
- **Keep it secret:** treat the key like a password. Don't commit it to source control or share it, and rotate it in Google Cloud if you suspect it's exposed.
- **Restrict it:** restricting a key to only the API it needs limits which Google service it can call, which contains the impact if the key leaks. On its own, though, an API restriction won't stop a leaked key from being used against that same API — so keeping the key secret still matters.
- **Application restrictions don't apply here.** Google's browser (HTTP referrer) and mobile-app key restrictions are for keys used directly by a website or app. Reactiv calls Google **server-side** on your behalf, so those restrictions aren't applicable to this key. An IP-address restriction isn't available either — Reactiv doesn't publish stable egress IP addresses for merchants to allowlist. Keeping the key secret and restricting it to only the API it needs are your controls here.
- **Monitor usage.** Review the key's usage and set budget alerts in the Google Cloud Console to catch unexpected activity.

---

### Additional Notes & Troubleshooting

**"Invalid … please ensure your key is in the proper format" when saving.** The key contains characters outside letters, digits, hyphens, and underscores, or is longer than 40 characters — most often a stray space introduced during copy-paste. Re-copy the key exactly from Google Cloud and try again.

**Address autocomplete isn't using the newer flow.** The recommended flow only turns on when a key is present in the **Google Places API (New) Key** field. Add your Places API (New) key there and save.

**Requests are denied, or no suggestions appear.** Check the key that's actually in use, which depends on how you set the integration up:

- If you provided **only the Google Maps API Key**, autocomplete runs on the **(legacy) Places API** — confirm that key has the **Places API** enabled and that any restrictions on it allow that API.
- If you're using the recommended flow (a **Google Places API (New) Key** is set), confirm that key has the **Places API (New)** enabled and that its restrictions allow it.

A key restricted to a different Google API than the one it's serving will have its autocomplete requests rejected by Google.

**No results at all.** Confirm **billing is enabled** on the Google Cloud project — Google requires an active billing account for the Places API.

**Need help?** Contact Reactiv support and include the error message shown in the dashboard (it never contains your key) and, if suggestions aren't appearing, whether your key is enabled and restricted for the Places API (New).

- [Getting Started With Reactiv](https://info.reactiv.ai/reactiv-help-center/getting-started-with-reactiv?hsLang=en-ca)
- [Building Your App](https://info.reactiv.ai/reactiv-help-center/building-your-app?hsLang=en-ca#main-content)

    - [App Settings](https://info.reactiv.ai/reactiv-help-center/building-your-app?hsLang=en-ca#app-settings)
    - [Your Home Screen](https://info.reactiv.ai/reactiv-help-center/building-your-app?hsLang=en-ca#your-home-screen)
    - [Misc. App Building Blocks](https://info.reactiv.ai/reactiv-help-center/building-your-app?hsLang=en-ca#misc-app-building-blocks)
    - [Other Screens](https://info.reactiv.ai/reactiv-help-center/building-your-app?hsLang=en-ca#other-screens)
- [Publishing Your App](https://info.reactiv.ai/reactiv-help-center/publishing-your-app?hsLang=en-ca#main-content)

    - [iOS App](https://info.reactiv.ai/reactiv-help-center/publishing-your-app?hsLang=en-ca#ios-app)
- [Building Your Reactiv Clips](https://info.reactiv.ai/reactiv-help-center/building-your-reactiv-clips?hsLang=en-ca#main-content)

    - [Success with Reactiv Clips](https://info.reactiv.ai/reactiv-help-center/building-your-reactiv-clips?hsLang=en-ca#success-with-reactiv-clips)
    - [Customizing Your Reactiv Clips Experiences](https://info.reactiv.ai/reactiv-help-center/building-your-reactiv-clips?hsLang=en-ca#customizing-your-reactiv-clips-experiences)
    - [Initializing Your Reactiv Clips](https://info.reactiv.ai/reactiv-help-center/building-your-reactiv-clips?hsLang=en-ca#initializing-your-reactiv-clips)
    - [About Reactiv Clips](https://info.reactiv.ai/reactiv-help-center/building-your-reactiv-clips?hsLang=en-ca#about-reactiv-clips)
- [Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#main-content)

    - [Analytics & Push Notifications](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#analytics-push-notifications)
    - [App Install Attribution](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#app-install-attribution)
    - [Back in Stock Alerts](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#back-in-stock-alerts)
    - [Chat & Customer Support](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#chat-customer-support)
    - [Conversion Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#conversion-integrations)
    - [Discovery, Search & Personalization](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#discovery-search-personalization)
    - [Fraud Protection](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#fraud-protection)
    - [Loyalty](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#loyalty)
    - [Order Fulfillment](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#order-fulfillment)
    - [Product Recommendations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#product-recommendations)
    - [Order Tracking & Returns](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#order-tracking-returns)
    - [Product Bundles](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#product-bundles)
    - [Reviews Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#reviews-integrations)
    - [Subscriptions](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#subscriptions)
    - [Video Shopping](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#video-shopping)
    - [Wishlist Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#wishlist-integrations)
    - [Profile Integrations](https://info.reactiv.ai/reactiv-help-center/integrations?hsLang=en-ca#profile-integrations)
- [Platform Highlights](https://info.reactiv.ai/reactiv-help-center/platform-highlights?hsLang=en-ca)
- [Success with Reactiv](https://info.reactiv.ai/reactiv-help-center/success-with-reactiv?hsLang=en-ca#main-content)

    - [Sending Push Notifications](https://info.reactiv.ai/reactiv-help-center/success-with-reactiv?hsLang=en-ca#sending-push-notifications)
- [Building with AI](https://info.reactiv.ai/reactiv-help-center/building-with-ai?hsLang=en-ca)
- [FAQ](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#main-content)

    - [Performance & Data](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#performance-data)
    - [General & Billing](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#general-billing)
    - [Getting Started](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#getting-started)
    - [Technical Issues & Troubleshooting](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#technical-issues-troubleshooting)
    - [App Management](https://info.reactiv.ai/reactiv-help-center/faq?hsLang=en-ca#app-management)
- [Research](https://info.reactiv.ai/reactiv-help-center/research?hsLang=en-ca)

[![logo-mono-dark](https://info.reactiv.ai/hubfs/logo-mono-dark.svg "logo-mono-dark")](http://reactiv.ai)

<https://www.linkedin.com/company/reactivapp/>

Copyright © 2026, Reactiv