use of org.prebid.mobile.addendum.PbFindSizeError in project prebid-mobile-android by prebid.
the class AdManagerComplexTest method testRubiconDFPBannerResizeSanityAppCheckTest.
// 30x250 -> 728x90
@Test
public void testRubiconDFPBannerResizeSanityAppCheckTest() throws Exception {
final CountDownLatch lock = new CountDownLatch(1);
PrebidMobile.setPrebidServerHost(Host.RUBICON);
PrebidMobile.setPrebidServerAccountId(Constants.PBS_ACCOUNT_ID_RUBICON);
PrebidMobile.setStoredAuctionResponse("1001-rubicon-300x250");
TestActivity activity = testActivityRule.getActivity();
final IntegerWrapper firstTransactionCount = new IntegerWrapper();
final IntegerWrapper secondTransactionCount = new IntegerWrapper();
final int transactionFailRepeatCount = 5;
final int screenshotDelayMillis = 3_000;
final int transactionFailDelayMillis = 3_000;
final FrameLayout adFrame = activity.findViewById(R.id.adFrame);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
adFrame.removeAllViews();
}
});
final AdManagerAdView dfpAdView = new AdManagerAdView(activity);
// Programmatic fix
dfpAdView.setAdUnitId("/5300653/test_adunit_pavliuchyk_300x250_puc_ucTagData_prebid-server.rubiconproject.com");
dfpAdView.setAdSizes(new AdSize(300, 250));
// Targeting creative
/*
dfpAdView.setAdUnitId("/5300653/Banner_PUC_b397711");
dfpAdView.setAdSizes(new AdSize(300, 250), new AdSize(728, 90));
*/
final BannerAdUnit bannerAdUnit = new BannerAdUnit(Constants.PBS_CONFIG_ID_300x250_RUBICON, 300, 250);
final AdManagerAdRequest request = new AdManagerAdRequest.Builder().build();
final OnCompleteListener completeListener = new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
dfpAdView.loadAd(request);
}
};
dfpAdView.setAdListener(new AdListener() {
private void notifyResult() {
lock.countDown();
}
private void update(boolean isSuccess) {
if (isSuccess) {
if (firstTransactionCount.value != -1) {
firstTransactionCount.value = -1;
PrebidMobile.setStoredAuctionResponse("1001-rubicon-300x50");
bannerAdUnit.fetchDemand(request, completeListener);
} else if (secondTransactionCount.value != -1) {
secondTransactionCount.value = -1;
notifyResult();
}
} else {
try {
Thread.sleep(transactionFailDelayMillis);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (firstTransactionCount.value != -1) {
if (firstTransactionCount.value > transactionFailRepeatCount - 2) {
fail("first Transaction Count == " + transactionFailRepeatCount);
} else {
// repeat
firstTransactionCount.value++;
bannerAdUnit.fetchDemand(request, completeListener);
}
} else if (secondTransactionCount.value != -1) {
if (secondTransactionCount.value > transactionFailRepeatCount - 2) {
fail("second Transaction Count == " + transactionFailRepeatCount);
} else {
// repeat
secondTransactionCount.value++;
bannerAdUnit.fetchDemand(request, completeListener);
}
} else {
fail("Unexpected");
}
}
}
@Override
public void onAdLoaded() {
super.onAdLoaded();
// Programmatic fix
AdViewUtils.findPrebidCreativeSize(dfpAdView, new AdViewUtils.PbFindSizeListener() {
@Override
public void success(final int width, final int height) {
dfpAdView.setAdSizes(new AdSize(width, height));
final View child = dfpAdView.getChildAt(0);
child.setBackgroundColor(Color.RED);
dfpAdView.post(new Runnable() {
@Override
public void run() {
float density = dfpAdView.getResources().getDisplayMetrics().density;
double dpW = Math.ceil(child.getMinimumWidth() / density);
double dpH = Math.ceil(child.getMinimumHeight() / density);
try {
Thread.sleep(screenshotDelayMillis);
} catch (InterruptedException e) {
e.printStackTrace();
}
assertEquals((int) dpW, width);
assertEquals((int) dpH, height);
update(true);
}
});
}
@Override
public void failure(PbFindSizeError error) {
LogUtil.w("failure:" + error.getDescription());
update(false);
}
});
// Targeting creative
/*
try {
Thread.sleep(screenshotDelayMillis);
} catch (InterruptedException e) {
e.printStackTrace();
}
update(true);
*/
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
LogUtil.w("onAdFailedToLoad:" + loadAdError);
update(false);
}
});
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
adFrame.addView(dfpAdView);
}
});
bannerAdUnit.fetchDemand(request, completeListener);
// TravisCI fix
Thread.sleep(2 * transactionFailRepeatCount * transactionFailDelayMillis + 2 * screenshotDelayMillis);
try {
Thread.sleep(screenshotDelayMillis);
} catch (InterruptedException e) {
e.printStackTrace();
}
assertEquals(-1, firstTransactionCount.value);
assertEquals(-1, secondTransactionCount.value);
}
use of org.prebid.mobile.addendum.PbFindSizeError in project prebid-mobile-android by prebid.
the class RubiconBannerGamDemoActivity method onCreate.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
PrebidMobile.setPrebidServerHost(Host.RUBICON);
PrebidMobile.setPrebidServerAccountId(Constants.PBS_ACCOUNT_ID_RUBICON);
PrebidMobile.setStoredAuctionResponse(Constants.PBS_STORED_RESPONSE_300x250_RUBICON);
String adSizeName = getIntent().getStringExtra(Constants.AD_SIZE_NAME);
int width = 0;
int height = 0;
String[] wAndH = adSizeName.split("x");
width = Integer.valueOf(wAndH[0]);
height = Integer.valueOf(wAndH[1]);
adUnit = new BannerAdUnit(Constants.PBS_CONFIG_ID_300x250_RUBICON, width, height);
BannerBaseAdUnit.Parameters parameters = new BannerBaseAdUnit.Parameters();
parameters.setApi(Arrays.asList(Signals.Api.MRAID_2));
adUnit.setParameters(parameters);
// pre GAM v20.0
// final PublisherAdView amBanner = new PublisherAdView(this);
final AdManagerAdView amBanner = new AdManagerAdView(this);
amBanner.setAdUnitId(Constants.DFP_BANNER_ADUNIT_ID_300x250_RUBICON);
amBanner.setAdSizes(new AdSize(width, height));
FrameLayout adFrame = findViewById(R.id.adFrame);
adFrame.removeAllViews();
adFrame.addView(amBanner);
amBanner.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
AdViewUtils.findPrebidCreativeSize(amBanner, new AdViewUtils.PbFindSizeListener() {
@Override
public void success(int width, int height) {
amBanner.setAdSizes(new AdSize(width, height));
}
@Override
public void failure(@NonNull PbFindSizeError error) {
Log.d("MyTag", "error: " + error);
}
});
}
});
// pre GAM v20.0
// final PublisherAdRequest.Builder builder = new PublisherAdRequest.Builder();
final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
// region PrebidMobile Mobile API 1.0 usage
int millis = getIntent().getIntExtra(Constants.AUTO_REFRESH_NAME, 0);
adUnit.setAutoRefreshPeriodMillis(millis);
adUnit.fetchDemand(builder, new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
// pre GAM v20.0
// PublisherAdRequest request = builder.build();
AdManagerAdRequest request = builder.build();
amBanner.loadAd(request);
refreshCount++;
RubiconBannerGamDemoActivity.this.resultCode = resultCode;
}
});
}
use of org.prebid.mobile.addendum.PbFindSizeError in project prebid-mobile-android by prebid.
the class RubiconBannerVideoGamDemoActivity method onCreate.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
PrebidMobile.setPrebidServerHost(Host.RUBICON);
PrebidMobile.setPrebidServerAccountId(Constants.PBS_ACCOUNT_ID_RUBICON);
PrebidMobile.setStoredAuctionResponse(Constants.PBS_STORED_RESPONSE_VAST_RUBICON);
VideoBaseAdUnit.Parameters parameters = new VideoBaseAdUnit.Parameters();
parameters.setMimes(Arrays.asList("video/mp4"));
parameters.setProtocols(Arrays.asList(Signals.Protocols.VAST_2_0));
// parameters.setProtocols(Arrays.asList(new Signals.Protocols(2)));
parameters.setPlaybackMethod(Arrays.asList(Signals.PlaybackMethod.AutoPlaySoundOff));
// parameters.setPlaybackMethod(Arrays.asList(new Signals.PlaybackMethod(2)));
parameters.setPlacement(Signals.Placement.InBanner);
// parameters.setPlacement(new Signals.Placement(2));
VideoAdUnit adUnit = new VideoAdUnit("1001-1", 300, 250);
adUnit.setParameters(parameters);
this.adUnit = adUnit;
final AdManagerAdView amBanner = new AdManagerAdView(this);
amBanner.setAdUnitId(Constants.DFP_VAST_ADUNIT_ID_RUBICON);
amBanner.setAdSizes(new AdSize(300, 250));
FrameLayout adFrame = findViewById(R.id.adFrame);
adFrame.removeAllViews();
adFrame.addView(amBanner);
amBanner.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
AdViewUtils.findPrebidCreativeSize(amBanner, new AdViewUtils.PbFindSizeListener() {
@Override
public void success(int width, int height) {
amBanner.setAdSizes(new AdSize(width, height));
}
@Override
public void failure(@NonNull PbFindSizeError error) {
Log.d("MyTag", "error: " + error);
}
});
}
});
final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
// region PrebidMobile Mobile API 1.0 usage
int millis = getIntent().getIntExtra(Constants.AUTO_REFRESH_NAME, 0);
adUnit.setAutoRefreshPeriodMillis(millis);
adUnit.fetchDemand(builder, new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
AdManagerAdRequest request = builder.build();
amBanner.loadAd(request);
}
});
}
use of org.prebid.mobile.addendum.PbFindSizeError in project prebid-mobile-android by prebid.
the class XandrBannerGamDemoActivity method onCreate.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
PrebidMobile.setPrebidServerHost(Host.APPNEXUS);
PrebidMobile.setPrebidServerAccountId(Constants.PBS_ACCOUNT_ID_APPNEXUS);
BannerAdUnit adUnit = new BannerAdUnit(Constants.PBS_CONFIG_ID_300x250_APPNEXUS, 300, 250);
BannerBaseAdUnit.Parameters parameters = new BannerBaseAdUnit.Parameters();
parameters.setApi(Arrays.asList(Signals.Api.MRAID_2));
// parameters.setApi(Arrays.asList(new Signals.Api(5)));
adUnit.setParameters(parameters);
this.adUnit = adUnit;
// Util.enableAdditionalFunctionality(this.adUnit);
final AdManagerAdView amBanner = new AdManagerAdView(this);
amBanner.setAdUnitId(Constants.DFP_BANNER_ADUNIT_ID_ALL_SIZES_APPNEXUS);
amBanner.setAdSizes(new AdSize(300, 250));
FrameLayout adFrame = findViewById(R.id.adFrame);
adFrame.removeAllViews();
adFrame.addView(amBanner);
amBanner.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
AdViewUtils.findPrebidCreativeSize(amBanner, new AdViewUtils.PbFindSizeListener() {
@Override
public void success(int width, int height) {
amBanner.setAdSizes(new AdSize(width, height));
}
@Override
public void failure(@NonNull PbFindSizeError error) {
Log.d("MyTag", "error: " + error);
}
});
}
});
final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
// region PrebidMobile Mobile API 1.0 usage
int millis = getIntent().getIntExtra(Constants.AUTO_REFRESH_NAME, 0);
adUnit.setAutoRefreshPeriodMillis(millis);
adUnit.fetchDemand(builder, new OnCompleteListener() {
@Override
public void onComplete(ResultCode resultCode) {
AdManagerAdRequest request = builder.build();
amBanner.loadAd(request);
}
});
}
Aggregations