# SDK reference

Add Genuin's social experiences to your site or app, on the web, iOS, Android, React Native, and Flutter. Pick your technology, then the experience: social standard sizes, custom sizes, IAB-compatible sizes, or a landing page you own and control.

## Pick your technology and experience

Choose what you build with and what you want to add. Each answer shows what you get, a first snippet, and the full guides.

### HTML & JavaScript: Social standard sizes

Add a feed, carousel, standard wall, or grid to any page. Create an embed or a placement in your Business Account under Grow > On Site, pick its layout and video aspect ratio, then add a container and the Web SDK script. One script runs every embed on the page.

Sizes: Feed, carousel, standard wall, and grid layouts, with video tiles at 9:16 by default, or 1:1, 2:3, 3:2, 16:9, 4:3, 3:4, 3:5, or 2:1

```html title="index.html"
<div id="gen-sdk" class="gen-sdk-class" style="width: 100%; height: 600px;"></div>
<script src="https://media.begenuin.com/sdk/2.0.6/gen_sdk.min.js"></script>
<script>
  window.genuin.init({
    embed_id: "{{EMBED_ID}}",
    api_key: "<<YOUR_API_KEY>>",
  });
</script>
```

- [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)
- [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website)
- [Deliver contextual feeds with page, user, and location context](https://begenuin.com/developers/developer-resources/sdk/contextual-embeds-how-they-work-and-how-to-configure-them)

### HTML & JavaScript: Custom sizes

Size the container, and the experience fills it. The Web SDK measures its container, so fixed pixels, percentages, and responsive CSS all work. Give the container a width and a height above zero; the size you set in your Business Account only fills in the snippet Business Account generates.

Sizes: Any width and height you give the container

```html title="index.html"
<div id="gen-sdk" class="gen-sdk-class genuin-box"
     data-embed-id="{{EMBED_ID}}" data-api-key="<<YOUR_API_KEY>>"></div>
<style>
  .genuin-box { width: 100%; height: 640px; }
  @media (min-width: 1024px) { .genuin-box { width: 720px; height: 480px; } }
</style>
```

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [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)

### HTML & JavaScript: IAB-compatible sizes

Run IAB-compatible units on your pages or on a partner's. In your Business Account, under Grow > Off Site > Ad Creatives, package up to ten approved posts as a 300×600 or 300×250 unit, then copy its code from View Code. Any web page or ad server can run it.

Sizes: 300×600 and 300×250

```html title="creative.html"
<script src="https://tpc.googlesyndication.com/pagead/gadgets/html5/api/exitapi.js"></script>
<div class="gen-ext" data-tag-id="{{AD_CREATIVE_ID}}" style="width: 300px; height: 600px;"></div>
<script src="<<GENUIN_OFFSITE_SCRIPT_URL>>" defer></script>
```

- [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)
- [Create an ad creative for partner pages](https://begenuin.com/developers/browse-by-products/offsite/how-brands-implement-iab-compatible-embeds-for-media-and-advertising-partners)

### React & Next.js: Social standard sizes

There's no separate React package: the same Web SDK runs in React and Next.js. Render the container in a component, load the script once, and call init after the component mounts; in Next.js, make it a client component. Give each embed its own id (gen-sdk-1, gen-sdk-2) when a page has more than one. The SDK has no per-embed teardown: genuin.destroy() removes every embed on the page.

Sizes: Feed, carousel, standard wall, and grid layouts, with video tiles at 9:16 by default, or 1:1, 2:3, 3:2, 16:9, 4:3, 3:4, 3:5, or 2:1

```tsx title="GenuinEmbed.tsx"
import { useEffect } from "react";

const SDK_URL = "https://media.begenuin.com/sdk/2.0.6/gen_sdk.min.js";

export function GenuinEmbed({ embedId }: { embedId: string }) {
  useEffect(() => {
    if (document.querySelector(`script[src="${SDK_URL}"]`)) {
      window.genuin?.init({});
      return;
    }
    const script = document.createElement("script");
    script.src = SDK_URL;
    script.async = true;
    script.onload = () => window.genuin?.init({});
    document.body.appendChild(script);
  }, []);

  return (
    <div id="gen-sdk" className="gen-sdk-class" data-embed-id={embedId}
         data-api-key="<<YOUR_API_KEY>>" style={{ width: "100%", height: 600 }} />
  );
}
```

- [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)
- [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)
- [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website)

### React & Next.js: Custom sizes

Size the container element, and the experience fills it. Set the width and height with style or a class, in pixels, percentages, or viewport units.

Sizes: Any width and height you give the container

```tsx title="GenuinEmbed.tsx"
<div id="gen-sdk" className="gen-sdk-class" data-embed-id={embedId}
     data-api-key="<<YOUR_API_KEY>>" style={{ width: "100%", height: "min(70vh, 640px)" }} />
```

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [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)

### React & Next.js: IAB-compatible sizes

Run IAB-compatible units on your pages or on a partner's. In your Business Account, under Grow > Off Site > Ad Creatives, package up to ten approved posts as a 300×600 or 300×250 unit, then copy its code from View Code. Any web page or ad server can run it. Put that code in the page's HTML rather than in a component that mounts later: the unit's script looks for its containers once, when it loads.

Sizes: 300×600 and 300×250

- [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)
- [Create an ad creative for partner pages](https://begenuin.com/developers/browse-by-products/offsite/how-brands-implement-iab-compatible-embeds-for-media-and-advertising-partners)

### Angular: Social standard sizes

Angular uses the same Web SDK. Render the container in the component's template, load the script in ngAfterViewInit, and call init once it loads. Don't rely on window.onGenuinReady: it only fires when the page first loads, before Angular adds the script.

Sizes: Feed, carousel, standard wall, and grid layouts, with video tiles at 9:16 by default, or 1:1, 2:3, 3:2, 16:9, 4:3, 3:4, 3:5, or 2:1

```typescript title="genuin-embed.component.ts"
import { AfterViewInit, Component, Input } from "@angular/core";

@Component({
  selector: "genuin-embed",
  standalone: true,
  template: `<div id="gen-sdk" class="gen-sdk-class" [attr.data-embed-id]="embedId"
    data-api-key="<<YOUR_API_KEY>>" style="width: 100%; height: 600px"></div>`,
})
export class GenuinEmbedComponent implements AfterViewInit {
  @Input({ required: true }) embedId!: string;

  ngAfterViewInit(): void {
    const src = "https://media.begenuin.com/sdk/2.0.6/gen_sdk.min.js";
    const genuin = () => (window as any).genuin;
    if (document.querySelector(`script[src="${src}"]`)) { genuin()?.init({}); return; }
    const script = document.createElement("script");
    script.src = src;
    script.async = true;
    script.onload = () => genuin()?.init({});
    document.body.appendChild(script);
  }
}
```

- [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)
- [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website)

### Angular: Custom sizes

Size the container in the template, and the experience fills it: pixels, percentages, or responsive CSS on the container all work.

Sizes: Any width and height you give the container

```html title="Template"
<div id="gen-sdk" class="gen-sdk-class" [attr.data-embed-id]="embedId"
     data-api-key="<<YOUR_API_KEY>>" style="width: 100%; height: 480px"></div>
```

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [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)

### Angular: IAB-compatible sizes

Run IAB-compatible units on your pages or on a partner's. In your Business Account, under Grow > Off Site > Ad Creatives, package up to ten approved posts as a 300×600 or 300×250 unit, then copy its code from View Code. Any web page or ad server can run it. Put that code in the page's HTML rather than in a component that renders later: the unit's script looks for its containers once, when it loads.

Sizes: 300×600 and 300×250

- [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)
- [Create an ad creative for partner pages](https://begenuin.com/developers/browse-by-products/offsite/how-brands-implement-iab-compatible-embeds-for-media-and-advertising-partners)

### HTML & JavaScript, React & Next.js, Angular: Landing page you own

Put your experiences on a landing page you own and control: a Generative Destination that Genuin builds from your groups, player types, and brand kit, on your own domain, such as video.yourbrand.com, or on your Genuin subdomain, such as yourbrand.begenuin.com, until you connect one. It reports as your own property on your grid.

- [Generative Destination on Your Domain](https://begenuin.com/developers/browse-by-products/offsite/generative-destination-on-your-domain)

### iOS: Social standard sizes

Add the Genuin iOS SDK with Swift Package Manager or CocoaPods (iOS 15 or later), initialize it at launch, then show an embed, a placement, a full-screen feed, or a standard wall in a container view you own. The layout and the tiles' aspect ratio come from the embed in your Business Account.

Sizes: Carousel, grid, full-screen feed, and standard wall, with the tile aspect ratio set in your Business Account

```swift title="EmbedViewController.swift"
import GenuinCore

let embedConfiguration = EmbedConfiguration()
embedConfiguration.isShowProfileEnabled = false
embedConfiguration.isDirectDeepLinkEnabled = false

GenuinSDK.shared.initializeEmbed(
    embedId: "{{EMBED_ID}}",
    uniqueId: "{{UNIQUE_ID}}",              // optional
    containerView: carouselContainer,       // a UIView with a fixed height
    viewConroller: self,                    // the API spells the label this way
    ssoToken: "{{SSO_TOKEN}}",              // optional: signs the viewer in
    params: ["name": "John Doe", "email": "john.doe@example.com", "nickname": "john"],
    contextualParams: ["page_context": "{{PAGE_CONTEXT}}", "geo": ["lat": 40.7128, "long": -74.0060]],
    embedConfiguration: embedConfiguration
)
```

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

### iOS: Custom sizes

The experience takes the size of the container view you pass it: give carousels and grids a height constraint, and give a full-screen feed or standard wall the whole screen. Tile spacing, insets, and corner radius are set in code, in points.

Sizes: Any container size

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [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)

### iOS: IAB-compatible sizes

Add the IAB Standard Size Experience SDK (the GenuinSDK and GenuinInStreamAds products of github.com/genuininc/ios_sdk) and place a view sized for the unit, with a tag ID from your Business Account.

Sizes: 320×50, 320×100, 300×250, 300×600, 320×480, and 300×250 collapsing to 300×50

```swift title="AdView.swift"
import SwiftUI
import GenuinInStreamAds
import Core

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Ad unit").font(.caption).foregroundStyle(.secondary)
            BGNavigationRoot {
                BG320x50AdView(tagID: "{{TAG_ID}}")
            }
        }
        .padding()
    }
}
```

- [Add IAB Standard Size Experiences to an iOS app](https://begenuin.com/developers/developer-resources/sdk/integrate-the-genuin-ad-sdk-for-ios)

### Android: Social standard sizes

Add the Genuin Android SDK from Maven Central, initialize it in your Application class, then show an embed, a placement, a full-screen feed, or a standard wall in a GenuinEmbedView. The layout and the tiles' aspect ratio come from the embed in your Business Account.

Sizes: Carousel, grid, full-screen feed, and standard wall, with the tile aspect ratio set in your Business Account

```kotlin title="EmbedActivity.kt"
val params = hashMapOf<String, Any>(              // optional: pre-fills sign-up for SSO users
  "name" to "John Doe",
  "email" to "john.doe@example.com",
  "nickname" to "john",
  "mobile" to "{{PHONE_NUMBER}}"
)
val contextualParams = hashMapOf<String, Any>(    // optional: tailors the feed to the screen and viewer
  "page_context" to "{{PAGE_CONTEXT}}",
  "geo" to JSONObject().put("lat", 40.7128).put("long", -74.0060).toString()
)

genuinEmbedView
  .setEmbedParams(
    embedId = "{{EMBED_ID}}",
    uniqueId = "{{UNIQUE_ID}}",               // optional
    interactionDeepLink = "{{DEEP_LINK}}",    // optional
    isDirectDeepLinkEnabled = false,
    isShowProfileEnabled = false
  )
  .setActivity(this)
  .setSSOToken("{{SSO_TOKEN}}")               // optional: signs the viewer in
  .setParams(params)
  .setContextualParams(contextualParams)
  .setInterTileSpacing(24)                    // pixels
  .setInsets(left = 24, top = 24, right = 24, bottom = 24)   // pixels
  .setTileCornerRadius(24)                    // pixels
  .load()
```

- [Integrate the Genuin Android SDK](https://begenuin.com/developers/developer-resources/sdk/how-to-integrate-and-power-your-brand-community-in-android-apps)

### Android: Custom sizes

GenuinEmbedView takes the size of its parent: give the parent a fixed height, because a wrap_content parent renders nothing. Set tile spacing, insets, and corner radius in XML (in dp) or in code (in pixels).

Sizes: Any parent size

```xml title="activity_embed.xml"
<LinearLayout
    android:id="@+id/llCarouselContainer"
    android:layout_width="match_parent"
    android:layout_height="300dp">
  <com.begenuin.core.ui.customview.embed.GenuinEmbedView
      android:id="@+id/genuinEmbedView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:interTileSpacing="12dp"
      app:leftInset="12dp"
      app:topInset="12dp"
      app:rightInset="12dp"
      app:bottomInset="12dp"
      app:tileCornerRadius="12dp" />
</LinearLayout>
```

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [Integrate the Genuin Android SDK](https://begenuin.com/developers/developer-resources/sdk/how-to-integrate-and-power-your-brand-community-in-android-apps)

### Android: IAB-compatible sizes

Add the IAB Standard Size Experience SDK from Maven Central and place a sized view with a tag ID from your Business Account, in Jetpack Compose or a View-based screen.

Sizes: 320×50, 320×100, 300×250, 300×600, 320×480, 300×250 collapsing to 300×50, 1280×720, and a landscape view that fills its box

```kotlin title="ArticleScreen.kt"
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.begenuin.feed.views.BG300x250AdView

@Composable
fun ArticleScreen() {
  Column {
    ArticleBody()
    BG300x250AdView(
      tagId = "{{TAG_ID}}",
      modifier = Modifier.fillMaxWidth(),
    )
  }
}
```

- [Add IAB Standard Size Experiences to an Android app](https://begenuin.com/developers/developer-resources/sdk/integrate-the-genuin-ad-sdk-for-android)

### React Native: Social standard sizes

Install genuin-react-native, configure the Android and iOS projects, and render the Carousel, StandardWall, or Feed component with your embed ID. The layout and the tiles' aspect ratio come from the embed in your Business Account.

Sizes: Carousel or grid, standard wall, and full-screen feed

```tsx title="CarouselScreen.tsx"
import React, { useRef } from 'react';
import { Carousel, type PlayPauseRef } from 'genuin-react-native';

export default function CarouselScreen() {
  const carouselRef = useRef<PlayPauseRef>(null);
  return (
    <Carousel
      ref={carouselRef}
      style={{ height: 400, width: '100%' }}
      embedId="{{EMBED_ID}}"
      uniqueId="home-carousel"
      ssoToken="{{SSO_TOKEN}}"
      isShowProfileEnabled={false}
      isDirectDeepLinkEnabled={false}
    />
  );
}
```

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

### React Native: Custom sizes

Give every component a style with a height and a width; a component without a height renders nothing. Tile spacing, insets, and corner radius are props on Carousel.

Sizes: Any width and height you set in style

```tsx title="CarouselScreen.tsx"
<Carousel
  style={{ height: 320, width: '100%' }}
  embedId="{{EMBED_ID}}"
  interTileSpacing={12}
  tileCornerRadius={12}
/>
```

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [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)

### React Native: IAB-compatible sizes

Install genuin-react-native-ads-v3 and render GenuinAd with a tag ID from your Business Account and a format. It runs on Android only for now.

Sizes: 320×50, 320×100, 300×250, 300×600, 320×480, 300×250 collapsing to 300×50, 1280×720, and a landscape view that adapts to its parent (Android)

```tsx title="ArticleScreen.tsx"
import { GenuinAd, GenuinAdFormat, type GenuinAdEvent } from 'genuin-react-native-ads-v3';

export default function ArticleScreen() {
  const ready = useGenuinAds();
  return (
    <>
      <ArticleBody />
      {ready && (
        <GenuinAd
          tagId="{{TAG_ID}}"
          format={GenuinAdFormat.SIZE_300X250}
          onAdEvent={(event: GenuinAdEvent) => console.log(event)}
        />
      )}
    </>
  );
}
```

- [Add IAB Standard Size Experiences to a React Native app](https://begenuin.com/developers/developer-resources/sdk/integrate-ads-with-react-native-sdk)

### Flutter: Social standard sizes

Add genuin_sdk to pubspec.yaml, configure the Android and iOS hosts, initialize the SDK on each platform, and render the Carousel, Feed, or StandardWall widget. The layout and the tiles' aspect ratio come from the embed in your Business Account.

Sizes: Carousel, full-screen feed, and standard wall

```dart title="carousel_section.dart"
import 'package:flutter/material.dart';
import 'package:genuin_sdk/genuin_carousel_embed_view.dart';

class CarouselSection extends StatelessWidget {
  const CarouselSection({super.key});

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      height: 300,
      width: MediaQuery.of(context).size.width,
      child: const Carousel(
        embedId: '{{EMBED_ID}}',
        uniqueId: '{{UNIQUE_ID}}',
        ssoToken: '{{SSO_TOKEN}}', // optional: signs the viewer in
      ),
    );
  }
}
```

- [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)
- [Initialize the Genuin SDK and load a feed in Flutter](https://begenuin.com/developers/developer-resources/sdk/flutter-sdk-developer-reference-how-do-i-initialize-the-genuin-sdk-and-load-a-feed)

### Flutter: Custom sizes

Wrap the widget in a bounded parent such as SizedBox or Expanded; an unbounded Column throws during layout. Tile spacing and insets aren't configurable in Flutter yet.

Sizes: Any size its bounded parent gives it

- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls)
- [Initialize the Genuin SDK and load a feed in Flutter](https://begenuin.com/developers/developer-resources/sdk/flutter-sdk-developer-reference-how-do-i-initialize-the-genuin-sdk-and-load-a-feed)

### Flutter: IAB-compatible sizes

IAB-compatible sizes aren't available in Flutter yet. They're available on the web, iOS, Android, and React Native (Android).

Not available: 

### iOS, Android, React Native, Flutter: Landing page you own

A landing page is a web page, so there's nothing to install in the app: link to it from your app, and use the experiences above inside the app itself. [Generative Destination on Your Domain](https://begenuin.com/developers/developer-resources/sdk/generative-destination-on-your-domain) covers the landing page.

Not available: 

## Genuin Experiences

- [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): Render your brand, community, and group feeds on your own pages with Web SDK 2.0.6, from one script tag to several embeds, sign-in, page context, and events.
- [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website): Render a placement with Web SDK 2.0.6 so each page gets the videos its context calls for, in the layout you manage from your Business Account.
- [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): Add Genuin embeds, placements, single sign-on, deep links, and push notifications to an iOS app with SDK 2.1.5.
- [Integrate the Genuin Android SDK](https://begenuin.com/developers/developer-resources/sdk/how-to-integrate-and-power-your-brand-community-in-android-apps): Add Genuin embeds, placements, single sign-on, deep links, and push notifications to an Android app with SDK 2.1.5.
- [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): Add Genuin carousels, standard walls, full-screen feeds, single sign-on, deep links, and push notifications to a React Native app with genuin-react-native 3.0.3.
- [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): Add the genuin_sdk plugin to a Flutter project and configure the Android and iOS hosts it needs.
- [Initialize the Genuin SDK and load a feed in Flutter](https://begenuin.com/developers/developer-resources/sdk/flutter-sdk-developer-reference-how-do-i-initialize-the-genuin-sdk-and-load-a-feed): Initialize genuin_sdk on each platform, render carousel, feed, and standard wall embeds, and connect sign-in, deep links, and push notifications.

## IAB Standard Size Experience

- [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): Earn from your feeds, your app, and partner pages: let Genuin place sponsored and programmatic video in your feeds, show an IAB Standard Size Experience from a tag in your app, or run your posts on a partner page.
- [Create an ad creative for partner pages](https://begenuin.com/developers/browse-by-products/offsite/how-brands-implement-iab-compatible-embeds-for-media-and-advertising-partners): Package up to 10 approved posts as a 300×600 or 300×250 HTML5 ad unit with a call to action and tracking, then hand the code to a media partner or ad server.
- [Add IAB Standard Size Experiences to an iOS app](https://begenuin.com/developers/developer-resources/sdk/integrate-the-genuin-ad-sdk-for-ios): Show tag-driven IAB banner, medium rectangle, half-page, interstitial, and collapsible ads in an iOS app with the IAB Standard Size Experience SDK 0.0.5.
- [Add IAB Standard Size Experiences to an Android app](https://begenuin.com/developers/developer-resources/sdk/integrate-the-genuin-ad-sdk-for-android): Show tag-driven IAB ad slots in an Android app with the IAB Standard Size Experience SDK 0.v3.11.
- [Add IAB Standard Size Experiences to a React Native app](https://begenuin.com/developers/developer-resources/sdk/integrate-ads-with-react-native-sdk): Render Genuin IAB ad slots in a React Native Android app with genuin-react-native-ads-v3 1.4.0.

## Generative Landing Pages

- [Generative Destination on Your Domain](https://begenuin.com/developers/browse-by-products/offsite/generative-destination-on-your-domain): A brand-owned destination on your own domain, such as video.yourbrand.com, that Studio and Canvas, part of Supervised Intelligence, generate and keep fresh. Advertisers, partners, and your own brand safety lists can allowlist it as a known, verified domain.

## Works on every platform

- [Deliver contextual feeds with page, user, and location context](https://begenuin.com/developers/developer-resources/sdk/contextual-embeds-how-they-work-and-how-to-configure-them): Pass what a visitor is looking at, who they are, and where they are to an embed or a placement. Learn how Genuin turns those signals into a ranked feed.
- [Customize the Genuin video player](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-customize-the-genuin-video-player-controls): Set the size, tile layout, profile menu, onboarding prompts, and deep-link behaviour of Genuin carousels, standard walls, and full-screen feeds on every SDK.
- [Sign members out and handle expired sessions](https://begenuin.com/developers/developer-resources/sdk/sign-members-out-and-handle-expired-sessions): End a member's Genuin session when they sign out of your app, keep the SDK in step with your own sign-in state, and recover when a Genuin session expires.
- [Pause and resume Genuin feeds with your app lifecycle](https://begenuin.com/developers/developer-resources/sdk/pause-and-resume-genuin-feeds-with-your-app-lifecycle): Stop Genuin video when an embed scrolls away, your screen changes, or your app goes to the background, and start it again when the viewer comes back.
- [Handle Genuin deep links in your app](https://begenuin.com/developers/developer-resources/sdk/handle-genuin-deep-links-in-your-app): Open shared Genuin video, community, group, and profile links inside your app instead of the browser, on Android, iOS, React Native, Flutter, and the web.
- [Set up push notifications in the Genuin SDK](https://begenuin.com/developers/developer-resources/sdk/developer/genuin-sdk/creation-and-editing-tools/notification/push/how-do-push-notifications-work-with-the-genuin-sdk): Register device tokens with the Genuin SDK and open the right community, group, or post when a member taps a Genuin notification.
- [Camera and video creation in the Genuin SDK](https://begenuin.com/developers/developer-resources/sdk/how-does-a-brand-access-and-manage-camera-features-via-sdk): Record, import, edit, and post video from inside your app with the Genuin camera modules, and control who can create from your Business Account.
- [Request camera, microphone, and photo library permissions](https://begenuin.com/developers/developer-resources/sdk/request-camera-microphone-and-photo-library-permissions): Declare the access your Genuin features use, and let the SDK ask members at the moment they record, upload, or save.
- [Receive engagement events in your own analytics](https://begenuin.com/developers/developer-resources/sdk/receive-engagement-events-in-your-own-analytics): Capture what members watch and do inside Genuin views as events in your own analytics: live from the SDKs, and in batches to your warehouse.

## How it works

- [Choose how members sign in to the Genuin SDK](https://begenuin.com/developers/developer-resources/overview/user-authentication-mechanisms-in-genuin-sdk): Compare Genuin's built-in sign-in, single sign-on through your identity provider, and Auto Login with a token from your backend, and pick the one that fits your app.
- [How Auto Login works](https://begenuin.com/developers/developer-resources/overview/genuin-auto-login): Learn how the Genuin SDK turns a token from your backend into a signed-in member, from the first request to session refresh.
- [How contextual feeds choose videos](https://begenuin.com/developers/developer-resources/overview/how-do-i-configure-and-display-contextual-feeds-as-onsite-embeds): Learn how Genuin turns the context a page sends into the videos an embed or a placement shows, and how often that result changes.
- [In-app notifications in the Genuin SDK](https://begenuin.com/developers/developer-resources/overview/how-do-in-app-notifications-work-with-the-genuin-sdk): Learn where signed-in members see their Genuin notifications inside your app, and how the unread badge and read state work.
- [Search in the Genuin SDK](https://begenuin.com/developers/developer-resources/overview/developer/genuin-sdk/creation-and-editing-tools/search/what-are-the-advanced-search-capabilities-using-the-genuin-sdk): Learn what members can search for inside the Genuin SDK, where the search screen opens, and what your app needs for it to appear.
- [Edit videos in the Genuin SDK](https://begenuin.com/developers/developer-resources/overview/what-are-the-video-editing-tools-in-the-genuin-sdk): See which editing tools the Genuin camera gives members on each platform, what each tool does, and which effects come from your Business Account instead.
- [How the Genuin SDK places ads in a feed](https://begenuin.com/developers/browse-by-products/monetize/how-does-the-genuin-sdk-render-ads-and-deliver-the-consumer-experience): Learn how a Genuin feed turns a monetization preset into ad slots and in-stream breaks, which sources fill a slot, and what happens when none can.
