iOS Integration Testing

Regardless of Mediation Type

Correct bundle ID

For Android apps, bundle ID will be in text format (eg. com.abc.android) For iOS apps, it should be in numeric format reflecting ID from the store URL according to this documentation (eg. 1231231231) @"stid" --> Numeric store id identifier (NSString)

GDPR and consent string

Both should be passed, more info can be found in User Restriction Parameters BDMUserRestrictions *restriction = [BDMSdk sharedSdk].restrictions; restriction.subjectToGDPR = true/false; restriction.consentString = ""; If you don't have consent string you can execute restriction.hasConsent only with consent restriction.hasConsent = true/false

COPPA

COPPA with 'true' value should only be used for children's apps subject to COPPA rules. In all other cases, please use 'false' value by deafult, as this will affect future performance.

Network security configuration

Please use the suggested configuration from the documentation in order to avoid HTTP traffic cutting which will negatively affect revenue, if not required otherwise by specific app settings.

To achieve the best performance results, please make sure that only one request with no price floor is made for one impression opportunity per ad type.

Third-party mediation tools (MoPub, AdMob, AdManager)

Line items

We strongly recommend implementing our suggested automated line item setup.

However, if you prefer to set up your custom logic, please make sure that you have created at least 30 line items and distributed them evenly inside waterfall: line items should be placed at the top, middle, and bottom of the waterfall. We recommend a price gap of 0.5$/1$ for fullscreen ads and 0.1$/0.2$ for banners. Line items will serve as place holders for BidMachine response prices and will not cause latency.

Please confirm your setup with your integration account manager prior to release.

Keywords:

Keywords should be passed in every request.

Check third-party requests, find the keywords field (name of the field may vary by network), and make sure that the transmitted keywords match those in the request.

MoPub Example

11831183

In this example, you can see two BidMachine line items with prices of 5.0 and 1.0. Each of them has "Keyword targeting" with "bm_pf:5.0" and "bm_pf:1.0" respectively.

328328 318318

Body of the request that is fetching the ad from MoPub server must contain the "q" parameter with a comma-separated list of keywords. Keywords must include the keyword "bm_pf:".

If keywords are specified correctly, the response should contain a BidMachine LineItem with a valid class name in the "x-custom-event-class-name" field.

10721072

Charles screenshots were made based on MoPub SDK version 5.13.1.

Google AdManager Example

980980

In this example. you can see two BidMachine line items with prices of 5.0 and 1.0. Each of them has "Custom targeting" with "bm_pf" - "5.0" and "bm_pf" - "1.0" respectively.

420420 420420

Also, BidMachine line items' type should be specified as "Price priority".

Body of the request that is fetching an ad from Google server must contain the "cust_params" parameter with a list of keywords separated by "&". Keywords must include the keyword "bm_pf=".

If the keywords are specified correctly and BidMachine won the mediation, the response should contain a BidMachine creative.

12951295

Charles screenshots were made based on AdManager SDK version 19.2.0.

AdMob Example

535535

In this example, you can see two BidMachine line items with prices of 5.0 and 1.0. Each of them has "Parameter" with "{"bm_pf":"5.0"}" and "{"bm_pf":"1.0"}" respectively.

170170 180180

Body of the response of request that is fetching an ad from Google server must contain BidMachine LineItem with a valid class name in the "class_name" field and price point in the "parameter" field.

10691069

Charles screenshots were made based on AdMob SDK version 19.2.0.

When BidMachine item reaches its turn to be loaded - you should see the following message in the logs: "BidMachineCustomEventBanner: Fetched request resolved". It means that BidMachine item started loading the ad.