# Integration troubleshooting

> Troubleshoot common Mobile Measurement Partner (MMP) integration errors.

When you integrate a Mobile Measurement Partner (MMP) with your User Acquisition campaign, the dashboard checks that your campaign is successfully receiving data. The dashboard validates the following data-sharing indicators:

* Your campaign receives install data within two days of launch.
* Your campaign receives post-install event data within seven days of launch.

If your campaign fails either of these validation checks, the dashboard flags your campaign with an integration error message. Refer to the following sections for information on how to resolve these errors.

> **Important:**
>
> This troubleshooting guide covers integration issues for the following MMPs:
>
> * Adjust
> * Airbridge
> * AppsFlyer
> * Bytebrew
> * Singular
> * Tenjin
>   For additional issues integrating with AppsFlyer, refer to the [AppsFlyer integration validation](/grow/acquire/partner-integration/appsflyer/appsflyer-required-integration-fixes.md) documentation.

## No install data in two days

If your campaign doesn't receive install data within two days of launch, it can negatively impact performance, and attribution. The dashboard flags this issue with the following error message:

```text
Integration-blocking issues detected for one or more campaigns. These issues can severely impact performance. Resolve this issue to ensure accurate tracking and delivery: Within 2 days of launch, campaigns must receive at least one install postback.
```

### Cause

Your campaign can fail to accrue install data if you misconfigure your MMP integration. Refer to your MMP-specific integration guide for step-by-step integration instructions.

### Resolutions

Consider both of the following resolutions to ensure your campaign receives install data.

#### Share install data from all sources

When you share install data with Unity, ensure that you include data from your entire user base, including Unity-attributed, unattributed, and organic installs. Refer to the [Introduction to Attribution](/grow/acquire/partner-integration/attribution/introduction.md#attribution-types) for definitions of each attribution type.

Each MMP has unique terminology for this setting. Refer to the following examples of how to share install data from all sources in supported MMP dashboards:

1. **Adjust**

   To share install data for all of your user base follow these steps in the Adjust dashboard:

   1. Go to the **Campaign Lab** tab > **Partners** page.
   2. From the **What sources of data do you want to share** options, select **Data from all attribution sources**.

2. **Airbridge**

   To share install data for all of your user base, follow these steps in the Airbridge dashboard:

   1. Select **Organization** from the top menu bar.
   2. On the **Organization settings** page, go to **User Management** > **Agency**.
   3. Find your app in the **App** list and select **Details**. If you haven't granted App access for your app, refer to the Airbridge [Organization-level User Management](https://help.airbridge.io/en/guides/organization-level-user-management#granting-app-access-to-agency-users) documentation.
   4. From the **App Access Settings**, select **Edit** to open the access settings dialog.
   5. Go to the **Unattributed Event Data** section of the dialog.
   6. Enable the **Unattributed Event Data** toggle.
   7. Select **Save**.

3. **AppsFlyer**

   Use these steps to share data from all sources in the AppsFlyer dashboard:

   1. Go to the **Integration** tab > **Default postbacks** section.
   2. From the **for users from** dropdown, select **All media sources, including organic**.

4. **ByteBrew**

   To share install data for all of your user base, follow these steps in the ByteBrew dashboard:

   1. In the **Install Settings** tab of the **ByteBrew** integration setup, go to the **Send all install events from** section.
   2. Select **All Partners and Organics**.

5. **Singular**

   To share install data for all of your user base, follow these steps in the Singular dashboard:

   1. Go to the **Attribution Postbacks & Settings** tab > **Attribution Postbacks** table.
   2. Enable the **Send All** checkbox.

6. **Tenjin**

   To share install data for all of your user base, follow these steps in the Tenjin dashboard:

   1. Go to the **Callbacks** tab for your app.
   2. From the **User filter** dropdown, select **all users**.

#### Review integration setup

Review the integration guide for your preferred MMP to ensure it's configured correctly. Review the integration activation, advertiser credentials, and data-sharing settings in your partner's integration guide:

1. **Adjust**

   Complete the following steps to correctly integrate Adjust and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Adjust dashboard**

      To activate the integration with Unity Ads, follow these steps:

      1. In the [Adjust dashboard](https://suite.adjust.com), go to **Campaign Lab** > **Partners**.
      2. Select **+ New partner** and search for **Unity Ads**.
      3. Choose your app and select **Next**.
      4. Enter your advertiser [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **GAME ID** field.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

   2. **Configure data-sharing settings**

      To configure data-sharing settings, follow these steps:

      1. From the **What sources of data do you want to share** options, select **Data from all attribution sources**.
      2. From the **What other data do you want to share?** options, select both **Sessions** and **In-app revenue (from in app purchases)**.

      > **Important:**
      >
      > You must use these data-sharing settings to enable ROAS and Event campaigns.

   3. **Map events and parameters**

      To share in-app events with your User Acquisition campaign, do the following in **Data sharing** > **Map your events**:

      1. Select **+ Map event**.

      2. Choose the event you want Adjust to share with Unity from the **Adjust event** list.


         **Map Adjust events:**
         ![The Map Events to Share with Unity dialog in the Adjust integration setup](/api/media?file=/grow/media/images/adjust-map-event-to-share.png)

      3. Select or enter the Unity Ads event that corresponds with the correct Adjust event, as shown in the following table:

      > **Important:**
      >
      > If your Adjust account supports ad revenue data-sharing, send this data as a dedicated `ad_revenue` event.
      > Otherwise, don't send ad revenue events. Mapping ad revenue events as other event types, such as `purchase`, can cause campaign optimization to stop working.

      | `purchase`             | `purchase`       |
      | ---------------------- | ---------------- |
      | `ad_revenue`           | `ad_revenue`     |
      | `{milestone_event}`    | `level_complete` |
      | * `session`
      * `launch` | `session`        |

      4. To map the same events for all platforms, select **Use global mapping**.

2. **Airbridge**

   Complete the following steps to correctly integrate Airbridge and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Airbridge dashboard**

      To activate the integration with Unity Ads, do the following in the [Airbridge dashboard](https://app.airbridge.io/app):

      1. Go to **Integration** > **Ad Channel Integration**.
      2. Select **Unity Ads**.
      3. Go to the **Postback** tab.
      4. Select **Postback Keys** or enable the **Send postbacks** toggle.
      5. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md).

   2. **Map the Airbridge SDK events with Unity Ads**

      To share [post-install](/grow/acquire/partner-integration/app-data/post-install-event-data.md.md) events with your User Acquisition campaign, do the following in the **Postback** tab:

      1. Select **Postback event setup**.
      2. Choose the event you want Airbridge to share with Unity from the **App event** list.
      3. Select or enter the Unity Ads event that corresponds with the correct Airbridge event, as shown in the following table:

      | Order Complete (App) | `purchase`       |
      | -------------------- | ---------------- |
      | Ad Impression (App)  | `ad_revenue`     |
      | Achieve Level (App)  | `level_complete` |
      | Open (App)           | `session`        |

   3. **Configure data-sharing settings**

      To configure your Airbridge data-sharing settings, do the following in the **Postback** tab:

      1. From the **Attribution** options, select **All events**.
      2. In the **Delivery rules** settings, select **First or All Events**.

3. **AppsFlyer**

   Complete the following steps to correctly integrate AppsFlyer and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the AppsFlyer dashboard**

      To activate Unity Ads in the [AppsFlyer dashboard](https://hq1.appsflyer.com/auth/login), follow these steps:

      1. In the AppsFlyer dashboard, go to **Collaborate** > **Partner Marketplace**.
      2. Search for **Unity Ads** and select **Set up integration** to open in the **Integration** tab.
      3. Activate the **Activate Partner** toggle.
      4. Some advertisers might have an **Advanced Privacy** toggle in the **Integration** tab. If your dashboard contains this toggle, ensure that you deactivate it.

      > **Important:**
      >
      > If the **Advanced Privacy** toggle is activated in your integration setup, AppsFlyer can't share any event data with your campaign.


      **Advanced Privacy toggle:**
      ![The Advanced Privacy toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-advanced-privacy.png)

   2. **Configure general integration settings**

      Configure the following integration settings in AppsFlyer:

      **Configure general settings:**

      In the **Integration** tab > **General settings** section, do the following:

      1. Activate the **Share organic/non-organic indication** toggle.


      **Share organic and non-organic:**
      ![The Share organic/non-organic toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-share-organic-non-organic.png)

      2. Enter your Unity Ads [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md).

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

      **Configure install attribution:**

      In the **Integration** tab > **Install attribution** section, do the following:

      1. Set the **Install engaged click-through lookback window** interval to **Days**.
      2. Use the slider to set the lookback window length to **2** days.
      3. Activate the **Install view-through attribution** toggle.
      4. Set the **Install engaged view-through lookback window** interval to **Days**.
      5. Use the slider to set the lookback window length to **7** days.


      **Set maximum lookback windows:**
      ![The click-through lookback window slider in the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-install-attribution.png)

   3. **Configure data-sharing settings**

      Configure the following data-sharing settings in AppsFlyer:

      **Configure default postbacks:**

      In the **Integration** tab > **Default postbacks** section, use the **for users from** dropdown to select **All media sources, including organic** for **Install** events.


      **AppsFlyer Default postbacks settings:**
      ![The Default postbacks section of the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-default-install-postbacks.png)

      **Configure in-app event settings:**

      In the **Integration** tab > **In-app event settings** section, do the following:

      1. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **game\_id** field.
      2. Activate the **In-app event postbacks** toggle.
      3. Set the **In-app event postback window** to **lifetime**.


      **Lifetime postback windows:**
      ![The lifetime in-app event postback lookback window in the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-lifetime-postback-window.png)

      **Map events:**

      In the **Integration** tab > **In-app event postbacks** section, map AppsFlyer events to Unity Ads events.

      You can map any in-app event you set up in the AppsFlyer dashboard. Refer to AppsFlyer's [In-app events](https://support.appsflyer.com/hc/en-us/articles/4410481112081-In-app-events-Event-structure#predefined-event-names) documentation for a list of AppsFlyer event names.

      > **Important:**
      >
      > Ensure that your **AppsFlyer event** name matches the event identifiers in your app's code exactly. If you incorrectly map an event, your campaign ignores the data.

      Refer to the following example of correct event mapping:

      | `af_purchase`          | `purchase`       | All media sources, including organic | Values & revenue    |
      | ---------------------- | ---------------- | ------------------------------------ | ------------------- |
      | `milestone_event_name` | `level_complete` | All media sources, including organic | Values & revenue    |
      | `af_app_opened`        | `session`        | All media sources, including organic | Values & no revenue |


      **AppsFlyer event mapping:**
      ![The AppsFlyer event mapping table](/api/media?file=/grow/media/images/appsflyer-event-mapping.png)

      Ensure that you make the following selections:

      * For all events, select **All media sources, including organic** in the **for users from** dropdown.
      * For **Level Complete** and **Purchase** events, select **Values & revenue** from the **including** dropdown.
      * For **Session events**, select **Values & no revenue** from the **including** dropdown.

      **Enable ad revenue data:**

      > **Important:**
      >
      > To access the AppsFlyer **Revenue Settings** menu and share ad revenue data with Unity, you need an AppsFlyer ROI360 subscription. Refer to the [Ad revenue attribution](https://support.appsflyer.com/hc/en-us/articles/217490046-ROI360-guide-ad-revenue-attribution#connect-to-ad-revenue-integrated-partners) documentation in the AppsFlyer Help Center for details and instructions.

      To share ad revenue event data with your campaign, follow these steps:

      1. Go to the **Ad revenue** tab of your AppsFlyer integration setup.
      2. Activate the **Get ad revenue data** toggle.


      **AppsFlyer Ad revenue toggle:**
      ![The Get ad revenue toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-get-ad-revenue.png)

      3. From the AppsFlyer dashboard side menu, go to **Settings** > **Revenue Settings**.
      4. In the **Ad revenue** tab of the **Revenue settings** page, select **New ad revenue integration**.
      5. Select **Unity Ads** from the list of revenue partners.
      6. In the partner configuration, select **Impression-level (via SDK) with Device-level (via S2S API)** as the report type.


      **Impression-level and Device-level ad revenue data:**
      ![The ad revenue setup in the AppsFlyer dashboard](/api/media?file=/grow/media/images/appsflyer-ad-revenue-setup.png)

      7. Enter your API credentials. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **App Key** field. To retrieve your **Secret key** from the Unity dashboard, refer to the following steps:

      **Retrieve your Secret key:**

      To retrieve your Secret key from the Unity Dashboard, follow these steps:

      1. From the left navigation menu, go to **API Management**.
      2. Select **Advertising Management API** > **Service account**.


      **API Management:**
      ![The API Management page of the Unity Ads User Acquisition Dashboard](/api/media?file=/grow/media/images/api-service-account.png)

      3. If you don't have a service account, select **+ New**. If you have a service account already, select it from the table.
      4. In the service account page, go to the **Keys** section.
      5. Select **+ Add key** to generate a new key.
      6. Select the copy buttons following the **Secret key** to copy the ID.

      8) Go back to the **Integration** tab of the AppsFlyer dashboard.
      9) In the **In-app event postbacks** section, map Ad Revenue events to `ad_revenue`. Refer to the following example of correct ad revenue mapping:

      | `af_ad_revenue` | `ad_revenue` | All media sources, including organic | Values & revenue |
      | --------------- | ------------ | ------------------------------------ | ---------------- |

   4. **Set partner permissions**

      In the **Permissions** tab, configure the following permissions settings:

      1. Activate the **Toggle Ad Network Permissions** toggle to enable all other toggles.
      2. Activate the following toggles:

      * **Configure integration**
      * **Configure in-app event postbacks**
      * **Access retention report**
      * **Access aggregate conversions and in-app event data**
      * **Access aggregate revenue data**
      * **View validation rules**
      * **Access Protect360 dashboard and raw data**
      * **Access ad revenue raw data (UA signals)**

      For descriptions of each permission, refer to the [Permissions tab](https://support.appsflyer.com/hc/en-us/articles/4410395957521-Set-up-an-integrated-partner#permissions-tab) documentation in the AppsFlyer Help Center.

4. **ByteBrew**

   Complete the following steps to correctly integrate ByteBrew and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the ByteBrew dashboard**

      Do the following in the ByteBrew dashboard to activate the Unity Ads integration:

      1. Select your app from the dashboard navigation menu.
      2. Go to **Attribution** > **Network Settings** and find **UnityAds** from the list of networks.
      3. Next to **UnityAds**, select **Setup** to open the **Add Ad Network** dialog.
      4. Complete the **Network Settings** fields. Refer to the following instructions for help locating these values in the User Acquisition dashboard:

         **API Key:**

         To retrieve your API Key from the User Acquisition dashboard, do the following:

         1. Go to the **API Management page**.
         2. Copy the **API Key** in the **Stats API v1.0** section.

         **Game ID:**

         To retrieve your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) from the **Apps** page of the **User Acquisition** dashboard, follow these steps:

         1. From the dashboard left navigation menu, go to **Apps**. The provided table lists each of your organization's apps. Following each app name, the dashboard displays the app platform and Game ID.
         2. Select the **Copy** symbol next to the ID to copy it to your clipboard.

         **Organization ID:**

         To retrieve your Organization ID from the User Acquisition dashboard, follow these steps:

         1. Go to the **Settings** page.
         2. Copy the **Organization ID** from the **Organization** section of your settings.

         **Organization Core ID:**

         To retrieve your Organization core ID from the **Settings** page of the User Acquisition dashboard, follow these steps:

         1. Go to the **Organization** section of the **Settings** page.
         2. Copy the numeric ID next to **Organization core ID**.

   2. **Configure data-sharing settings**

      To configure data-sharing settings with ByteBrew, do the following in the **Install Settings** tab of the integration flow:

      1. To enable view-through attribution, select the **Enable view through tracking** checkbox and configure the view-through lookback window. ByteBrew generates Click-through attribution links by default.
      2. Configure your attribution lookback windows in the following **Install Settings** fields:

      | **Click-Through Window** | Yes | Use the **Days** selector to set the number of days an install can be attributed after a user clicks on your ad. | The maximum click-through lookback period is 30 days. The recommended best practice is to set the click-through setting to seven days or more for accurate attribution. |
      | ------------------------ | --- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | **View-Through Window**  | No  | Use the **Days** selector to set the number of days an install can be attributed after a user watches your ad.   | The maximum view-through lookback period is seven days. The recommended best practice is to set the view-through setting to one day or more for accurate attribution.   |

      For more information about attribution lookback options, refer to the [Attribution lookback settings](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#attribution-lookback-settings) section of the ByteBrew data-sharing reference.

      3. In the **Send all install events from** section, choose whether to pass engagement data from all of your app's installs (including [unattributed](/grow/acquire/partner-integration/attribution/introduction.md.md) install data) or just those attributed to Unity. Choose from the following options:

      * **Only this partner**
      * **All Partners and Organics**
      * **This Partner and Organics**

      For more information about the install data source options, refer to the [Attribution data sources](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#attribution-data-sources) section of the ByteBrew data-sharing reference.

   3. **Map events**

      To map post-install events with ByteBrew, do the following in the **Postback Settings** tab of the integration flow:

      1. To add a post-install event you want to pass to Unity, select **+ Add Postback Event** and choose from the following options:

      * Ad Watched Event
      * User App Open Event
      * In-App Purchase Event

      For more information about the postback event options, refer to the [Post-install event data-sharing section](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md) of the ByteBrew data-sharing reference.

      > **Important:**
      >
      > Don’t define a new user event in your app code. ByteBrew tracks new user events by default using the **User App Open Event** option. For more information, refer to the [ByteBrew Developer Hub](https://docs.bytebrew.io/attribution-setup/attribution-unityads) Attribution documentation.

      2. In the **Postback Events Settings** section, choose whether to pass post-install event data from all your app's installs (including [unattributed](/grow/acquire/partner-integration/attribution/introduction.md.md) install data) or just those attributed to Unity. Choose from the following options:

      * Send only from this partner
      * Send from all Networks and Organics
      * Send only from this Partner and Organics

      For more information about the post-install event data source options, refer to the [Postback data sources](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#postback-data-sources) section of the ByteBrew data-sharing reference.

      3. On the final tab of the network setup dialog, you can copy your attribution links. For instructions on how to integrate these URLs in the User Acquisition dashboard, refer to [Integrate attribution links with Unity](/grow/acquire/partner-integration/attribution/integrate-links.md.md).
      4. Select **Finish** to complete the integration.

5. **Singular**

   Complete the following steps to correctly integrate Singular and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Singular dashboard**

      1. Go to **Attribution Setup** > **Partner Configuration**.
      2. Select **Add a Partner**. Search for and select **Unity Ads**.
      3. Enter your advertiser [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **Unity Ads Game ID** field.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

   2. **Configure data-sharing settings**

      To configure data-sharing settings, follow these steps:

      1. In the **Attribution Postbacks & Settings** tab, go to the **Attribution Postbacks** table.
      2. Select the **Install** checkbox in the **Attribution Event** column.
      3. In the same row, select the following checkboxes:

      * **Send View Through**
      * **Send All**
      * **Send Fraud Postbacks**


      **Send View Through, All, and Fraud Postbacks:**
      ![The Attribution Postbacks & Settings tab of the Singular dashboard](/api/media?file=/grow/media/images/singular-integration-attribution-settings.png)

   3. **Map post-install events**

      To map events, follow these steps:

      1. In the **In app Events Postback** tab, select **Send all ad monetization events** from the **Revenue Events Postbacks** dropdown.

      > **Important:**
      >
      > Singular is the only MMP that supports sending all monetization events together. To send ad revenue events with Singular, ensure that you select **Send all ad monetization events** from the **Revenue Events Postbacks** dropdown and select **`__REVENUE__*`** from the **SDK Event Name** dropdown.


      **Send all ad monetization events:**
      ![The Revenue Events Postbacks options in the Singular integration setup](/api/media?file=/grow/media/images/singular-send-all-monetization-events.png)

      2. To map events, select your Singular events in the **SDK Event Name** column and map them to Unity Ads events in the **Event Name** column as follows:

      | * `__iap__`
      * `custom_purchase_event_name` | `purchase`   |                                                                                                                                                                   |
      | ------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | `__REVENUE__*`                             | `ad_revenue` | To send ad revenue events with Singular, ensure that you select Send all ad monetization events from the Revenue Events Postbacks dropdown above the event table. |
      | `__SESSION__`                              | `session`    |                                                                                                                                                                   |

      3. To share data from your entire user base, select the **Send all** checkbox for each event.
      4. In the **Postback Window Starting Point** column, select **Unlimited** for each event.
      5. If you have a Singular [Enterprise](https://support.singular.net/hc/en-us/articles/115000483946-Partner-Configuration-and-Postbacks-FAQ-and-Troubleshooting#in_app_event_postbacks) account, set the **Postback Window (days)** to **Unlimited**. Otherwise, set the window to `30` days.
      6. Select the **Include Revenue** checkbox for each row.


      **Include revenue:**
      ![The In app Events Postback tab of the Singular integration workflow](/api/media?file=/grow/media/images/singular-in-app-postback-tab.png)

6. **Tenjin**

   Complete the following steps to correctly integrate Tenjin and share data with your User Acquisition campaign:

   1. **Copy credentials from the Unity Dashboard**

      You need the following Unity account credentials to complete your Tenjin integration:

      **Game ID:**

      To retrieve your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) from the **Apps** page of the **User Acquisition** dashboard, follow these steps:

      1. From the dashboard left navigation menu, go to **Apps**. The provided table lists each of your organization's apps. Following each app name, the dashboard displays the app platform and Game ID.
      2. Select the **Copy** symbol next to the ID to copy it to your clipboard.
      3. Optionally, hover over the app name to copy the **Campaign Set ID** and **Store ID** as well.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

      **Secret Key and Key ID:**

      > **Note:**
      >
      > Only **Organization Owners** or **Organization Managers** can create service accounts and secret keys. Refer to [User types, roles and permissions](/cloud/organizations/roles-and-permissions.md.md) for more information.

      To retrieve your Secret Key and Key ID from the **User Acquisition** dashboard, follow these steps:

      1. From the left navigation menu, go to **API Management**.

      2. Select **Advertising Management API** > **Service account**.


         **API Management:**
         ![The API Management page of the User Acquisition dashboard](/api/media?file=/grow/media/images/api-service-account.png)

      3. If you don't have a service account, select **+ New**. If you have a service account already, select it from the table.

      4. In the service account page, go to the **Keys** section.

      5. Select **+ Add key** to generate both keys.

      6. Select the copy buttons following the **Key ID** and the **Secret key** to copy both credentials.

      **Organization core ID:**

      To retrieve your Organization core ID from the **Settings** page of the User Acquisition dashboard, follow these steps:

      1. Go to the **Organization** section of the **Settings** page.
      2. Copy the numeric ID next to **Organization core ID**.

      > **Note:**
      >
      > Ensure that you copy the numeric **Organization core ID**, not the alphanumeric **Organization ID**.

   2. **Activate Unity Ads in the Tenjin dashboard**

      To integrate Unity with Tenjin, follow these steps in the [Tenjin dashboard](https://dashboard.tenjin.com/):

      1. Go to the **Configure** tab and select **Channels**.
      2. Search for **Unity Ads** in the **Marketing Channel Name** field.
      3. In the **New Marketing Channel** setup for Unity Ads, enter the Unity account credentials you copied from the Unity dashboard and give your account a name.
      4. In the Tenjin navigation menu, go to the **Campaigns** tab and select **Create Campaign**.
      5. Select **Unity Ads** from the **Marketing Account** dropdown.
      6. Choose your app from the **App** dropdown and give your campaign a descriptive **Name**.
      7. When the system prompts you with a **Callback to be created** message, follow the provided link to continue and generate an attribution link.

   3. **Configure data-sharing settings**

      With Tenjin, configuring the data-sharing settings also maps your in-app events. To configure data-sharing settings and map events with Tenjin, do the following as you finish the activation workflow:

      1. After you follow the link in the **Callback to be created** message, select **Unity Ads** from the **Channels and Partners** dropdown.
      2. In the **Channel callbacks** section, activate the following toggles:

      * **Unity Ads ad revenue**
      * **Unity Ads app open**
      * **Unity Ads IAP**
      * **Unity Ads install**

      > **Important:**
      >
      > Don't map ad revenue events as **In-App Purchase** events. If your Tenjin account supports ad revenue data-sharing, send this data as a dedicated **Ad Revenue Impression** event.
      >
      > If your account doesn't support ad revenue data-sharing, don't send ad revenue as a different event type, as this event mismatching can cause campaign optimization to stop working.

      3. For each event callback, select **all users** from the **User filter** dropdown.


      **Channel Callbacks for all users:**
      ![The Channel Callbacks page of the Tenjin integration setup](/api/media?file=/grow/media/images/tenjin-channel-callbacks.png)

## No post-install event data in seven days

If your campaign isn't receiving post-install event data within seven days of launch, it can negatively impact performance and optimization. The dashboard flags this issue with the following error message:

```text
Integration-blocking issues detected for one or more campaigns. These issues can severely impact performance. Resolve this issue to ensure accurate tracking and delivery: Within 7 days of launch, campaigns must receive at least one post-install event postback.
```

### Causes

Several integration settings can disrupt your MMP sending post-install event data to your campaign, such as the following:

#### Attribution configured incorrectly

When you configure your attribution links incorrectly, your MMP can't share post-install event data with Unity.

#### Ad revenue reporting disabled

If you don't enable your MMP to send both values and revenue for Purchase and Ad Revenue events, the dashboard doesn't have the data it needs for the following optimized campaign goals:

* In-app Purchase (IAP) Return on Ad Spend (ROAS)
* Ad Revenue ROAS
* Hybrid ROAS
* Payer Event Optimization

Refer to the [Configure data-sharing correctly](#configure-data-sharing-correctly) section for details on how to resolve this issue.

### Resolutions

Consider the following resolutions to ensure your campaign receives post-install event data.

#### Map post-install events correctly

When you share post-install event data with your campaign, ensure that you correctly map the post-install events. Correct mapping means that you align the Unity Ads event name with the correct MMP event name.

> **Warning:**
>
> If you use any MMP other than Singular, don't combine ad revenue events with in-app purchase (IAP) events.

Refer to the following examples of correctly mapped event names:

1. **Adjust**

   Map your post-install events in the **Map events to share with Unity Ads** section of the Adjust integration setup as follows:

   > **Important:**
   >
   > If your Adjust account supports ad revenue data-sharing, send this data as a dedicated `ad_revenue` event. Otherwise, don't send ad revenue events. Mapping ad revenue events as other event types, such as `purchase`, can cause campaign optimization to stop working.

   | Event type            | Unity Ads event name | Adjust event name        |
   | --------------------- | -------------------- | ------------------------ |
   | In-app purchase (IAP) | `purchase`           | `purchase`               |
   | Ad revenue            | `ad_revenue`         | `ad_revenue`             |
   | Milestone completion  | `level_complete`     | `{milestone_event_name}` |
   | Session               | `session`            | `session`                |

2. **Airbridge**

   Map your post-install events in the **Postback** tab > **Postback event setup** page of the Airbridge integration setup as follows:

   | Event type            | Unity Ads event name | Airbridge event name |
   | --------------------- | -------------------- | -------------------- |
   | In-app purchase (IAP) | `purchase`           | Order complete (App) |
   | Ad revenue            | `ad_revenue`         | Ad Impression (App)  |
   | Milestone completion  | `level_complete`     | Achieve Level (App)  |
   | Session               | `session`            | Open (App)           |

3. **AppsFlyer**

   Map your post-install events in the **In-app event postbacks** table of the AppsFlyer integration setup as follows:

   > **Important:**
   >
   > If your AppsFlyer account supports ad revenue data-sharing, send this data with the **Get ad revenue data** toggle in the **Ad revenue** tab.
   >
   > Otherwise, don't send ad revenue events. Mapping ad revenue events as other event types, such as `af_purchase`, can cause campaign optimization to stop working.

   | In-app purchase (IAP) | `purchase`       | `af_purchase`            |
   | --------------------- | ---------------- | ------------------------ |
   | Milestone completion  | `level_complete` | `{milestone_event_name}` |
   | Session               | `session`        | `af_app_opened`          |

4. **ByteBrew**

   Map your post-install events in the **Postback Settings** tab of the ByteBrew integration setup as follows:

   | Event type            | Unity Ads event name | ByteBrew event name   |
   | --------------------- | -------------------- | --------------------- |
   | In-app purchase (IAP) | `purchase`           | In-App Purchase event |
   | Ad revenue            | `ad_revenue`         | Ad Watched event      |
   | Session               | `session`            | User App Open Event   |

5. **Singular**

   Map your post-install events in the **Revenue Events Postbacks** and **Events Postbacks** tables of the Singular integration setup as follows:

   > **Important:**
   >
   > Singular is the only MMP that supports sending ad revenue and in-app purchase events together. To send ad revenue events with Singular, ensure that you select **Send all ad monetization events** from the **Revenue Events Postbacks** dropdown and select **\_\_REVENUE\_\_\*** from the **SDK Event Name** dropdown.

   | Event type            | Unity Ads event name | Singular event name                          |
   | --------------------- | -------------------- | -------------------------------------------- |
   | In-app purchase (IAP) | `purchase`           | * `__iap__`
   * `{custom_purchase_event_name}` |
   | Ad revenue            | `ad_revenue`         | `__REVENUE__*`                               |
   | Milestone completion  | `level_complete`     | {`{milestone_event_name}`}                   |
   | Session               | `session`            | `__SESSION__`                                |

6. **Tenjin**

   Activate your post-install events in the **Channel Callbacks** page of the Tenjin integration setup as follows:

   > **Important:**
   >
   > If your Tenjin account supports ad revenue data-sharing, send this data as a dedicated **Ad Revenue Impression** event.
   > Otherwise, don't send ad revenue events. Mapping ad revenue as other event types, such as **In-app Purchase**, can cause campaign optimization to stop working.

   | Event type            | Unity Ads event name | Tenjin event name     |
   | --------------------- | -------------------- | --------------------- |
   | In-app purchase (IAP) | `purchase`           | In-app Purchase       |
   | Ad revenue            | `ad_revenue`         | Ad Revenue Impression |
   | Session               | `session`            | Unity ads app open    |

#### Configure data-sharing correctly

When you share [post-install event data](/grow/acquire/partner-integration/post-install-event-data.md) with your campaign, ensure that you configure your data sharing settings correctly.

To send install and post-install event data to Unity, refer to the **Configure data-sharing settings** sections of the following partner-specific instructions:

1. **Adjust**

   Complete the following steps to correctly integrate Adjust and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Adjust dashboard**

      To activate the integration with Unity Ads, follow these steps:

      1. In the [Adjust dashboard](https://suite.adjust.com), go to **Campaign Lab** > **Partners**.
      2. Select **+ New partner** and search for **Unity Ads**.
      3. Choose your app and select **Next**.
      4. Enter your advertiser [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **GAME ID** field.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

   2. **Configure data-sharing settings**

      To configure data-sharing settings, follow these steps:

      1. From the **What sources of data do you want to share** options, select **Data from all attribution sources**.
      2. From the **What other data do you want to share?** options, select both **Sessions** and **In-app revenue (from in app purchases)**.

      > **Important:**
      >
      > You must use these data-sharing settings to enable ROAS and Event campaigns.

   3. **Map events and parameters**

      To share in-app events with your User Acquisition campaign, do the following in **Data sharing** > **Map your events**:

      1. Select **+ Map event**.

      2. Choose the event you want Adjust to share with Unity from the **Adjust event** list.


         **Map Adjust events:**
         ![The Map Events to Share with Unity dialog in the Adjust integration setup](/api/media?file=/grow/media/images/adjust-map-event-to-share.png)

      3. Select or enter the Unity Ads event that corresponds with the correct Adjust event, as shown in the following table:

      > **Important:**
      >
      > If your Adjust account supports ad revenue data-sharing, send this data as a dedicated `ad_revenue` event.
      > Otherwise, don't send ad revenue events. Mapping ad revenue events as other event types, such as `purchase`, can cause campaign optimization to stop working.

      | `purchase`             | `purchase`       |
      | ---------------------- | ---------------- |
      | `ad_revenue`           | `ad_revenue`     |
      | `{milestone_event}`    | `level_complete` |
      | * `session`
      * `launch` | `session`        |

      4. To map the same events for all platforms, select **Use global mapping**.

2. **Airbridge**

   Complete the following steps to correctly integrate Airbridge and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Airbridge dashboard**

      To activate the integration with Unity Ads, do the following in the [Airbridge dashboard](https://app.airbridge.io/app):

      1. Go to **Integration** > **Ad Channel Integration**.
      2. Select **Unity Ads**.
      3. Go to the **Postback** tab.
      4. Select **Postback Keys** or enable the **Send postbacks** toggle.
      5. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md).

   2. **Map the Airbridge SDK events with Unity Ads**

      To share [post-install](/grow/acquire/partner-integration/app-data/post-install-event-data.md.md) events with your User Acquisition campaign, do the following in the **Postback** tab:

      1. Select **Postback event setup**.
      2. Choose the event you want Airbridge to share with Unity from the **App event** list.
      3. Select or enter the Unity Ads event that corresponds with the correct Airbridge event, as shown in the following table:

      | Order Complete (App) | `purchase`       |
      | -------------------- | ---------------- |
      | Ad Impression (App)  | `ad_revenue`     |
      | Achieve Level (App)  | `level_complete` |
      | Open (App)           | `session`        |

   3. **Configure data-sharing settings**

      To configure your Airbridge data-sharing settings, do the following in the **Postback** tab:

      1. From the **Attribution** options, select **All events**.
      2. In the **Delivery rules** settings, select **First or All Events**.

3. **AppsFlyer**

   Complete the following steps to correctly integrate AppsFlyer and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the AppsFlyer dashboard**

      To activate Unity Ads in the [AppsFlyer dashboard](https://hq1.appsflyer.com/auth/login), follow these steps:

      1. In the AppsFlyer dashboard, go to **Collaborate** > **Partner Marketplace**.
      2. Search for **Unity Ads** and select **Set up integration** to open in the **Integration** tab.
      3. Activate the **Activate Partner** toggle.
      4. Some advertisers might have an **Advanced Privacy** toggle in the **Integration** tab. If your dashboard contains this toggle, ensure that you deactivate it.

      > **Important:**
      >
      > If the **Advanced Privacy** toggle is activated in your integration setup, AppsFlyer can't share any event data with your campaign.


      **Advanced Privacy toggle:**
      ![The Advanced Privacy toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-advanced-privacy.png)

   2. **Configure general integration settings**

      Configure the following integration settings in AppsFlyer:

      **Configure general settings:**

      In the **Integration** tab > **General settings** section, do the following:

      1. Activate the **Share organic/non-organic indication** toggle.


      **Share organic and non-organic:**
      ![The Share organic/non-organic toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-share-organic-non-organic.png)

      2. Enter your Unity Ads [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md).

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

      **Configure install attribution:**

      In the **Integration** tab > **Install attribution** section, do the following:

      1. Set the **Install engaged click-through lookback window** interval to **Days**.
      2. Use the slider to set the lookback window length to **2** days.
      3. Activate the **Install view-through attribution** toggle.
      4. Set the **Install engaged view-through lookback window** interval to **Days**.
      5. Use the slider to set the lookback window length to **7** days.


      **Set maximum lookback windows:**
      ![The click-through lookback window slider in the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-install-attribution.png)

   3. **Configure data-sharing settings**

      Configure the following data-sharing settings in AppsFlyer:

      **Configure default postbacks:**

      In the **Integration** tab > **Default postbacks** section, use the **for users from** dropdown to select **All media sources, including organic** for **Install** events.


      **AppsFlyer Default postbacks settings:**
      ![The Default postbacks section of the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-default-install-postbacks.png)

      **Configure in-app event settings:**

      In the **Integration** tab > **In-app event settings** section, do the following:

      1. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **game\_id** field.
      2. Activate the **In-app event postbacks** toggle.
      3. Set the **In-app event postback window** to **lifetime**.


      **Lifetime postback windows:**
      ![The lifetime in-app event postback lookback window in the AppsFlyer Integration tab](/api/media?file=/grow/media/images/appsflyer-lifetime-postback-window.png)

      **Map events:**

      In the **Integration** tab > **In-app event postbacks** section, map AppsFlyer events to Unity Ads events.

      You can map any in-app event you set up in the AppsFlyer dashboard. Refer to AppsFlyer's [In-app events](https://support.appsflyer.com/hc/en-us/articles/4410481112081-In-app-events-Event-structure#predefined-event-names) documentation for a list of AppsFlyer event names.

      > **Important:**
      >
      > Ensure that your **AppsFlyer event** name matches the event identifiers in your app's code exactly. If you incorrectly map an event, your campaign ignores the data.

      Refer to the following example of correct event mapping:

      | `af_purchase`          | `purchase`       | All media sources, including organic | Values & revenue    |
      | ---------------------- | ---------------- | ------------------------------------ | ------------------- |
      | `milestone_event_name` | `level_complete` | All media sources, including organic | Values & revenue    |
      | `af_app_opened`        | `session`        | All media sources, including organic | Values & no revenue |


      **AppsFlyer event mapping:**
      ![The AppsFlyer event mapping table](/api/media?file=/grow/media/images/appsflyer-event-mapping.png)

      Ensure that you make the following selections:

      * For all events, select **All media sources, including organic** in the **for users from** dropdown.
      * For **Level Complete** and **Purchase** events, select **Values & revenue** from the **including** dropdown.
      * For **Session events**, select **Values & no revenue** from the **including** dropdown.

      **Enable ad revenue data:**

      > **Important:**
      >
      > To access the AppsFlyer **Revenue Settings** menu and share ad revenue data with Unity, you need an AppsFlyer ROI360 subscription. Refer to the [Ad revenue attribution](https://support.appsflyer.com/hc/en-us/articles/217490046-ROI360-guide-ad-revenue-attribution#connect-to-ad-revenue-integrated-partners) documentation in the AppsFlyer Help Center for details and instructions.

      To share ad revenue event data with your campaign, follow these steps:

      1. Go to the **Ad revenue** tab of your AppsFlyer integration setup.
      2. Activate the **Get ad revenue data** toggle.


      **AppsFlyer Ad revenue toggle:**
      ![The Get ad revenue toggle in the AppsFlyer integration setup](/api/media?file=/grow/media/images/appsflyer-get-ad-revenue.png)

      3. From the AppsFlyer dashboard side menu, go to **Settings** > **Revenue Settings**.
      4. In the **Ad revenue** tab of the **Revenue settings** page, select **New ad revenue integration**.
      5. Select **Unity Ads** from the list of revenue partners.
      6. In the partner configuration, select **Impression-level (via SDK) with Device-level (via S2S API)** as the report type.


      **Impression-level and Device-level ad revenue data:**
      ![The ad revenue setup in the AppsFlyer dashboard](/api/media?file=/grow/media/images/appsflyer-ad-revenue-setup.png)

      7. Enter your API credentials. Enter your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **App Key** field. To retrieve your **Secret key** from the Unity dashboard, refer to the following steps:

      **Retrieve your Secret key:**

      To retrieve your Secret key from the Unity Dashboard, follow these steps:

      1. From the left navigation menu, go to **API Management**.
      2. Select **Advertising Management API** > **Service account**.


      **API Management:**
      ![The API Management page of the Unity Ads User Acquisition Dashboard](/api/media?file=/grow/media/images/api-service-account.png)

      3. If you don't have a service account, select **+ New**. If you have a service account already, select it from the table.
      4. In the service account page, go to the **Keys** section.
      5. Select **+ Add key** to generate a new key.
      6. Select the copy buttons following the **Secret key** to copy the ID.

      8) Go back to the **Integration** tab of the AppsFlyer dashboard.
      9) In the **In-app event postbacks** section, map Ad Revenue events to `ad_revenue`. Refer to the following example of correct ad revenue mapping:

      | `af_ad_revenue` | `ad_revenue` | All media sources, including organic | Values & revenue |
      | --------------- | ------------ | ------------------------------------ | ---------------- |

   4. **Set partner permissions**

      In the **Permissions** tab, configure the following permissions settings:

      1. Activate the **Toggle Ad Network Permissions** toggle to enable all other toggles.
      2. Activate the following toggles:

      * **Configure integration**
      * **Configure in-app event postbacks**
      * **Access retention report**
      * **Access aggregate conversions and in-app event data**
      * **Access aggregate revenue data**
      * **View validation rules**
      * **Access Protect360 dashboard and raw data**
      * **Access ad revenue raw data (UA signals)**

      For descriptions of each permission, refer to the [Permissions tab](https://support.appsflyer.com/hc/en-us/articles/4410395957521-Set-up-an-integrated-partner#permissions-tab) documentation in the AppsFlyer Help Center.

4. **ByteBrew**

   Complete the following steps to correctly integrate ByteBrew and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the ByteBrew dashboard**

      Do the following in the ByteBrew dashboard to activate the Unity Ads integration:

      1. Select your app from the dashboard navigation menu.
      2. Go to **Attribution** > **Network Settings** and find **UnityAds** from the list of networks.
      3. Next to **UnityAds**, select **Setup** to open the **Add Ad Network** dialog.
      4. Complete the **Network Settings** fields. Refer to the following instructions for help locating these values in the User Acquisition dashboard:

         **API Key:**

         To retrieve your API Key from the User Acquisition dashboard, do the following:

         1. Go to the **API Management page**.
         2. Copy the **API Key** in the **Stats API v1.0** section.

         **Game ID:**

         To retrieve your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) from the **Apps** page of the **User Acquisition** dashboard, follow these steps:

         1. From the dashboard left navigation menu, go to **Apps**. The provided table lists each of your organization's apps. Following each app name, the dashboard displays the app platform and Game ID.
         2. Select the **Copy** symbol next to the ID to copy it to your clipboard.

         **Organization ID:**

         To retrieve your Organization ID from the User Acquisition dashboard, follow these steps:

         1. Go to the **Settings** page.
         2. Copy the **Organization ID** from the **Organization** section of your settings.

         **Organization Core ID:**

         To retrieve your Organization core ID from the **Settings** page of the User Acquisition dashboard, follow these steps:

         1. Go to the **Organization** section of the **Settings** page.
         2. Copy the numeric ID next to **Organization core ID**.

   2. **Configure data-sharing settings**

      To configure data-sharing settings with ByteBrew, do the following in the **Install Settings** tab of the integration flow:

      1. To enable view-through attribution, select the **Enable view through tracking** checkbox and configure the view-through lookback window. ByteBrew generates Click-through attribution links by default.
      2. Configure your attribution lookback windows in the following **Install Settings** fields:

      | **Click-Through Window** | Yes | Use the **Days** selector to set the number of days an install can be attributed after a user clicks on your ad. | The maximum click-through lookback period is 30 days. The recommended best practice is to set the click-through setting to seven days or more for accurate attribution. |
      | ------------------------ | --- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | **View-Through Window**  | No  | Use the **Days** selector to set the number of days an install can be attributed after a user watches your ad.   | The maximum view-through lookback period is seven days. The recommended best practice is to set the view-through setting to one day or more for accurate attribution.   |

      For more information about attribution lookback options, refer to the [Attribution lookback settings](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#attribution-lookback-settings) section of the ByteBrew data-sharing reference.

      3. In the **Send all install events from** section, choose whether to pass engagement data from all of your app's installs (including [unattributed](/grow/acquire/partner-integration/attribution/introduction.md.md) install data) or just those attributed to Unity. Choose from the following options:

      * **Only this partner**
      * **All Partners and Organics**
      * **This Partner and Organics**

      For more information about the install data source options, refer to the [Attribution data sources](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#attribution-data-sources) section of the ByteBrew data-sharing reference.

   3. **Map events**

      To map post-install events with ByteBrew, do the following in the **Postback Settings** tab of the integration flow:

      1. To add a post-install event you want to pass to Unity, select **+ Add Postback Event** and choose from the following options:

      * Ad Watched Event
      * User App Open Event
      * In-App Purchase Event

      For more information about the postback event options, refer to the [Post-install event data-sharing section](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md) of the ByteBrew data-sharing reference.

      > **Important:**
      >
      > Don’t define a new user event in your app code. ByteBrew tracks new user events by default using the **User App Open Event** option. For more information, refer to the [ByteBrew Developer Hub](https://docs.bytebrew.io/attribution-setup/attribution-unityads) Attribution documentation.

      2. In the **Postback Events Settings** section, choose whether to pass post-install event data from all your app's installs (including [unattributed](/grow/acquire/partner-integration/attribution/introduction.md.md) install data) or just those attributed to Unity. Choose from the following options:

      * Send only from this partner
      * Send from all Networks and Organics
      * Send only from this Partner and Organics

      For more information about the post-install event data source options, refer to the [Postback data sources](/grow/acquire/partner-integration/bytebrew/data-sharing.md.md#postback-data-sources) section of the ByteBrew data-sharing reference.

      3. On the final tab of the network setup dialog, you can copy your attribution links. For instructions on how to integrate these URLs in the User Acquisition dashboard, refer to [Integrate attribution links with Unity](/grow/acquire/partner-integration/attribution/integrate-links.md.md).
      4. Select **Finish** to complete the integration.

5. **Singular**

   Complete the following steps to correctly integrate Singular and share data with your User Acquisition campaign:

   1. **Activate Unity Ads in the Singular dashboard**

      1. Go to **Attribution Setup** > **Partner Configuration**.
      2. Select **Add a Partner**. Search for and select **Unity Ads**.
      3. Enter your advertiser [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) in the **Unity Ads Game ID** field.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

   2. **Configure data-sharing settings**

      To configure data-sharing settings, follow these steps:

      1. In the **Attribution Postbacks & Settings** tab, go to the **Attribution Postbacks** table.
      2. Select the **Install** checkbox in the **Attribution Event** column.
      3. In the same row, select the following checkboxes:

      * **Send View Through**
      * **Send All**
      * **Send Fraud Postbacks**


      **Send View Through, All, and Fraud Postbacks:**
      ![The Attribution Postbacks & Settings tab of the Singular dashboard](/api/media?file=/grow/media/images/singular-integration-attribution-settings.png)

   3. **Map post-install events**

      To map events, follow these steps:

      1. In the **In app Events Postback** tab, select **Send all ad monetization events** from the **Revenue Events Postbacks** dropdown.

      > **Important:**
      >
      > Singular is the only MMP that supports sending all monetization events together. To send ad revenue events with Singular, ensure that you select **Send all ad monetization events** from the **Revenue Events Postbacks** dropdown and select **`__REVENUE__*`** from the **SDK Event Name** dropdown.


      **Send all ad monetization events:**
      ![The Revenue Events Postbacks options in the Singular integration setup](/api/media?file=/grow/media/images/singular-send-all-monetization-events.png)

      2. To map events, select your Singular events in the **SDK Event Name** column and map them to Unity Ads events in the **Event Name** column as follows:

      | * `__iap__`
      * `custom_purchase_event_name` | `purchase`   |                                                                                                                                                                   |
      | ------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | `__REVENUE__*`                             | `ad_revenue` | To send ad revenue events with Singular, ensure that you select Send all ad monetization events from the Revenue Events Postbacks dropdown above the event table. |
      | `__SESSION__`                              | `session`    |                                                                                                                                                                   |

      3. To share data from your entire user base, select the **Send all** checkbox for each event.
      4. In the **Postback Window Starting Point** column, select **Unlimited** for each event.
      5. If you have a Singular [Enterprise](https://support.singular.net/hc/en-us/articles/115000483946-Partner-Configuration-and-Postbacks-FAQ-and-Troubleshooting#in_app_event_postbacks) account, set the **Postback Window (days)** to **Unlimited**. Otherwise, set the window to `30` days.
      6. Select the **Include Revenue** checkbox for each row.


      **Include revenue:**
      ![The In app Events Postback tab of the Singular integration workflow](/api/media?file=/grow/media/images/singular-in-app-postback-tab.png)

6. **Tenjin**

   Complete the following steps to correctly integrate Tenjin and share data with your User Acquisition campaign:

   1. **Copy credentials from the Unity Dashboard**

      You need the following Unity account credentials to complete your Tenjin integration:

      **Game ID:**

      To retrieve your [Game ID](/grow/acquire/get-started/retrieve-your-advertiser-game-id.md.md) from the **Apps** page of the **User Acquisition** dashboard, follow these steps:

      1. From the dashboard left navigation menu, go to **Apps**. The provided table lists each of your organization's apps. Following each app name, the dashboard displays the app platform and Game ID.
      2. Select the **Copy** symbol next to the ID to copy it to your clipboard.
      3. Optionally, hover over the app name to copy the **Campaign Set ID** and **Store ID** as well.

      > **Note:**
      >
      > Enter your Game ID exactly as shown in the User Acquisition dashboard. Mismatched Game IDs prevent Unity from receiving events correctly.

      **Secret Key and Key ID:**

      > **Note:**
      >
      > Only **Organization Owners** or **Organization Managers** can create service accounts and secret keys. Refer to [User types, roles and permissions](/cloud/organizations/roles-and-permissions.md.md) for more information.

      To retrieve your Secret Key and Key ID from the **User Acquisition** dashboard, follow these steps:

      1. From the left navigation menu, go to **API Management**.

      2. Select **Advertising Management API** > **Service account**.


         **API Management:**
         ![The API Management page of the User Acquisition dashboard](/api/media?file=/grow/media/images/api-service-account.png)

      3. If you don't have a service account, select **+ New**. If you have a service account already, select it from the table.

      4. In the service account page, go to the **Keys** section.

      5. Select **+ Add key** to generate both keys.

      6. Select the copy buttons following the **Key ID** and the **Secret key** to copy both credentials.

      **Organization core ID:**

      To retrieve your Organization core ID from the **Settings** page of the User Acquisition dashboard, follow these steps:

      1. Go to the **Organization** section of the **Settings** page.
      2. Copy the numeric ID next to **Organization core ID**.

      > **Note:**
      >
      > Ensure that you copy the numeric **Organization core ID**, not the alphanumeric **Organization ID**.

   2. **Activate Unity Ads in the Tenjin dashboard**

      To integrate Unity with Tenjin, follow these steps in the [Tenjin dashboard](https://dashboard.tenjin.com/):

      1. Go to the **Configure** tab and select **Channels**.
      2. Search for **Unity Ads** in the **Marketing Channel Name** field.
      3. In the **New Marketing Channel** setup for Unity Ads, enter the Unity account credentials you copied from the Unity dashboard and give your account a name.
      4. In the Tenjin navigation menu, go to the **Campaigns** tab and select **Create Campaign**.
      5. Select **Unity Ads** from the **Marketing Account** dropdown.
      6. Choose your app from the **App** dropdown and give your campaign a descriptive **Name**.
      7. When the system prompts you with a **Callback to be created** message, follow the provided link to continue and generate an attribution link.

   3. **Configure data-sharing settings**

      With Tenjin, configuring the data-sharing settings also maps your in-app events. To configure data-sharing settings and map events with Tenjin, do the following as you finish the activation workflow:

      1. After you follow the link in the **Callback to be created** message, select **Unity Ads** from the **Channels and Partners** dropdown.
      2. In the **Channel callbacks** section, activate the following toggles:

      * **Unity Ads ad revenue**
      * **Unity Ads app open**
      * **Unity Ads IAP**
      * **Unity Ads install**

      > **Important:**
      >
      > Don't map ad revenue events as **In-App Purchase** events. If your Tenjin account supports ad revenue data-sharing, send this data as a dedicated **Ad Revenue Impression** event.
      >
      > If your account doesn't support ad revenue data-sharing, don't send ad revenue as a different event type, as this event mismatching can cause campaign optimization to stop working.

      3. For each event callback, select **all users** from the **User filter** dropdown.


      **Channel Callbacks for all users:**
      ![The Channel Callbacks page of the Tenjin integration setup](/api/media?file=/grow/media/images/tenjin-channel-callbacks.png)
