<br />

> [!NOTE]
> **Note:** Facebook Audience Network is now Meta Audience Network. See [Meta's
> announcement](https://about.fb.com/news/2021/10/facebook-company-is-now-meta/) for more information.

This guide shows you how to use Google Mobile Ads SDK for React Native to load and display
ads from Meta Audience Network using
[mediation](https://developers.google.com/admob/react-native/mediation.md.txt), covering bidding
integrations. It covers how to add
Meta Audience Network to an ad unit's
mediation configuration, and how to integrate the
Meta Audience Network and
adapter into a React Native app.

## Supported integrations and ad formats

The AdMob mediation adapter for
Meta Audience Network has the following
capabilities:

| Integration ||
|---|---|
| Bidding | Yes |
| Waterfall [^1^](https://developers.google.com/admob/react-native/mediation/meta.md.txt#bidding-only-footnote) |   |
| App Open |   |
| Banner | Yes |
| Interstitial | Yes |
| Rewarded | Yes |
| Rewarded Interstitial | Yes |
| Native | Yes |

^1^
Meta Audience Network
became
[bidding only](https://www.facebook.com/audiencenetwork/resources/blog/audience-network-to-become-bidding-only-beginning-with-ios-in-2021)
in 2021.

## Prerequisites

Before you continue, verify the following:

- Latest Google Mobile Ads SDK for React Native version.
- React Native framework version 0.85.0 or later.
- To deploy on Android
  - Android API level 24 or later.
- To deploy on iOS
  - iOS deployment target of 15.0 or later.
  - The latest Meta Audience Network SDK usually requires the latest version of Xcode.
- A working React Native project configured with Google Mobile Ads SDK for React Native. See [Set up Google Mobile Ads SDK for React Native](https://developers.google.com/admob/react-native/quick-start.md.txt) for details.
  - Make sure you have downloaded and extracted the `adapters` folder from the [`gma-sdk-react-native`](https://drive.google.com/corp/drive/folders/1s5j2kx0yyYxLsdLNyBrhNJvkzmaUgOwD) folder. If you don't have the `adapters` folder, follow steps one, two, and three in [Install Google Mobile Ads SDK for React Native](https://developers.google.com/admob/react-native/quick-start.md.txt#install).
- [Set up AdMob Mediation](https://developers.google.com/admob/react-native/mediation.md.txt).

## Step 1: Set up configurations in Meta Audience Network UI

Sign up and log in to the [Business Manager Start
page](https://business.facebook.com/pub/start).

Click **Get started** then **Create new account**.

![](https://developers.google.com/static/admob/images/mediation/facebook/create_business.png)

Fill out the required fields with your business details and click **Next**.

![](https://developers.google.com/static/admob/images/mediation/facebook/business_details.png)

### Create a property

After you've filled out the required information, you're prompted to create a
property for your app. Enter the desired name of the property for your app and
click **Next**.

![](https://developers.google.com/static/admob/images/mediation/facebook/add_property.png)

Next, select your platform to monetize.

![](https://developers.google.com/static/admob/images/mediation/facebook/select_platform.png)

Add your app details and click **Next**.

### Android

![](https://developers.google.com/static/admob/images/mediation/facebook/app_details_Android.png)

### iOS

![](https://developers.google.com/static/admob/images/mediation/facebook/app_details_iOS.png)

Set up your payment account by clicking **Add a new payment account** . You will
be redirected to a new page to enter your payment information. Fill out the
necessary details, then click **Next**.

![](https://developers.google.com/static/admob/images/mediation/facebook/payment_account.png)

Select **Google AdMob** as the **Mediation platform** , then click
**Create placement**.

![](https://developers.google.com/static/admob/images/mediation/facebook/sdk_integration.png)

Select a format, fill out the form and click **Create**.

> [!NOTE]
> **Note:** If you use anchored adaptive banners or inline adaptive banners with a maximum height of 249 or lower, select the **Banner** format. If you integrate inline adaptive banners using a maximum height of 250 or higher, select the **Medium rectangle** format.

![](https://developers.google.com/static/admob/images/mediation/facebook/create_placement.png)

Take note of the **Placement ID**.

![](https://developers.google.com/static/admob/images/mediation/facebook/format_placement_id.png)

Click **Done**.

### Update your app-ads.txt


[Authorized Sellers for Apps app-ads.txt](https://iabtechlab.com/wp-content/uploads/2019/03/app-ads.txt-v1.0-final-.pdf) is an IAB Tech Lab initiative that helps ensure your
app ad inventory is only sold through channels you've identified as authorized. To prevent a
significant loss in ad revenue, you'll need to implement an `app-ads.txt` file.

If you haven't done so already,

[set up an app-ads.txt file for your app](https://support.google.com/admob/answer/9363762).

To implement `app-ads.txt` for Meta Audience Network, see
[Identifying Authorized Sellers with app-ads.txt](https://developers.facebook.com/docs/audience-network/optimization/best-practices/authorized-sellers-app-ads/).

### Turn on test mode

See the [Testing Audience Network Implementation
guide](https://developers.facebook.com/docs/audience-network/testing) for detailed
instructions on how to enable Meta Audience Network test ads.

## Step 2: Set up Meta Audience Network demand in AdMob UI

### Configure mediation settings for your ad unit

### Android

For instructions, see step 2 in the guide for

[Android](https://developers.google.com/admob/android/mediation/meta.md.txt#step-2).

### iOS

For instructions, see step 2 in the guide for

[iOS](https://developers.google.com/admob/ios/mediation/meta.md.txt#step-2).

### Add Meta to GDPR and US state regulations ad partners list

> [!IMPORTANT]
> **Important:** Verify that you have **Account Management** permission to complete the configuration for EU Consent and GDPR, US State regulations, and User Messaging Platform. See [Manage user access to your
> account](https://support.google.com/admob/answer/2784628) for details.

Follow the steps in

[European regulations settings](https://support.google.com/admob/answer/10113004#adding_ad_partners_to_published_gdpr_messages)

and

[US state regulations settings](https://support.google.com/admob/answer/14125907)


to add **Meta** to the
European and US state regulations ad partners list in the AdMob UI.


## Step 3: Import the Meta Audience Network SDK and adapter

> [!NOTE]
> **Note:** Failure to integrate the compatible Meta Audience Network and Google Mobile Ads SDK for React Native versions might lead to build issues.

In your project's root directory, install the Google Mobile Ads SDK for React Native
mediation adapter for Meta Audience Network.
Complete the following:

1. Copy the Google Mobile Ads SDK for React Native adapter tar file from the
   `gma-sdk-react-native/adapters/meta/`
   directory into your project's `local_packages/` directory. If you don't have
   the `adapters` folder, see [Prerequisites](https://developers.google.com/admob/react-native/mediation/meta.md.txt#prerequisites).

   ```bash
   mkdir -p local_packages
   cp EXTRACT_DIR/gma-sdk-react-native/adapters/meta/gma-mediation-meta-0.1.0.tgz local_packages/
   ```

   Replace <var class="readonly" translate="no">EXTRACT_DIR</var> with the path to the
   directory where you extracted the archive.
2. Install the adapter package using your preferred package manager:

   ### npm

   ```bash
   npm install ./local_packages/gma-mediation-meta-0.1.0.tgz
   ```

   ### yarn

   ```bash
   yarn add ./local_packages/gma-mediation-meta-0.1.0.tgz
   ```


## Step 4: Implement privacy settings on Meta Audience Network SDK

### EU consent and GDPR


To [comply with
the Google EU User Consent Policy](https://www.google.com/about/company/consentstaging.html), you must make certain disclosures to your
users in the European Economic Area (EEA), the UK, and Switzerland, and obtain
their consent for the use of cookies or other local storage where legally
required, and for the collection, sharing, and use of personal data for ads
personalization. This policy reflects the requirements of the EU ePrivacy
Directive and the General Data Protection Regulation (GDPR). You are
responsible for verifying that consent is propagated to each ad source in your
mediation chain.

Review Meta's [guidance](https://www.facebook.com/business/gdpr) for information about
GDPR and Meta advertising.

### US states privacy laws


[US states privacy laws](https://support.google.com/admob/answer/9561022)
require giving users the right
to opt out of the "sale" of their "personal information" (as the law defines
those terms), with the opt-out offered through a prominent "Do Not Sell My Personal
Information" link on the "selling" party's homepage. The
[US states privacy
laws compliance guide](https://developers.google.com/admob/react-native/privacy/us-states) offers the ability to enable
[restricted data processing](https://privacy.google.com/businesses/rdp/)
for Google ad serving, but Google is unable to apply this setting to each ad
network in your mediation chain. Therefore, you must identify each ad network
in your mediation chain that may participate in the sale of personal
information and follow guidance from each of those networks to ensure
compliance.

For users in California, review Meta's [data processing
options](https://developers.facebook.com/docs/marketing-apis/data-processing-options).

## Step 5: Add required code

### Android

No additional code required for
Meta Audience Network integration.

### iOS

### SKAdNetwork integration

Follow [Meta Audience Network's
documentation](https://developers.facebook.com/docs/audience-network/guides/SKAdNetwork)
to add the SKAdNetwork identifiers to your project's `Info.plist` file.

### Advertising tracking enabled

If you are building for iOS 14 or higher, check
Meta Audience Network's
instructions on how to set their [Advertising Tracking
Flag](https://developers.facebook.com/docs/audience-network/setting-up/platform-setup/ios/advertising-tracking-enabled#unity).

## Step 6: Test your implementation

### Enable test ads

Make sure you
[register your test device](https://developers.google.com/admob/react-native/test-ads.md.txt#enable_test_devices)
for

AdMob and [enable test mode](https://developers.google.com/admob/react-native/mediation/meta.md.txt#turn-on-test-mode) in
Meta Audience Network UI.


> [!IMPORTANT]
> **Key Point:** When testing, ensure that you have the Facebook app installed on the test device and be logged in with a valid Facebook login. See [Meta's documentation](https://developers.facebook.com/docs/audience-network/setting-up/testing/platform#test-mobile-apps) for more details.

> [!IMPORTANT]
> **Important:** Disable test mode for AdMob and Meta Audience Network before releasing your app.

### Verify test ads

To verify that you are receiving test ads from
Meta Audience Network,
enable
[single ad source testing](https://developers.google.com/admob/react-native/ad-inspector#single_ad_source_testing)
in ad inspector using the
**Meta Audience Network (Bidding)** ad source(s).

## Optional steps

### Caching on Android 9

### Android

Starting with Android 9 (API level 28), [cleartext support is disabled by
default](https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted),
which will affect the functionality of media caching of the
Meta Audience Network
SDK and could affect user experience and ads revenue. Follow [Meta's
documentation](https://developers.facebook.com/docs/audience-network/android-network-security-config/)
to update the network security configuration in your app.

### iOS

Not applicable for iOS integrations.

## Error codes

If the adapter fails to receive an ad from Audience Network, you can check the
underlying error from the ad response using
[`ResponseInfo`](https://developers.google.com/admob/react-native/response-info.md.txt) under the following classes:

### Android

```java
com.google.ads.mediation.facebook.FacebookAdapter
com.google.ads.mediation.facebook.FacebookMediationAdapter
```

### iOS

```objective-c
GADMAdapterFacebook
GADMediationAdapterFacebook
```

Here are the codes and accompanying messages thrown by the Meta Audience
Network adapter when an ad fails to load:

### Android

| Error code | Reason |
|---|---|
| 101 | Invalid server parameters (e.g. missing Placement ID). |
| 102 | The requested ad size does not match a Meta Audience Network supported banner size. |
| 103 | The publisher must request ads with an `Activity` context. |
| 104 | The Meta Audience Network SDK failed to initialize. |
| 105 | The publisher did not request for Unified native ads. |
| 106 | The native ad loaded is a different object than the one expected. |
| 107 | The `Context` object used is invalid. |
| 108 | The loaded ad is missing the required native ad assets. |
| 109 | Failed to create a native ad from the bid payload. |
| 110 | The Meta Audience Network SDK failed to present their interstitial/rewarded ad. |
| 111 | Exception thrown when creating a Meta Audience Network `AdView` object. |
| 1000-9999 | The Meta Audience Network returned an SDK-specific error. See Meta Audience Network's [documentation](https://developers.facebook.com/docs/audience-network/guides/test/checklist-errors) for more details. |

### iOS

| Error code | Reason |
|---|---|
| 101 | Invalid server parameters (e.g. missing Placement ID). |
| 102 | The requested ad size does not match a Meta Audience Network supported banner size. |
| 103 | The Meta Audience Network ad object failed to initialize. |
| 104 | The Meta Audience Network SDK failed to present their interstitial/rewarded ad. |
| 105 | Root view controller of the banner ad is `nil`. |
| 106 | The Meta Audience Network SDK failed to initialize. |
| 1000-9999 | The Meta Audience Network returned an SDK-specific error. See Meta Audience Network's [documentation](https://developers.facebook.com/docs/audience-network/guides/test/checklist-errors) for more details. |

#### Version 0.1.0

- Initial release.

<!-- -->

- Supports [Meta Audience Network Android adapter version 6.22.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/facebook/CHANGELOG.md#version-62201).
- Supports [Meta Audience Network iOS adapter version 6.22.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-6211).
- Built and tested with the Google Mobile Ads React Native Plugin version 0.1.0.