Android Integration Testing

Regardless of Mediation Type

Test mode:
Test mode should be disabled before app release in the store.

Ad request format:
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.

GDPR and consent string:
Both should be passed, more info can be found in User Restriction Parameters.

BidMachine.setConsentConfig(Boolean, String);
BidMachine.setSubjectToGDPR(Boolean);

If you don't have a consent string, you can call the BidMachine.setConsentConfig method just with consent BidMachine.setConsentConfig(true/false, null)

CCPA:
If you are subject to California Consumer Privacy Act that regulates accessing, deleting, sharing and selling personal information, please configure your settings using this CCPA documentation.

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

Network security configuration:
Please use suggested configuration from the documentation (unless otherwise required by specific app settings) to avoid cutting HTTP traffic, which will negatively affect your revenue.

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 the 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 app 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 keywords contain valid price points.

MoPub Example

Body of the request that is fetching an 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 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.

AdManager Example

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

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.