# Ad tag reference: VAST, IAB sizes, and macros

Offsite tags and ad server tags use standard IAB formats so any DSP, SSP, or ad server can run them.

## Formats

| Format | Use | Notes |
| --- | --- | --- |
| VAST 4.2 | Video slots, CTV | Includes AdVerifications for viewability |
| JavaScript tag | Display slots | Renders the Genuin player in an iframe-safe wrapper |
| OpenRTB bid request fields | Programmatic | site.content.cat, site.content.context, brand safety profile in ext.genuin.bsp |

## Macros

| Macro | Meaning |
| --- | --- |
| {CLICK_URL} | Buyer's click tracker |
| {CACHEBUSTER} | Random number |
| {GDPR}, {GDPR_CONSENT}, {US_PRIVACY}, {GPP} | Consent strings |
| {PLACEMENT_ID} | Buyer's placement identifier |
| {DEVICE_ID} | Only when consent allows |

**Sizes** – all IAB standard sizes plus vertical video 9:16; see [Player card sizes and IAB footprint spec](https://begenuin.com/developers/get-started/any-business/player-card-sizes-and-iab-footprint-spec) for the card footprint rule.

## How it runs

None of this has to be implemented by hand: the snippets, keys, tags, and calls are generated for your stack and opened as changes in your repository or CMS where connected, for your Developer to approve.

**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 |
| --- | --- |
| POST /brands/{brandId}/tags | Generate an offsite tag: VAST, JavaScript display, dynamic feed, audience extension |
| GET /tags/{tagId} | Tag URL, macros, consent passthrough, and creative preview |

```js
// proposed server SDK (Business Account API)
import { Genuin } from '@genuin/sdk';
const genuin = new Genuin({ apiKey: process.env.GENUIN_KEY });
await genuin.tags.create(brandId, { kind: 'vast', feedId, sizes });
await genuin.tags.get(tagId);
```

Live today: [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) · [Receive engagement events in your own analytics](https://begenuin.com/developers/developer-resources/sdk/receive-engagement-events-in-your-own-analytics).

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).
