# Add geo-personalization

> Make user location details available to Netlify edge workers with a Uniform integration.

Source: https://docs.uniform.app/docs/integrations/cdn/netlify/add-geo-personalization

Netlify makes user location details available to Netlify
Edge Workers. Uniform enables you to use these details to
configure personalization instructions.

> **Tip:**
>
> For more information on this topic, see the Netlify documentation
> for the `geo` property on the [Netlify Context object](https://docs.netlify.com/netlify-labs/experimental-features/edge-functions/api/#netlify-specific-context-object).

## Add quirk definitions

User location details are associated with a specific visitor.
In Uniform, [quirks](https://docs.uniform.app/docs/guides/classification/quirks)
give you a way to associate any information you want with a
visitor. Quirks can then be used as conditions in personalization
instructions.

Before you can configure personalization instructions that use
user location and device details, quirks must be defined.
The Netlify connector handles this for you.

> **Tip:**
>
> For instructions on how to install the Netlify integration, see the
> section on how to include [Netlify build status](https://docs.uniform.app/docs/integrations/cdn/netlify/build-status)
> in your Uniform project.

## Identify details to include

When the Netlify integration is installed, quirks are added to your
Uniform project. But just because a quirk is defined doesn't mean
the value will be populated for your visitors. Values for the quirks
defined by the Netlify integration are available to Netlify Edge
Functions, but you must add some logic to your function to select
the values you want to use.

The Netlify Edge Function uses the [Netlify proxy edge handler](https://sdk.uniform.app/context-edge-netlify.createuniformedgehandler)
function to run the personalization instructions. When you call
this function, you can specify the user location and device
details you want to make available as quirks.

The following code sample demonstrates how to do this:

```js
import {
  createEdgeContext,
  createUniformEdgeHandler,
  buildNetlifyQuirks,
} from "../../lib/uniform/index.deno.js";
import manifest from "../../contextManifest.json" assert { type: "json" };
const IGNORED_PATHS = /\/.*\.(ico|png|jpg|jpeg|svg|css|js|json)(?:\?.*|$)$/g;
...
  const { processed, response } = await handler({
    context,
    request,
    response: originResponse,
    quirks: buildNetlifyQuirks(netlifyContext),
  });
...
```

> **Tip:**
>
> For more information on the quirks that are available, see the
> [package reference](https://sdk.uniform.app/context-edge-netlify.netlifyquirksconfig)
> for the Netlify integration.

## Next steps

Now you can create [signals](https://docs.uniform.app/docs/guides/classification/signals) using the quirks you added.

![](https://docs.uniform.app/images/integrations/cdn/netlify/personalization/configure-signal.png)
