Search in sources :

Example 1 with RewardedAd

use of com.google.android.gms.ads.rewarded.RewardedAd in project mopub-android-mediation by mopub.

the class GooglePlayServicesRewardedVideo method load.

@Override
protected void load(@NonNull final Context context, @NonNull final AdData adData) {
    Preconditions.checkNotNull(context);
    Preconditions.checkNotNull(adData);
    setAutomaticImpressionAndClickTracking(false);
    mContext = context;
    final Map<String, String> extras = adData.getExtras();
    mAdUnitId = extras.get(KEY_EXTRA_AD_UNIT_ID);
    if (TextUtils.isEmpty(mAdUnitId)) {
        MoPubLog.log(getAdNetworkId(), LOAD_FAILED, ADAPTER_NAME, MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR.getIntCode(), MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR);
        if (mLoadListener != null) {
            mLoadListener.onAdLoadFailed(MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR);
        }
        return;
    }
    if (!(context instanceof Activity)) {
        MoPubLog.log(getAdNetworkId(), CUSTOM, ADAPTER_NAME, "Context passed to load " + "was not an Activity.");
        if (mLoadListener != null) {
            mLoadListener.onAdLoadFailed(MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR);
        }
        return;
    }
    final AdRequest.Builder builder = new AdRequest.Builder();
    builder.setRequestAgent("MoPub");
    // Publishers may append a content URL by passing it to the
    // GooglePlayServicesMediationSettings instance when initializing the MoPub SDK:
    // https://developers.mopub.com/docs/mediation/networks/google/#android
    String contentUrl = extras.get(KEY_CONTENT_URL);
    if (TextUtils.isEmpty(contentUrl)) {
        contentUrl = GooglePlayServicesMediationSettings.getContentUrl();
    }
    if (!TextUtils.isEmpty(contentUrl)) {
        builder.setContentUrl(contentUrl);
    }
    forwardNpaIfSet(builder);
    final RequestConfiguration.Builder requestConfigurationBuilder = new RequestConfiguration.Builder();
    // Publishers may request for test ads by passing test device IDs to the
    // GooglePlayServicesMediationSettings instance when initializing the MoPub SDK:
    // https://developers.mopub.com/docs/mediation/networks/google/#android
    String testDeviceId = extras.get(TEST_DEVICES_KEY);
    if (TextUtils.isEmpty(testDeviceId)) {
        testDeviceId = GooglePlayServicesMediationSettings.getTestDeviceId();
    }
    if (!TextUtils.isEmpty(testDeviceId)) {
        requestConfigurationBuilder.setTestDeviceIds(Collections.singletonList(testDeviceId));
    }
    // Publishers may want to indicate that their content is child-directed and
    // forward this information to Google.
    final String isTFCDString = extras.get(TAG_FOR_CHILD_DIRECTED_KEY);
    final Boolean isTFCD;
    if (!TextUtils.isEmpty(isTFCDString)) {
        isTFCD = Boolean.valueOf(isTFCDString);
    } else {
        isTFCD = GooglePlayServicesMediationSettings.isTaggedForChildDirectedTreatment();
    }
    if (isTFCD != null) {
        if (isTFCD) {
            requestConfigurationBuilder.setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE);
        } else {
            requestConfigurationBuilder.setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE);
        }
    } else {
        requestConfigurationBuilder.setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED);
    }
    // Publishers may want to mark their requests to receive treatment for users
    // in the European Economic Area (EEA) under the age of consent.
    final String isTFUAString = extras.get(TAG_FOR_UNDER_AGE_OF_CONSENT_KEY);
    final Boolean isTFUA;
    if (!TextUtils.isEmpty(isTFUAString)) {
        isTFUA = Boolean.valueOf(isTFUAString);
    } else {
        isTFUA = GooglePlayServicesMediationSettings.isTaggedForUnderAgeOfConsent();
    }
    if (isTFUA != null) {
        if (isTFUA) {
            requestConfigurationBuilder.setTagForUnderAgeOfConsent(TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE);
        } else {
            requestConfigurationBuilder.setTagForUnderAgeOfConsent(TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE);
        }
    } else {
        requestConfigurationBuilder.setTagForUnderAgeOfConsent(TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED);
    }
    final RequestConfiguration requestConfiguration = requestConfigurationBuilder.build();
    MobileAds.setRequestConfiguration(requestConfiguration);
    final AdRequest adRequest = builder.build();
    RewardedAd.load(context, mAdUnitId, adRequest, new RewardedAdLoadCallback() {

        @Override
        public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
            Preconditions.checkNotNull(rewardedAd);
            if (mLoadListener != null) {
                mLoadListener.onAdLoaded();
            }
            MoPubLog.log(getAdNetworkId(), LOAD_SUCCESS, ADAPTER_NAME);
            mRewardedAd = rewardedAd;
            mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {

                @Override
                public void onAdImpression() {
                    if (mInteractionListener != null) {
                        mInteractionListener.onAdImpression();
                    }
                }

                @Override
                public void onAdShowedFullScreenContent() {
                    MoPubLog.log(getAdNetworkId(), SHOW_SUCCESS, ADAPTER_NAME);
                    if (mInteractionListener != null) {
                        mInteractionListener.onAdShown();
                    }
                }

                @Override
                public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
                    Preconditions.checkNotNull(adError);
                    MoPubLog.log(getAdNetworkId(), CUSTOM, ADAPTER_NAME, "Failed to show " + "Google rewarded video. " + adError.getMessage());
                    MoPubLog.log(getAdNetworkId(), SHOW_FAILED, ADAPTER_NAME, MoPubErrorCode.FULLSCREEN_SHOW_ERROR.getIntCode(), MoPubErrorCode.FULLSCREEN_SHOW_ERROR);
                    if (mInteractionListener != null) {
                        mInteractionListener.onAdFailed(MoPubErrorCode.FULLSCREEN_SHOW_ERROR);
                    }
                    mRewardedAd = null;
                }

                @Override
                public void onAdDismissedFullScreenContent() {
                    MoPubLog.log(getAdNetworkId(), DID_DISAPPEAR, ADAPTER_NAME);
                    if (mInteractionListener != null) {
                        mInteractionListener.onAdDismissed();
                    }
                    mRewardedAd = null;
                }
            });
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
            Preconditions.checkNotNull(loadAdError);
            MoPubLog.log(getAdNetworkId(), CUSTOM, ADAPTER_NAME, "Failed to load " + "Google rewarded video. " + loadAdError.getMessage());
            MoPubLog.log(getAdNetworkId(), LOAD_FAILED, ADAPTER_NAME, MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR.getIntCode(), MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR);
            MoPubLog.log(getAdNetworkId(), CUSTOM, ADAPTER_NAME, "Failed to load Google " + "interstitial with message: " + loadAdError.getMessage() + ". Caused by: " + loadAdError.getCause());
            if (mLoadListener != null) {
                mLoadListener.onAdLoadFailed(MoPubErrorCode.ADAPTER_CONFIGURATION_ERROR);
            }
            mRewardedAd = null;
        }
    });
    MoPubLog.log(getAdNetworkId(), LOAD_ATTEMPTED, ADAPTER_NAME);
}
Also used : RequestConfiguration(com.google.android.gms.ads.RequestConfiguration) LoadAdError(com.google.android.gms.ads.LoadAdError) Activity(android.app.Activity) RewardedAdLoadCallback(com.google.android.gms.ads.rewarded.RewardedAdLoadCallback) AdRequest(com.google.android.gms.ads.AdRequest) RewardedAd(com.google.android.gms.ads.rewarded.RewardedAd) FullScreenContentCallback(com.google.android.gms.ads.FullScreenContentCallback) NonNull(androidx.annotation.NonNull) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) LoadAdError(com.google.android.gms.ads.LoadAdError) AdError(com.google.android.gms.ads.AdError)

Example 2 with RewardedAd

use of com.google.android.gms.ads.rewarded.RewardedAd in project prebid-mobile-android by prebid.

the class RewardedAdWrapperTest method onAdMetadataChanged_WithMetadataContainsAdEvent_NotifyAppEventListener.

@Test
public void onAdMetadataChanged_WithMetadataContainsAdEvent_NotifyAppEventListener() {
    final RewardedAdLoadCallback rewardedAdLoadCallback = getRewardedAdLoadCallback();
    final RewardedAd mockRewardedAd = mock(RewardedAd.class);
    final Bundle bundle = new Bundle();
    bundle.putString(RewardedAdWrapper.KEY_METADATA, APP_EVENT);
    when(mockRewardedAd.getAdMetadata()).thenReturn(bundle);
    rewardedAdLoadCallback.onAdLoaded(mockRewardedAd);
    verify(mMockListener, times(1)).onEvent(eq(AdEvent.APP_EVENT_RECEIVED));
}
Also used : RewardedAd(com.google.android.gms.ads.rewarded.RewardedAd) Bundle(android.os.Bundle) RewardedAdLoadCallback(com.google.android.gms.ads.rewarded.RewardedAdLoadCallback) Test(org.junit.Test)

Example 3 with RewardedAd

use of com.google.android.gms.ads.rewarded.RewardedAd in project prebid-mobile-android by prebid.

the class RubiconRewardedVideoGamDemoActivity 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)));
    RewardedVideoAdUnit adUnit = new RewardedVideoAdUnit("1001-1");
    adUnit.setParameters(parameters);
    this.adUnit = adUnit;
    final AdManagerAdRequest.Builder builder = new AdManagerAdRequest.Builder();
    adUnit.fetchDemand(builder, new OnCompleteListener() {

        @Override
        public void onComplete(ResultCode resultCode) {
            AdManagerAdRequest request = builder.build();
            RewardedAd.load(RubiconRewardedVideoGamDemoActivity.this, Constants.DFP_REWARDED_ADUNIT_ID_RUBICON, request, new RewardedAdLoadCallback() {

                @Override
                public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
                    super.onAdLoaded(rewardedAd);
                    rewardedAd.show(RubiconRewardedVideoGamDemoActivity.this, new OnUserEarnedRewardListener() {

                        @Override
                        public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                        }
                    });
                }

                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    super.onAdFailedToLoad(loadAdError);
                }
            });
        }
    });
}
Also used : LoadAdError(com.google.android.gms.ads.LoadAdError) OnUserEarnedRewardListener(com.google.android.gms.ads.OnUserEarnedRewardListener) RewardedAdLoadCallback(com.google.android.gms.ads.rewarded.RewardedAdLoadCallback) RewardedVideoAdUnit(org.prebid.mobile.RewardedVideoAdUnit) OnCompleteListener(org.prebid.mobile.OnCompleteListener) RewardedAd(com.google.android.gms.ads.rewarded.RewardedAd) NonNull(androidx.annotation.NonNull) RewardItem(com.google.android.gms.ads.rewarded.RewardItem) VideoBaseAdUnit(org.prebid.mobile.VideoBaseAdUnit) AdManagerAdRequest(com.google.android.gms.ads.admanager.AdManagerAdRequest) ResultCode(org.prebid.mobile.ResultCode)

Example 4 with RewardedAd

use of com.google.android.gms.ads.rewarded.RewardedAd in project prebid-mobile-android by prebid.

the class RewardedAdWrapperTest method onAdMetadataChangedMetadata_ContainsNoAdEvent_DoNothing.

@Test
public void onAdMetadataChangedMetadata_ContainsNoAdEvent_DoNothing() {
    final RewardedAdLoadCallback rewardedAdLoadCallback = getRewardedAdLoadCallback();
    final RewardedAd mockRewardedAd = mock(RewardedAd.class);
    final Bundle bundle = new Bundle();
    when(mockRewardedAd.getAdMetadata()).thenReturn(bundle);
    rewardedAdLoadCallback.onAdLoaded(mockRewardedAd);
    verify(mMockListener, times(0)).onEvent(eq(AdEvent.APP_EVENT_RECEIVED));
}
Also used : RewardedAd(com.google.android.gms.ads.rewarded.RewardedAd) Bundle(android.os.Bundle) RewardedAdLoadCallback(com.google.android.gms.ads.rewarded.RewardedAdLoadCallback) Test(org.junit.Test)

Aggregations

RewardedAd (com.google.android.gms.ads.rewarded.RewardedAd)4 RewardedAdLoadCallback (com.google.android.gms.ads.rewarded.RewardedAdLoadCallback)4 Bundle (android.os.Bundle)2 NonNull (androidx.annotation.NonNull)2 LoadAdError (com.google.android.gms.ads.LoadAdError)2 Test (org.junit.Test)2 Activity (android.app.Activity)1 AdError (com.google.android.gms.ads.AdError)1 AdRequest (com.google.android.gms.ads.AdRequest)1 FullScreenContentCallback (com.google.android.gms.ads.FullScreenContentCallback)1 OnUserEarnedRewardListener (com.google.android.gms.ads.OnUserEarnedRewardListener)1 RequestConfiguration (com.google.android.gms.ads.RequestConfiguration)1 AdManagerAdRequest (com.google.android.gms.ads.admanager.AdManagerAdRequest)1 RewardItem (com.google.android.gms.ads.rewarded.RewardItem)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 OnCompleteListener (org.prebid.mobile.OnCompleteListener)1 ResultCode (org.prebid.mobile.ResultCode)1 RewardedVideoAdUnit (org.prebid.mobile.RewardedVideoAdUnit)1 VideoBaseAdUnit (org.prebid.mobile.VideoBaseAdUnit)1