> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GPS & geofencing

> Restrict or personalize QR code access based on visitor location.

## What geofencing does

Geofencing restricts a QR code's content to visitors scanning from within a radius around a location you choose. Visitors outside that radius — or anyone who declines to share their location — see a fallback instead: either a custom message, or a redirect to a different URL.

<Note>
  Live UI wording: the row is labeled **Geo-fencing**, with helper text **"Restrict content to users scanning within a specific location area."** It lives under the **Security & Access** section of a QR code's Settings tab, not Targeting & Lifecycle — it's grouped with Password protection and Age restriction rather than with QR scheduling and Scan limit.
</Note>

<Tip>
  Geofencing requires the visitor's browser to grant location permission. If permission is denied, the same fallback shown for out-of-range visitors is used.
</Tip>

## Setting up a geofence

<Steps>
  <Step title="Open the QR code's Settings tab">
    Open the QR code and go to **Settings**. Under **Security & Access**, select **Geo-fencing** to expand the section.
  </Step>

  <Step title="Open the location picker">
    Select **Configure location** to open the **Set Location** modal.
  </Step>

  <Step title="Search for a location">
    Type a place name into **Search Location** and select **Search** — or select the locate-me icon next to it to use your current location. The result repositions a pin on an embedded OpenStreetMap view.

    <Warning>
      Typing a place name alone doesn't set the location — the map only updates once you select **Search** (or use the locate-me button). Filling the text field and closing the modal without searching won't save a location.
    </Warning>
  </Step>

  <Step title="Set the range">
    Enter a numeric value in **Range** and choose a unit: **Feet (ft)**, **Meters (m)**, **Kilometers (km)**, or **Miles (mi)**. This defines the radius around the pinned location that counts as "in range."
  </Step>

  <Step title="Choose the fallback action">
    Under **Fallback Action**, choose what happens for visitors who deny location permission or scan from outside the range:

    <Tabs>
      <Tab title="Show a message">
        The default option. Enter text in **Display Text** (up to 500 characters, with a live character counter) — this is shown to out-of-range visitors instead of the QR code's normal content. The built-in default is "This QR Code is location-restricted."
      </Tab>

      <Tab title="Redirect to a fallback URL">
        Selecting this swaps the **Display Text** field for a **Fallback URL** field. Out-of-range visitors are redirected there instead of seeing a message.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Save">
    Select **Save**. The **Geo-fencing** row switches to **On**, and the **Configure location** button updates to show the place name you set (for example, "Configure · Golden Gate Bridge").

    <Frame caption="Set Location modal with a searched location, a 750-foot range, and a custom fallback message configured">
      <img src="https://mintcdn.com/scanova-api/q8t3kzcRTgAP7jV0/images/v2/qr-codes/manage/gps-geofencing/set-location-configured.png?fit=max&auto=format&n=q8t3kzcRTgAP7jV0&q=85&s=7c39b1566884a4bf71775f9668555c15" alt="Set Location modal showing Golden Gate Bridge searched on the map, a range of 750 feet, Fallback Action set to Show a message, and Display Text reading 'This offer is only available near the Golden Gate Bridge.'" width="672" height="810" data-path="images/v2/qr-codes/manage/gps-geofencing/set-location-configured.png" />
    </Frame>
  </Step>
</Steps>

## Editing a geofence

Reopen **Configure location** at any time to search a new location, change the range or unit, or switch the fallback action between a message and a redirect URL. Turning off the **Geo-fencing** toggle on the Settings tab disables the restriction without discarding the location, range, or fallback you configured — turning it back on restores the same setup.

## Related

* [QR code scheduling](/qr-codes/manage/scheduling) — another Settings-tab restriction, gated by time instead of location.
* [Conditional redirection](/qr-codes/manage/conditional-redirection) — routes by country/device/OS/language rather than a location radius, and lives in the URL field instead of Settings.
