Cross-Channel Conversion Optimization

Cross-channel conversion optimization enables you to optimize conversions for both website and app within a single campaign. Selecting a website and app as the places you want conversions to happen captures more data, which may help lower cost per action (CPA) and lead to an increase in conversions.

Here are the top value drivers that resonate with advertisers:

  • Simplicity — Instead of managing multiple campaigns, optimize for website and app within a single campaign
  • More conversions — With more data captured, the chances of showing ads to people who'll convert increases
  • Cost-efficiency — Reach the most people at a lower cost

Get Started

Cross-channel conversion optimization enhances conversions from both your website and app (iOS+ Android) in a single campaign. If an impression leads to a website conversion or an in-app conversion, or both, the product counts all the conversions as optimized events.

Restrictions

Objective

Cross-channel conversion optimization only supports the CONVERSIONS objective.

Events

Cross-channel conversion optimization supports the following events:

  • PURCHASE
  • COMPLETE_REGISTRATION
  • ADD_PAYMENT_INFO
  • ADD_TO_CART
  • INITIATED_CHECKOUT
  • SEARCH
  • CONTENT_VIEW
  • LEAD
  • ADD_TO_WISHLIST
  • SUBSCRIBE 1
  • START_TRIAL 1

Bid Strategy

With or without campaign budget optimization (CBO), cross-channel conversion optimization only supports these bid strategies:

  • LOWEST_COST_WITHOUT_CAP
  • LOWEST_COST_WITH_BID_CAP

Placements

Cross-channel conversion optimization is available for all Instagram and Facebook placements, including Automatic Placements. Exceptions: Audience Network, Messenger, Facebook Instant Article, and Placement Asset Customization.

SUBSCRIBE and START_TRIAL support are currently being considered.

Ad Set

Optimize the delivery of your ads based on an offsite conversions goal, such as OFFSITE_CONVERSIONS, if you configure your pixel to send offsite conversions.

To use cross-channel conversion optimization, set the following fields to their respective values:

  • Optimization goal > Set to OFFSITE_CONVERSIONS.
  • Bid strategy > See Bid Strategy.
  • Billing event > Set to IMPRESSIONS.

Omnichannel Object

We’ve introduced a new field, omnichannel_object, in the Ad Set.

For omnichannel object validation:

  • All custom_event_type fields in the app and pixel must be of the same event.
  • Both app SDK and pixel are required.
  • Current ad accounts must have access to all app- and pixel-promoted objects.
FieldTypeDescription

app

list<AppPromotedObject>

App-promoted objects associated with this omnichannel object.

  • application_id—Type: string. Application ID being promoted.
  • object_store_urls—Type: list<string>. List of object store URLs associated with application_id (Play Store and/or iTunes).
  • custom_event_type—Type: Event enum. Event that will be optimized.

For app-promoted object validation:

  • All object_store_urls must be associated with that application. You can configure this on developers.facebook.com under your application settings.

  • custom_event_type must be one of those supported events.

pixel

list<PixelPromotedObject>

Pixel-promoted objects associated with this omnichannel object.

  • pixel_id—Type: string. Pixel ID being promoted.
  • pixel_rule—Type: JSON. Optional. Pixel custom conversion rule.
  • custom_event_type—Type: Event enum. Event that will be optimized. For app-promoted object validation, custom_event_type must be one of those supported events.

Example

{ 
     daily_budget: 20000, 
     optimization_goal: CONVERSIONS,
     promoted_object: {
         omnichannel_object: { 
             app: [ 
                 { 
                     application_id: ,
                     custom_event_type: PURCHASE,
                     object_store_urls: [
                         "https://play.google.com/store/apps/details?id=com.facebook.ka"
                         "https://apps.apple.com/us/app/facebook/id284882215",
                     ],
                 },
             ],
             pixel:  [
                 {
                     pixel_id,
                     custom_event_type: PURCHASE
                 },
             ],
         }
     }
}

Ad

You can select the desired destination where advertisers want users to land when they click their ad — from a desktop or app. Advertisers are required to insert the corresponding links — website, iOS app deep link, or Android app deep link given the chosen destination option. Learn more about product deep links.

FieldTypeDescription

creative

Creative spec

Required for create. The ID or creative spec of the ad creative is to be used by this ad. Learn more about ad creatives.

{"creative_id": }

or creative spec as follows:

{
   "creative": {
      "name": "",
      "applink_treatment": ""
      "object_story_spec": ,
      "omnichannel_link_spec":
   }
}

tracking_specs

List of tracking spec

Required tracking spec for conversion tracking. For ad validation, see the required specs below and respective example.

For ad validation:

  • The tracking spec's (tracking_specs)pixel_id and application_id must be consistent with those in promoted_object.
  • tracking_specs must include these specs:
Tracking SpecCode Sample

Pixel

{
       "action.type": ["offsite_conversion"],
       "fb_pixel": [pixel_id]
}

App install

{
       "action.type": ["mobile_app_install"],
       "application": [application_id]
}

App event

{
       "action.type": ["app_custom_event"],
       "application": [application_id]
}

Example

{
     "name": "sample ad"
     "adset_id": "6170648652866",
     "creative": {
         "creative_id": creative_id,
    }
    "status": "PAUSED",
    "tracking_specs": [
        {
            "action.type": ["offsite_conversion"],
            "fb_pixel": [pixel_id]
        }
        {
            "action.type": ["mobile_app_install"],
            "application": [application_id]
        }
        {
            "action.type": ["app_custom_event"],
            "application": [application_id]
        }
    ]
}

Creative

Advantage+ Catalog Ads

For Advantage+ catalog ads, template_url_spec can be used to specify deep links in the creative. In this field, you may use dynamic fields such as product URL or ID.

template_url_spec follows this specification.

Example

{
   "creative":{
      "applink_treatment":"deeplink_with_web_fallback",
      "template_url_spec":{
         "android":{
            "url":"example://product/{{product.retailer_id | urlencode}}"
         },
         "config":{
            "app_id":"<APPLICATION_ID>"
         },
         "ios":{
            "url":"example://product/{{product.name | urlencode}}"
         },
         "web":{
            "url":"https://www.example.com/deeplink/{{product.name | urlencode}}"
         }
      }
   },
}

Manual Upload Ads

For manual upload ads, omnichannel_link_spec is used instead of template_url_spec. It includes the following fields:

FieldTypeDescription

web

Web configuration

Pixel-promoted objects associated with this omnichannel object.

  • url—Type: string. Website that the user lands on via the browser. For web validation, url must be the same as the link provided in link_data.

app

App destination configuration

App-promoted objects associated with this omnichannel object.

  • application_id—Type: string. Website that the user lands on via the browser. For web validation, application_id must be consistent as the application_id in omnichannel_object within promoted_object.
  • platform_specs—Type: JSON. Landing destination configuration per the platform.

Platform Specifications

FieldTypeDescription

android

JSON

Landing configuration for Android app. For web validation, ios, ipad, iphone are mutually exclusive. There can only be one of those keys that exist in the platform_specs.

ios

JSON

Landing configuration for iOS app. For web validation, ios, ipad, iphone are mutually exclusive. There can only be one of those keys that exist in the platform_specs.

ipad

JSON

Landing configuration for iPad-only app. For web validation, ios, ipad, iphone are mutually exclusive. There can only be one of those keys that exist in the platform_specs.

iphone

JSON

Landing configuration for iPhone-only app. For web validation, ios, ipad, iphone are mutually exclusive. There can only be one of those keys that exist in the platform_specs.

Example

{
  "applink_treatment": "deeplink_with_web_fallback",
  "omnichannel_link_spec": {
      "web": {
        "url": web_url
      },
      "app": {
        "application_id": application_id,
        "platform_specs": {
          "android": {
            "url": android_deeplink
          }, 
          "ios": {
            "url": ios_deeplink
          }
        }
      }
   },
  "object_story_spec": {
    "instagram_actor_id": "",
    "page_id": "",
    "link_data": {
      "call_to_action": {
        "type": "LEARN_MORE",
      },
      "link": web_url,
      "message": "Purchase now!",
      "name": "Sample creative"
    }
  },
  "object_type": "SHARE"
}