Search in sources :

Example 11 with AdManagerAdRequest

use of com.google.android.gms.ads.admanager.AdManagerAdRequest in project prebid-mobile-android by prebid.

the class UtilTest method testApplyBidsToDFOAdObject.

@Test
public void testApplyBidsToDFOAdObject() throws Exception {
    AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
    builder.addCustomTargeting("Key", "Value");
    HashMap<String, String> bids = new HashMap<>();
    bids.put("hb_pb", "0.50");
    bids.put("hb_cache_id", "123456");
    Util.apply(bids, builder);
    AdManagerAdRequest request = builder.build();
    assertEquals(3, request.getCustomTargeting().size());
    assertEquals("Value", request.getCustomTargeting().get("Key"));
    assertEquals("0.50", request.getCustomTargeting().get("hb_pb"));
    assertEquals("123456", request.getCustomTargeting().get("hb_cache_id"));
    Util.apply(bids, request);
    assertEquals(3, request.getCustomTargeting().size());
    assertEquals("Value", request.getCustomTargeting().get("Key"));
    assertEquals("0.50", request.getCustomTargeting().get("hb_pb"));
    assertEquals("123456", request.getCustomTargeting().get("hb_cache_id"));
    Util.apply(null, request);
    assertEquals(1, request.getCustomTargeting().size());
    assertEquals("Value", request.getCustomTargeting().get("Key"));
}
Also used : HashMap(java.util.HashMap) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) Test(org.junit.Test)

Example 12 with AdManagerAdRequest

use of com.google.android.gms.ads.admanager.AdManagerAdRequest 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);
}
Also used : PbFindSizeError(org.prebid.mobile.addendum.PbFindSizeError) LoadAdError(com.google.android.gms.ads.LoadAdError) CountDownLatch(java.util.concurrent.CountDownLatch) View(android.view.View) AdManagerAdView(com.google.android.gms.ads.admanager.AdManagerAdView) BannerAdUnit(org.prebid.mobile.BannerAdUnit) AdListener(com.google.android.gms.ads.AdListener) OnCompleteListener(org.prebid.mobile.OnCompleteListener) AdManagerAdView(com.google.android.gms.ads.admanager.AdManagerAdView) FrameLayout(android.widget.FrameLayout) AdSize(com.google.android.gms.ads.AdSize) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) ResultCode(org.prebid.mobile.ResultCode) Test(org.junit.Test)

Example 13 with AdManagerAdRequest

use of com.google.android.gms.ads.admanager.AdManagerAdRequest in project prebid-mobile-android by prebid.

the class AdManagerComplexTest method testAdManagerAdRequest.

@Test
public void testAdManagerAdRequest() throws Exception {
    AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
    builder.addCustomTargeting("key1", "value1");
    builder.addCustomTargeting("key2", "value2");
    AdManagerAdRequest adManagerAdRequest1 = builder.build();
    Bundle bundle1 = adManagerAdRequest1.getCustomTargeting();
    assertEquals(2, bundle1.keySet().size());
    assertEquals("value1", bundle1.getString("key1"));
    assertEquals("value2", bundle1.getString("key2"));
    bundle1.remove("key2");
    assertEquals(1, bundle1.keySet().size());
    assertEquals("value1", bundle1.getString("key1"));
    AdManagerAdRequest adManagerAdRequest2 = builder.build();
    Bundle bundle2 = adManagerAdRequest2.getCustomTargeting();
    assertEquals(1, bundle2.keySet().size());
    assertEquals("value1", bundle2.getString("key1"));
}
Also used : Bundle(android.os.Bundle) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) Test(org.junit.Test)

Example 14 with AdManagerAdRequest

use of com.google.android.gms.ads.admanager.AdManagerAdRequest in project prebid-mobile-android by prebid.

the class XandrInterstitialGamDemoActivity 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);
    adUnit = new InterstitialAdUnit(Constants.PBS_CONFIG_ID_INTERSTITIAL_APPNEXUS);
    int millis = getIntent().getIntExtra(Constants.AUTO_REFRESH_NAME, 0);
    adUnit.setAutoRefreshPeriodMillis(millis);
    final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
    adUnit.fetchDemand(builder, new OnCompleteListener() {

        @Override
        public void onComplete(ResultCode resultCode) {
            AdManagerAdRequest request = builder.build();
            AdManagerInterstitialAd.load(XandrInterstitialGamDemoActivity.this, Constants.DFP_INTERSTITIAL_ADUNIT_ID_APPNEXUS, request, new AdManagerInterstitialAdLoadCallback() {

                @Override
                public void onAdLoaded(@NonNull AdManagerInterstitialAd adManagerInterstitialAd) {
                    super.onAdLoaded(adManagerInterstitialAd);
                    adManagerInterstitialAd.show(XandrInterstitialGamDemoActivity.this);
                }

                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    super.onAdFailedToLoad(loadAdError);
                    AlertDialog.Builder builder;
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        builder = new AlertDialog.Builder(XandrInterstitialGamDemoActivity.this, android.R.style.Theme_Material_Dialog_Alert);
                    } else {
                        builder = new AlertDialog.Builder(XandrInterstitialGamDemoActivity.this);
                    }
                    builder.setTitle("Failed to load AdManager interstitial ad").setMessage("Error: " + loadAdError.toString()).setIcon(android.R.drawable.ic_dialog_alert).show();
                }
            });
        }
    });
}
Also used : AlertDialog(androidx.appcompat.app.AlertDialog) LoadAdError(com.google.android.gms.ads.LoadAdError) AdManagerInterstitialAdLoadCallback(com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback) AdManagerInterstitialAd(com.google.android.gms.ads.admanager.AdManagerInterstitialAd) OnCompleteListener(org.prebid.mobile.OnCompleteListener) NonNull(androidx.annotation.NonNull) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) ResultCode(org.prebid.mobile.ResultCode) InterstitialAdUnit(org.prebid.mobile.InterstitialAdUnit)

Example 15 with AdManagerAdRequest

use of com.google.android.gms.ads.admanager.AdManagerAdRequest in project prebid-mobile-android by prebid.

the class RubiconInterstitialGamDemoActivity 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);
    adUnit = new InterstitialAdUnit(Constants.PBS_CONFIG_ID_INTERSTITIAL_RUBICON);
    int millis = getIntent().getIntExtra(Constants.AUTO_REFRESH_NAME, 0);
    adUnit.setAutoRefreshPeriodMillis(millis);
    final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
    adUnit.fetchDemand(builder, new OnCompleteListener() {

        @Override
        public void onComplete(ResultCode resultCode) {
            AdManagerAdRequest request = builder.build();
            AdManagerInterstitialAd.load(RubiconInterstitialGamDemoActivity.this, Constants.DFP_INTERSTITIAL_ADUNIT_ID_RUBICON, request, new AdManagerInterstitialAdLoadCallback() {

                @Override
                public void onAdLoaded(@NonNull AdManagerInterstitialAd adManagerInterstitialAd) {
                    super.onAdLoaded(adManagerInterstitialAd);
                    adManagerInterstitialAd.show(RubiconInterstitialGamDemoActivity.this);
                }

                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    super.onAdFailedToLoad(loadAdError);
                    AlertDialog.Builder builder;
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        builder = new AlertDialog.Builder(RubiconInterstitialGamDemoActivity.this, android.R.style.Theme_Material_Dialog_Alert);
                    } else {
                        builder = new AlertDialog.Builder(RubiconInterstitialGamDemoActivity.this);
                    }
                    builder.setTitle("Failed to load AdManager interstitial ad").setMessage("Error: " + loadAdError.toString()).setIcon(android.R.drawable.ic_dialog_alert).show();
                }
            });
            refreshCount++;
            RubiconInterstitialGamDemoActivity.this.resultCode = resultCode;
        }
    });
}
Also used : AlertDialog(androidx.appcompat.app.AlertDialog) LoadAdError(com.google.android.gms.ads.LoadAdError) AdManagerInterstitialAdLoadCallback(com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback) AdManagerInterstitialAd(com.google.android.gms.ads.admanager.AdManagerInterstitialAd) OnCompleteListener(org.prebid.mobile.OnCompleteListener) NonNull(androidx.annotation.NonNull) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) ResultCode(org.prebid.mobile.ResultCode) InterstitialAdUnit(org.prebid.mobile.InterstitialAdUnit)

Aggregations

AdManagerAdRequest (com.google.android.gms.ads.admanager.AdManagerAdRequest)29 Test (org.junit.Test)17 OnCompleteListener (org.prebid.mobile.OnCompleteListener)13 ResultCode (org.prebid.mobile.ResultCode)13 Bundle (android.os.Bundle)9 MockResponse (okhttp3.mockwebserver.MockResponse)9 HttpUrl (okhttp3.HttpUrl)8 BackgroundThreadExecutor (org.prebid.mobile.tasksmanager.BackgroundThreadExecutor)8 ShadowLooper (org.robolectric.shadows.ShadowLooper)8 NonNull (androidx.annotation.NonNull)7 FrameLayout (android.widget.FrameLayout)6 AdManagerAdView (com.google.android.gms.ads.admanager.AdManagerAdView)6 HashMap (java.util.HashMap)6 HashSet (java.util.HashSet)6 BannerAdUnit (org.prebid.mobile.BannerAdUnit)6 AdListener (com.google.android.gms.ads.AdListener)5 LoadAdError (com.google.android.gms.ads.LoadAdError)5 AdSize (com.google.android.gms.ads.AdSize)4 PbFindSizeError (org.prebid.mobile.addendum.PbFindSizeError)4 AlertDialog (androidx.appcompat.app.AlertDialog)3