> For the complete documentation index, see [llms.txt](https://help.branch.io/llms.txt).

# Enable Liftoff (New)

> Integrate Liftoff with Branch for optimized mobile app marketing and effective user acquisition.

## Overview

[Liftoff](https://liftoff.io) is a full-service mobile app marketing platform that uses post-install data to run CPA-optimized user acquisition and re-engagement campaigns. Connect Liftoff to Branch to attribute clicks and installs, forward conversion events, and configure Postbacks.

For more information about integrating ad partners in general, visit our [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

> **Note: this guide is for new Branch**
>
> Please note that this guide is about integrating Liftoff in the [new Branch experience](https://help.branch.io/marketer-hub/new-branch-overview.md). For information on Liftoff in legacy Branch, visit our [legacy guide](https://help.branch.io/marketer-hub/liftoff.md).

### Partner capabilities

| Capability | Details |
| --- | --- |
| Company type | Non-SAN ad network |
| Deep linking | Supported |
| Attribution | Click-through attribution, View-through attribution |
| Ad campaign types | Acquisition campaigns, Retargeting campaigns |
| Ad formats | Contact Liftoff for details |
| Click types | Client-side click, Server-side click |
| Supported platforms | iOS, Android |
| Link wrapping | Not supported |
| Cost ingestion support | Supported |
| Cost ingestion types | API |
| Pricing models | CPI, CPC (retargeting campaigns only), CPM, CPA |

## Before you begin

To set up the Liftoff integration, you need:

- Ad partner integrations enabled for your Branch account. Availability varies by Branch plan. See [Branch pricing](https://www.branch.io/pricing/) or contact your Branch representative.
- A Branch account with access to **Configuration > Ad Partners** and admin permissions to enable and configure integrations.
- The Branch SDK implemented in your app ([iOS](https://help.branch.io/developer-hub/ios-sdk-overview.md) | [Android](https://help.branch.io/developer-hub/android-sdk-overview.md)) with [event tracking](https://help.branch.io/developer-hub/track-branch-events.md) configured.
- Active campaigns running in Liftoff.
- [PAM](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md) enabled (recommended).

> **Note: PAM uses two separate toggles**
>
> The **PAM for Publishers** toggle for this partner, found under **Partner settings** > **Manage account**, is separate from the account-level **PAM switch**. **PAM for Publishers** must be enabled to reconcile conversion events with your partner. To attribute events with PAM, you also need PAM enabled on the [Attribution page](https://help.branch.io/account-hub/attribution-page-new.md) under **Configuration** > **Attribution**. Learn more in our [PAM Overview](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md#pam-for-publishers).

## Enable Liftoff

To begin, navigate to **Configuration > Ad Partners > Liftoff**.

Liftoff doesn't require credentials to activate postbacks. The integration is enabled automatically when you select **Enable Liftoff** on the Liftoff page, and postbacks for the standard event set will activate immediately.

After enabling, the Status tab will show **Clicks and Impressions: Needs Setup** and **Cost Data: Needs Setup**. Clicks and impressions tracking is set up when you place your Branch Ad Link in your Liftoff campaigns (see [Create a Branch Ad Link](#create-a-branch-ad-link)). Cost data setup is covered in [Import cost data](#import-cost-data).

(Recommended) To configure the optional **PAM for Publishers** privacy setting, select **Partner settings** to open the **Manage account** dialog and enable the toggle. When enabled, [PAM for Publishers](https://help.branch.io/marketer-hub/predictive-aggregate-measurement.md#pam-for-publishers) removes advertiser-specific user identifiers from postbacks for users who haven't opted in via Apple's App Tracking Transparency (ATT) framework, prioritizing identifiers provided directly by Liftoff.

## Configure attribution

By default, Liftoff uses your global app attribution settings. To set attribution windows specific to Liftoff, enable the **Override global app settings** toggle on the **Attribution windows** tab.

For more information, follow [Configure attribution](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md#configure-attribution) in the general [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

## Configure postbacks

Enabling Liftoff automatically activates postbacks for `INSTALL`, `OPEN`, `PURCHASE`, `ADD_TO_CART`, `INITIATE_PURCHASE`, `VIEW_CART`, `VIEW_ITEM`, and `VIEW_ITEMS`. The default postback URL is:

```
https://analytics.liftoff.io/branch/v1/events?bundle_id=<@loop data=app.app_bundles val="bundle"><#if user_data.os == bundle.os><#if bundle.os=="ANDROID">${(bundle.android.package_name)!}<#elseif bundle.os == "IOS">${(bundle.ios.bundle_id)!}</#if><@break/></#if></@loop>&app_store_id=<@loop data=app.app_bundles val="bundle"><#if user_data.os == bundle.os><#if bundle.os=="ANDROID"><@break/><#elseif bundle.os == "IOS">${(bundle.ios.itunes_id?substring(2))!}</#if><@break/></#if></@loop>&platform=${(user_data.platform)!}&os=${ (user_data.os)! }&device_id={device.hardware_id}&os_version={device.metadata.os_version}&client_ip={event.metadata.ip}&event_name={event.name}&event_timestamp={event.date}&third_party_tracking_token=${ (last_attributed_touch_data.~click_id)! }&is_attributed=<#if (last_attributed_touch_data.$3p)! == (ad_network.machine_name)!>1<#else>0</#if>&idfa=${ (user_data.idfa)! }&gaid=${ (user_data.aaid)! }&is_viewthrough=<#if last_attributed_touch_type == "CLICK">0<#elseif last_attributed_touch_type == "IMPRESSION">1</#if>&product_id=<@urlencode><#if content_items?has_content>[<@loop data=content_items val='attributes'>"${(attributes.$sku)!}"<@sep>,</@sep></@loop>]</#if></@urlencode>&region=${(user_data.geo_region_en)!}&country=${ (user_data.geo_country_code)! }&install_timestamp=<@urlencode><@dateformat output_date_format="TIMESTAMP_SECONDS">${install_activity.timestamp}</@dateformat></@urlencode>&is_reengagement=<#if (reengagement_activity.attributed)?? && reengagement_activity.attributed>1<#else>0</#if>&is_first_event=<#if (first_event_for_user)?? && first_event_for_user>1<#else>0</#if>&do_not_track=<#if (user_data.limit_ad_tracking)! >1<#else>0</#if>&gp_ref_click_ts=${(referrer_click_timestamp)!}&gp_ref_install_ts=${(store_install_begin_timestamp)!}&attribution_source=<#if (last_attributed_touch_data.$3p)?? && ad_network.machine_name?? && (last_attributed_touch_data.$3p)! == (ad_network.machine_name)!>LIFTOFF_SOURCE<#elseif (last_attributed_touch_data.$3p)?? && ad_network.machine_name?? && (last_attributed_touch_data.$3p)! != (ad_network.machine_name)!>EXTERNAL_SOURCE<#else>ORGANIC</#if>&idfv=${ (user_data.idfv)! }&device_brand=${(user_data.brand)!}&device_model=${ (user_data.model)! }&user_agent=${ (user_data.user_agent)! }&language=${ (user_data.language)! }&developer_user_id=${ (user_data.developer_identity)! }&cross_platform_id=${(user_data.cross_platform_id)!}&past_cross_platform_ids=${(user_data.past_cross_platform_ids)!}&cpu_type=${(user_data.cpu_type)!}&connection_type=${(user_data.internet_connection_type)!}&screen_width=${(user_data.screen_width)!}&screen_height=${(user_data.screen_height)!}&sdk_version=${(user_data.sdk_version)!}&carrier=${(user_data.carrier_name)!}&city=${(user_data.geo_city_en)!}
```

To add postbacks for additional events or to customize behavior, follow [Configure postbacks](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md#configure-postbacks) in the general [Ad Partner Integration Guide](https://help.branch.io/marketer-hub/ad-partner-integration-guide-new.md).

## Import cost data

Branch can automatically import cost data from Liftoff via their API. To enable cost data ingestion:

1. Select **Partner settings** to open the **Manage account** dialog.
2. Under **Cost Data Credentials**, enter your Liftoff **API Key** and **API Secret**. Contact your Liftoff account manager if you need help locating these values.
3. Select **Save**.

Once credentials are saved, Branch will begin pulling cost data from Liftoff. Allow up to 24 hours for cost data to appear in Branch after your first import. Cost data is reported in GMT.

## Create a Branch Ad Link

Create a Branch Ad Link to use in your Liftoff campaigns. Branch uses the link to attribute clicks and impressions and deep link users into your app. Placing the Branch Ad Link in your Liftoff campaign will resolve the **Clicks and Impressions: Needs Setup** status shown on the Status tab.

Follow [Create Ad Links](https://help.branch.io/marketer-hub/ad-links-new.md).

## Verify your data

After your integration is connected and events are flowing, you can verify data is reaching Branch:

- **In Branch** [**Liveview**](https://app.branch.io/testing-and-monitoring/events): confirm that events from your app appear in real time. This is the fastest way to confirm SDK events are firing.
- **In Branch** [**Analysis dashboards**](https://help.branch.io/marketer-hub/analysis-dashboards-overview-new.md): review attributed installs and events where `Ad Partner Name = Liftoff`. Cost data will appear in cost-reporting views once ingestion is active.
- **In Liftoff**: confirm that forwarded events are appearing in your Liftoff attribution reporting.

## Data mappings

### Campaign data

Branch populates the following fields from Liftoff campaign data.

| Branch field | Partner data |
| --- | --- |
| `~advertising_partner_name` | `"Liftoff"` (static) |
| `~click_id` | third_party_tracking_token |
