Advanced Bidding

Advanced Bidding is the complete reimagination of header bidding for the mobile app environment. It’s designed to help publishers more efficiently monetize their inventory by replacing the traditional ad waterfall with simultaneous real-time bidding (RTB) from ad networks and DSPs. For more information, visit the Advanced Bidding page. For a list of participating ad networks, please see our Supported Mediation Partners.

Participate in Advanced Bidding

All full platform publishers are eligible to participate in Advanced Bidding. Please see our Supported Mediation Partners page for participating ad networks. To request access to Alpha and Beta networks, please reach out to your MoPub account team or file a ticket via our Support Center.

Minimum Technical Requirements for Advanced Bidding

The following are the minimum technical requirements for enabling Advanced Bidding.

  • Integrate MoPub SDK version 5.5+.
  • Integrate the latest certified network SDK and adapters.

We strongly recommend you also review your Advanced Bidding network’s requirements and best practices for app bidding integrations before getting started.

Step 1. Initialize Your Network SDKs

Ensure that all networks using Advanced Bidding are initialized as early as possible. This means doing so “outside of the MoPub integration”; that is, before MoPub is initialized, for sufficient lead time to generate a successful bid.

The following is a generalized approach to initializing networks outside of MoPub:

  1. On app launch, identify where the app initializes MoPub, and preface it a couple of lines. This is where you will initialize the network SDKs.

  2. Call the corresponding initialization API from the network SDK to initialize it, and pass in any parameters or IDs as necessary.

  3. Once the network finishes initializing, after a predefined wait time, initialize MoPub.

  4. Once the MoPub finishes initializing via the completion callback (Android / iOS / Unity), make the ad request.

Below we use AdColony as our example, but all Advanced Bidding networks must be initialized this way. If you have questions about a specific network, please reach out to your account team.

  • Android:
    // Define the AdColony app and zone IDs you want to initialize with
    String appId = "your_adcolony_app_id";

    String[] zoneIds = {"rewardedZoneId", "interstitialZoneId"};

    // Initialize the AdColony SDK with the above IDs
    AdColony.configure(this, appId, zoneIds);

    // Initialize MoPub
  MoPub.initializeSdk(this, configBuilder.build(), initSdkListener());          
  • iOS:
    // Define the AdColony app and zone IDs you want to initialize with
    NSString * appId = @"your_app_id";
    NSArray * allZoneIds = [NSArray arrayWithObjects:@"rewardedZoneId",@"interstitialZoneId"];
    NSString * userId = @"your_user_id";

    // Initialize the AdColony ZSDK with the above IDs
    [AdColonyController initializeAdColonyCustomEventWithAppId:appId allZoneIds:allZoneIds userId:userId callback:^{
         // Initialize the MoPub SDK
         [[MoPub sharedInstance] initializeSdkWithConfiguration:sdkConfig completion:^{
         }];
    }];
  • Unity:

    • If you’re using the Unity MoPub Manager Prefab to initialize MoPub automatically please refer to the section about network configuration settings here.

    • If you’re using manual initialization via code:

        private void Start()
        {
             MoPub.InitializeSdk(new MoPub.SdkConfiguration {
                  // Define the AdColony app and zone IDs you want to initialize with
                  MediatedNetworks = new MoPub.MediatedNetwork[]
                  {
                       new MoPub.SupportedNetwork.AdColony
                       {
                            NetworkConfiguration = new Dictionary<string,string> {
                                 { "appId", YOUR_APP_ID_STRING },
                                 { "allZoneIds", YOUR_JSON_ARRAY_OF_ZONE_IDS }
                            },
                       },
                  },
             });
    
             /* Here, listen to OnSdkInitializedEvent to know when the MoPub SDK finishes initializing. 
             Keep in mind that AdColony, while it will initialize with your IDs passed in, 
             might take a different amount of time compared to MoPub to initialize. 
             OnSdkInitializedEvent cannot be used as a signal for that. */
        }
    

    Below is an example for AdColony

              MediatedNetworks = new MoPub.MediatedNetwork[] 
              {
                  new MoPub.SupportedNetwork.AdColony 
                  {
                      NetworkConfiguration = new Dictionary<string,string> 
                      {
                          { "appId", "appe848f49f11984cf2b4" }, 
                          { "allZoneIds", "[\"vz5d7604a506824f42a5\",\"vzd347c1f0d82044b5b6\"]" }
                      }
                  }
              }
    

For AdColony Advanced Bidding on Android, you must follow an additional step, as instructed here.

Step 2. Verify you’re using the Supported Network Connection

All Advanced Bidding networks will need to be set up via a supported network connection. Follow the instructions below to verify your connection.

  1. Ensure you are on a supported setup in the Networks tab of the MoPub UI. Supported networks are labeled “SDK Network” in the Implementation column, whereas unsupported network setups are labeled “Custom SDK.” If yours is labeled “Custom SDK,” please follow these instructions to migrate to the supported connection.

    Note: You can use the same network placement IDs on the supported instance.

  2. Confirm that you are using the supported MoPub adapters in your project (iOS, Android, Unity.

Step 3. Enable Advanced Bidding

Once you have confirmed you are on the supported network connection, you can set up Advanced Bidding.

  1. Navigate to the ad unit(s) for which you want to set up Advanced Bidding. Then select the Advanced Bidding tab.

    Advanced Bidding Line Item

  2. If you are enabling Advanced Bidding for the first time, select Enable Advanced Bidding. Otherwise, select *Manage Bidders

  3. Select a Starting Priority for Advanced Bidding. We recommend enabling Advanced Bidding at priority 1 to allow for the most competition. The Advanced Bidding line item will compete at and below the starting priority you set.

  4. Switch your desired networks for Advanced Bidding to On and add your network IDs. These settings can be accessed in the future by clicking the Manage Bidders button within the Advanced Bidding tab.
    • Understand what network IDs to use by clicking the links below. Please contact the network if you have any questions.
  5. Under MoPub Marketplace, select fullscreen and display video preferences. These settings are additive to the account level settings. Settings may apply to all Advanced Bidders, not just the Marketplace. To ensure you are receiving the full funnel of demand from Advanced Bidders, we recommend allowing all creative formats and both skippable and non-skippable video.

    Marketplace content settings

Step 4. Follow Advanced Bidding Best Practices

For a successful integration, follow our recommended checklist for a healthy waterfall setup:

  1. All Advanced Bidding networks must be set up via the supported network instance in the MoPub UI. Traditional Marketplace and network line items may remain live in the waterfall and will be used to monetize users who have not updated to an app version that includes the Advanced Bidding SDKs.

  2. When setting price floors, enter the lowest value you will accept for your ad unit. If you do not create a pricefloor than the default price floor of $0.01 will be applied to all Advanced Bidding networks and the Marketplace.

  3. Keep your waterfall structure for non-Advanced Bidding networks the same.

  4. Enable Auto CPM for supported non-bidding networks. This ensures for the fairest competition from networks that aren’t submitting a real-time price.

  5. Once you have created the Advanced Bidding line item, inform your MoPub account team, and they will review your set up prior to going live.

Step 5. Test Your Advanced Bidding Integration

Test your Advanced Bidding integration using a test ad unit before enabling Advanced Bidding on your production ad units. To make testing easy, MoPub will allowlist your test ad units so they can return test ads from our Advanced Bidding partners to ensure that you have fill while testing.

Important: Never integrate test ad units into a production version of your app.

Test your integration via Charles Proxy. If you are unfamiliar with Charles Proxy, your account team will provide you with setup instructions.

Note: Verizon and Pangle don’t support MoPub test mode.

Create a Test Ad Unit

  1. In the Apps tab, create a new app for each platform, named “Advanced Bidding [OS] Testing” (for example: “Advanced Bidding iOS Testing” or “Advanced Bidding Android Testing”).

  2. Create one ad unit for each ad format you plan to take live in the Beta. We support all formats from each network.

  3. Target the Advanced Bidding Beta line items you already created to your newly created ad units by navigating to the line item in the MoPub UI, clicking Edit line item, and choosing your new ad unit in the Ad unit targeting section.

  4. Contact your MoPub account team to have your ad units allowlisted for Advanced Bidding test mode.

Testing Instructions

  1. Start Charles Proxy and set up focused hosts by navigating to ViewFocused HostsAdd. Filter for MoPub requests via focused hosts as shown:

    Filter for MoPub Requests

  2. Select the Focused option to begin using Focused Hosts.

    Select Focused

  3. Make an ad request. Navigate to the Request JSON Text and verify that the ad request is passing the advanced bidding token, passed via the abt parameter in the request.

    AB Token

  4. Verify that the MoPub SDK version is 5.5+. The MoPub SDK version is passed in the nv parameter.

    Verify MoPub Version

  5. Confirm that the request is using Advanced Bidding. Check this by navigating to the ad request Response JSON Text and verifying that the adm field is passed.

    Verify Advanced Bidding

    Note: If your ad requests are not making it down far enough in the waterfall to reach the advanced bidders, contact your account team and we can provide instructions to force line items to serve via Charles rewrites.

  6. Show the ad to ensure that it renders and tracks correctly. You will see the MoPub impression tracker fire if the impression was tracked. The MoPub impression tracker looks like this: ads.mopub.com/m/imp.

    Show Ad and Verify Impression Tracker

Last updated January 12, 2021

TWITTER, MOPUB, and the Bird logo are trademarks of Twitter, Inc. or its affiliates. All third party logos and trademarks included are the property of their respective owners.

© 2020 MoPub (a division of Twitter, Inc.)