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
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.
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.
Charles screenshots were made based on MoPub SDK version 5.13.1.
Google AdManager Example
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.
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.
Charles screenshots were made based on AdManager SDK version 19.2.0.
AdMob Example
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.
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.
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.
Updated 9 months ago