# Audience segments: onsite, offsite, and offline signals

Audience segments are cohorts [Maya](https://begenuin.com/developers/get-started/any-business/supervised-intelligence-what-it-does-and-where-to-start#maya-genuin-s-orchestrator) builds from what viewers watch and do onsite, what they do on your offsite tags, and offline signals you supply (purchases, loyalty, store visits), joined through the ID graph under your agreement and the viewer's consent. Reading time about 5 minutes.

## Signal sources

| Source | Examples | Requires |
| --- | --- | --- |
| Onsite | Groups watched, completion, follows, posts, products viewed | Nothing beyond the embed |
| Offsite | Offsite tag views and clicks, partner placement views | Offsite tags (see [Offsite: generate IAB-standard tags for your media plan](https://begenuin.com/developers/get-started/any-business/offsite-generate-iab-standard-tags-for-your-media-plan)) or distribution (see [Network distribution: place your content in partner inventory](https://begenuin.com/developers/get-started/any-business/network-distribution-place-your-content-in-partner-inventory)) |
| Offline | Purchase files, loyalty tiers, store visits, CRM attributes | Commerce or retail agreement (see [Choose your monetization agreement](https://begenuin.com/developers/get-started/any-business/choose-monetization-agreement)), ID graph (see [Unified identity: auto login, SSO, and the ID graph](https://begenuin.com/developers/get-started/any-business/unified-identity-auto-login-sso-and-the-id-graph)) |
| Context | IP-level geography, device, time, weather, local events | Nothing |

## Building a segment

1. In Brand Control Center (BCC) open **Audiences → Segments** and choose **Create**.
2. Combine conditions across sources ("watched the trail-running group twice in 30 days and bought in the shoes category in 90 days").
3. Choose uses: Maya ranking (see [Personalization and relevance: how Maya ranks every feed](https://begenuin.com/developers/get-started/any-business/personalization-and-relevance-how-maya-ranks-every-feed)), Paid Partner targeting (see [Paid Partner Posts and Paid Partner Takeovers](https://begenuin.com/developers/get-started/any-business/paid-partner-posts-and-paid-partner-takeovers)), audience extension on offsite inventory (see [Programmatic: Genuin Ad Server or your partner ad server](https://begenuin.com/developers/get-started/any-business/programmatic-genuin-ad-server-or-your-partner-ad-server)), package definition (see [Packages: sell outcomes to brands and demand partners](https://begenuin.com/developers/get-started/any-business/packages-sell-outcomes-to-brands-and-demand-partners)), export to your CDP (see [Receive engagement events in your own analytics](https://begenuin.com/developers/get-started/any-business/receive-engagement-events-in-your-own-analytics)).
4. Save. Size and overlap with other segments appear immediately; segments refresh continuously.

## Privacy

Segments contain cohort membership, never identifiers. Partners and buyers see sizes and names, never members. Consent state is honored per viewer and per purpose (see [Privacy and VPPA: the two-channel data flow](https://begenuin.com/developers/get-started/any-business/privacy-and-vppa-the-two-channel-data-flow)).

## How it runs

These reports are reviewed on a cadence and the three recommended changes are brought to you; the ones you approve are applied. Any question about the numbers can be asked in plain language from the report.

**Support.** Help is available 24/7 from Brand Control Center and from every page of these docs. Ask in plain language; when a person is needed, an account manager, developer, or Ops engineer joins the same thread and stays on it until it is resolved. Every Business Account owner has this on every plan (see [24/7 Octo support: how Octo brings in account managers, developers, and Ops](https://begenuin.com/developers/get-started/any-business/24-7-octo-support-how-octo-brings-in-account-managers-developers-and-ops)).

## API & SDK

Access: the calls in the table are the proposed Business Account API (see [Business Account API: provisioning, OAuth, and the resource map](https://begenuin.com/developers/get-started/any-business/business-account-api-provisioning-oauth-and-the-resource-map)), authenticated with a key scoped to the account and a role or an OAuth client acting for it; every confirmation in this article becomes a proposal you can approve by API (`POST /proposals/{proposalId}:approve`). Live today, the server API under `/api/thirdparty` authenticates with a `gn-access-token` (see [Generate an access token](https://begenuin.com/developers/developer-resources/api/generate-access-token-using-authentication-api)), and [Live API today and the Business Account API roadmap](https://begenuin.com/developers/developer-resources/guides/live-api-today-and-the-business-account-api-roadmap) maps what is live to what is proposed.

| Call | Purpose |
| --- | --- |
| GET /brands/{brandId}/segments | Audience segments from onsite, offsite, and offline signals |
| POST /brands/{brandId}/segments | Define a segment from signals and cohorts |
| PUT /brands/{brandId}/identity | ID graph settings: hashed identifiers, consent, channels |

```js
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.segments.list(brandId);
await genuin.segments.create(brandId, { rules });
await genuin.identity.update(brandId, { hashedEmail: true });
```

Live today: [Receive engagement events in your own analytics](https://begenuin.com/developers/developer-resources/sdk/receive-engagement-events-in-your-own-analytics) · [Query Genuin event data in BigQuery](https://begenuin.com/developers/developer-resources/api/integrate-google-bigquery-with-brand-control-center) · [Go live with monetization in your feeds, apps, and partner pages](https://begenuin.com/developers/developer-resources/sdk/go-live-with-monetization-in-your-feeds-apps-and-partner-pages).

SDKs: Web SDK (see [Embed the Genuin Web SDK on your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-embed-and-configure-the-genuin-web-sdk-on-your-website)), iOS SDK (see [Integrate the Genuin iOS SDK](https://begenuin.com/developers/developer-resources/sdk/developer/genuin-sdk/native-compatibility/ios/how-to-integrate-and-power-your-brand-community-in-ios-apps)), Android SDK (see [Integrate the Genuin Android SDK](https://begenuin.com/developers/developer-resources/sdk/how-to-integrate-and-power-your-brand-community-in-android-apps)), React Native (see [Integrate the Genuin SDK with React Native apps](https://begenuin.com/developers/developer-resources/sdk/how-do-you-integrate-the-genuin-react-native-sdk-into-your-application)), and Flutter (see [Integrate the Genuin SDK with Flutter apps](https://begenuin.com/developers/developer-resources/sdk/how-do-you-integrate-the-genuin-flutter-sdk-into-your-application)) render Genuin and sign members in; the Node (`@genuin/sdk`) and Python (`genuin`) server SDKs are proposed with [Business Account API: provisioning, OAuth, and the resource map](https://begenuin.com/developers/get-started/any-business/business-account-api-provisioning-oauth-and-the-resource-map).
