From 87bea4892ec0faa924fb1d5c1a89c8bde097ae27 Mon Sep 17 00:00:00 2001 From: FalsinSoft Date: Sun, 23 Aug 2020 18:15:02 +0200 Subject: [PATCH] Add property for set non personalized ads for AdMob --- Documentation/index.html | 9 ++-- QtAndroidTools/QAndroidAdMobBanner.cpp | 18 +++++++ QtAndroidTools/QAndroidAdMobBanner.h | 4 ++ QtAndroidTools/QAndroidAdMobInterstitial.cpp | 20 +++++++- QtAndroidTools/QAndroidAdMobInterstitial.h | 4 ++ QtAndroidTools/QAndroidAdMobRewardedVideo.cpp | 20 +++++++- QtAndroidTools/QAndroidAdMobRewardedVideo.h | 4 ++ QtAndroidTools/QtAndroidTools.pri | 18 +++++++ .../qtandroidtools/AndroidAdMob.java | 49 +++++++++++++++++++ .../qtandroidtools/AndroidAdMobBanner.java | 3 +- .../AndroidAdMobInterstitial.java | 3 +- .../AndroidAdMobRewardedVideo.java | 7 +-- 12 files changed, 149 insertions(+), 10 deletions(-) create mode 100644 QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java diff --git a/Documentation/index.html b/Documentation/index.html index 38e59cb..1e10a97 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -269,8 +269,9 @@ QtAndroidAdMobBanner { unitId: "admob-banner-unit-id" type: QtAndroidAdMobBanner.TYPE_BANNER keywords: ["keyword_1", "keyword_2", "keyword_3"] + nonPersonalizedAds: false } -

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit. The keywords property is an optional list of keywords needed for better targeting the banner ad. The property type is the banner type you want to show. Possible values are:

+

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit. The keywords property is an optional list of keywords needed for better targeting the banner ad. The nonPersonalizedAds property is optional (default is false). Set this property to true impose to AdMob to don't use collected user personal data for ads targeting. The property type is the banner type you want to show. Possible values are:

TYPE_BANNER
 TYPE_FULL_BANNER
 TYPE_LARGE_BANNER
@@ -317,8 +318,9 @@ android.permission.WRITE_EXTERNAL_STORAGE
QtAndroidAdMobInterstitial {
     id: interstitial
     unitId: "admob-interstitial-unit-id"
+    nonPersonalizedAds: false	
 }
-

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit.

+

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit. The nonPersonalizedAds property is optional (default is false). Set this property to true impose to AdMob to don't use collected user personal data for ads targeting.

This item generate the following signals informing regarding the ad status:

onLoadError
 onLoading
@@ -361,8 +363,9 @@ android.permission.WRITE_EXTERNAL_STORAGE
QtAndroidAdMobRewardedVideo {
     id: rewardedVideo
     unitId: "admob-rewarded-video-unit-id"
+    nonPersonalizedAds: false	
 }
-

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit.

+

The unitId is the string generated when you create a new ad unit inside the AdMob site. It's used to identify the ad connected to your app. Using this id you can know how much you earn from this ad unit. The nonPersonalizedAds property is optional (default is false). Set this property to true impose to AdMob to don't use collected user personal data for ads targeting.

This item generate the following signals informing regarding the ad status:

onRewarded
 onLoadError
diff --git a/QtAndroidTools/QAndroidAdMobBanner.cpp b/QtAndroidTools/QAndroidAdMobBanner.cpp
index 66490a1..9fbf6bb 100644
--- a/QtAndroidTools/QAndroidAdMobBanner.cpp
+++ b/QtAndroidTools/QAndroidAdMobBanner.cpp
@@ -34,6 +34,7 @@ QAndroidAdMobBanner::QAndroidAdMobBanner(QQuickItem *parent) : QQuickItem(parent
                                                                                  QtAndroid::androidActivity().object()),
                                                                m_instanceIndex(m_instancesCounter++),
                                                                m_bannerType(TYPE_NO_BANNER),
+                                                               m_nonPersonalizedAds(false),
                                                                m_bannerShowed(false)
 {
     m_pInstancesMap[m_instanceIndex] = this;
@@ -182,6 +183,23 @@ void QAndroidAdMobBanner::setType(BANNER_TYPE type)
     }
 }
 
+bool QAndroidAdMobBanner::getNonPersonalizedAds() const
+{
+    return m_nonPersonalizedAds;
+}
+
+void QAndroidAdMobBanner::setNonPersonalizedAds(bool npa)
+{
+    if(m_javaAdMobBanner.isValid())
+    {
+        m_javaAdMobBanner.callMethod("setNonPersonalizedAds",
+                                           "(Z)V",
+                                           npa
+                                           );
+        m_nonPersonalizedAds = npa;
+    }
+}
+
 void QAndroidAdMobBanner::screenGeometryChanged(const QRect &geometry)
 {
     Q_UNUSED(geometry)
diff --git a/QtAndroidTools/QAndroidAdMobBanner.h b/QtAndroidTools/QAndroidAdMobBanner.h
index 9ddba42..e88a008 100644
--- a/QtAndroidTools/QAndroidAdMobBanner.h
+++ b/QtAndroidTools/QAndroidAdMobBanner.h
@@ -32,6 +32,7 @@ class QAndroidAdMobBanner : public QQuickItem
     Q_PROPERTY(QString unitId READ getUnitId WRITE setUnitId)
     Q_PROPERTY(BANNER_TYPE type READ getType WRITE setType)
     Q_PROPERTY(QStringList keywords READ getKeywords WRITE setKeywords)
+    Q_PROPERTY(bool nonPersonalizedAds READ getNonPersonalizedAds WRITE setNonPersonalizedAds)
     Q_ENUMS(BANNER_TYPE)
     Q_ENUMS(ERROR_TYPE)
     Q_OBJECT
@@ -68,6 +69,8 @@ public:
     void setType(BANNER_TYPE type);
     const QStringList& getKeywords() const;
     void setKeywords(const QStringList &keywordsList);
+    bool getNonPersonalizedAds() const;
+    void setNonPersonalizedAds(bool npa);
 
     static const QMap& instances();
 
@@ -88,6 +91,7 @@ private:
     static int m_instancesCounter;
     const int m_instanceIndex;
     BANNER_TYPE m_bannerType;
+    bool m_nonPersonalizedAds;
     bool m_bannerShowed;
     QString m_unitId;
     QStringList m_keywordsList;
diff --git a/QtAndroidTools/QAndroidAdMobInterstitial.cpp b/QtAndroidTools/QAndroidAdMobInterstitial.cpp
index 0dc0374..b311f4d 100644
--- a/QtAndroidTools/QAndroidAdMobInterstitial.cpp
+++ b/QtAndroidTools/QAndroidAdMobInterstitial.cpp
@@ -31,7 +31,8 @@ QAndroidAdMobInterstitial::QAndroidAdMobInterstitial(QQuickItem *parent) : QQuic
                                                                            m_javaAdMobInterstitial("com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial",
                                                                                                    "(Landroid/app/Activity;)V",
                                                                                                    QtAndroid::androidActivity().object()),
-                                                                           m_instanceIndex(m_instancesCounter++)
+                                                                           m_instanceIndex(m_instancesCounter++),
+                                                                           m_nonPersonalizedAds(false)
 {
     m_pInstancesMap[m_instanceIndex] = this;
 
@@ -101,6 +102,23 @@ void QAndroidAdMobInterstitial::setUnitId(const QString &unitId)
     }
 }
 
+bool QAndroidAdMobInterstitial::getNonPersonalizedAds() const
+{
+    return m_nonPersonalizedAds;
+}
+
+void QAndroidAdMobInterstitial::setNonPersonalizedAds(bool npa)
+{
+    if(m_javaAdMobInterstitial.isValid())
+    {
+        m_javaAdMobInterstitial.callMethod("setNonPersonalizedAds",
+                                                 "(Z)V",
+                                                 npa
+                                                 );
+        m_nonPersonalizedAds = npa;
+    }
+}
+
 void QAndroidAdMobInterstitial::interstitialEvent(JNIEnv *env, jobject thiz, jint eventId)
 {
     QMapIterator instance(m_pInstancesMap);
diff --git a/QtAndroidTools/QAndroidAdMobInterstitial.h b/QtAndroidTools/QAndroidAdMobInterstitial.h
index 454e00c..b77fe5f 100644
--- a/QtAndroidTools/QAndroidAdMobInterstitial.h
+++ b/QtAndroidTools/QAndroidAdMobInterstitial.h
@@ -30,6 +30,7 @@
 class QAndroidAdMobInterstitial : public QQuickItem
 {
     Q_PROPERTY(QString unitId READ getUnitId WRITE setUnitId)
+    Q_PROPERTY(bool nonPersonalizedAds READ getNonPersonalizedAds WRITE setNonPersonalizedAds)
     Q_ENUMS(ERROR_TYPE)
     Q_OBJECT
 
@@ -50,6 +51,8 @@ public:
 
     const QString& getUnitId() const;
     void setUnitId(const QString &unitId);
+    bool getNonPersonalizedAds() const;
+    void setNonPersonalizedAds(bool npa);
 
     static const QMap& instances();
 
@@ -65,6 +68,7 @@ private:
     static QMap m_pInstancesMap;
     static int m_instancesCounter;
     const int m_instanceIndex;
+    bool m_nonPersonalizedAds;
     QString m_unitId;
 
     enum EVENT_TYPE
diff --git a/QtAndroidTools/QAndroidAdMobRewardedVideo.cpp b/QtAndroidTools/QAndroidAdMobRewardedVideo.cpp
index e20e1ee..ffe12dc 100644
--- a/QtAndroidTools/QAndroidAdMobRewardedVideo.cpp
+++ b/QtAndroidTools/QAndroidAdMobRewardedVideo.cpp
@@ -31,7 +31,8 @@ QAndroidAdMobRewardedVideo::QAndroidAdMobRewardedVideo(QQuickItem *parent) : QQu
                                                                              m_javaAdMobRewardedVideo("com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo",
                                                                                                       "(Landroid/app/Activity;)V",
                                                                                                       QtAndroid::androidActivity().object()),
-                                                                             m_instanceIndex(m_instancesCounter++)
+                                                                             m_instanceIndex(m_instancesCounter++),
+                                                                             m_nonPersonalizedAds(false)
 {
     m_pInstancesMap[m_instanceIndex] = this;
 
@@ -98,6 +99,23 @@ void QAndroidAdMobRewardedVideo::setUnitId(const QString &unitId)
     m_unitId = unitId;
 }
 
+bool QAndroidAdMobRewardedVideo::getNonPersonalizedAds() const
+{
+    return m_nonPersonalizedAds;
+}
+
+void QAndroidAdMobRewardedVideo::setNonPersonalizedAds(bool npa)
+{
+    if(m_javaAdMobRewardedVideo.isValid())
+    {
+        m_javaAdMobRewardedVideo.callMethod("setNonPersonalizedAds",
+                                                  "(Z)V",
+                                                  npa
+                                                  );
+        m_nonPersonalizedAds = npa;
+    }
+}
+
 void QAndroidAdMobRewardedVideo::rewardedVideoReward(JNIEnv *env, jobject thiz, jstring type, jint amount)
 {
     QMapIterator instance(m_pInstancesMap);
diff --git a/QtAndroidTools/QAndroidAdMobRewardedVideo.h b/QtAndroidTools/QAndroidAdMobRewardedVideo.h
index d6ecb1c..d77cfc8 100644
--- a/QtAndroidTools/QAndroidAdMobRewardedVideo.h
+++ b/QtAndroidTools/QAndroidAdMobRewardedVideo.h
@@ -30,6 +30,7 @@
 class QAndroidAdMobRewardedVideo : public QQuickItem
 {
     Q_PROPERTY(QString unitId READ getUnitId WRITE setUnitId)
+    Q_PROPERTY(bool nonPersonalizedAds READ getNonPersonalizedAds WRITE setNonPersonalizedAds)
     Q_ENUMS(ERROR_TYPE)
     Q_OBJECT
 
@@ -50,6 +51,8 @@ public:
 
     const QString& getUnitId() const;
     void setUnitId(const QString &unitId);
+    bool getNonPersonalizedAds() const;
+    void setNonPersonalizedAds(bool npa);
 
     static const QMap& instances();
 
@@ -69,6 +72,7 @@ private:
     static QMap m_pInstancesMap;
     static int m_instancesCounter;
     const int m_instanceIndex;
+    bool m_nonPersonalizedAds;
     QString m_unitId;
 
     enum EVENT_TYPE
diff --git a/QtAndroidTools/QtAndroidTools.pri b/QtAndroidTools/QtAndroidTools.pri
index e675064..243de3d 100644
--- a/QtAndroidTools/QtAndroidTools.pri
+++ b/QtAndroidTools/QtAndroidTools.pri
@@ -93,6 +93,12 @@ contains(DEFINES, QTAT_ADMOB_BANNER) {
         copy_admob_banner.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMobBanner.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
         PRE_TARGETDEPS += copy_admob_banner
         QMAKE_EXTRA_TARGETS += copy_admob_banner
+        !contains(QMAKE_EXTRA_TARGETS, copy_admob) {
+            copy_admob.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
+            PRE_TARGETDEPS += copy_admob
+            QMAKE_EXTRA_TARGETS += copy_admob
+            OTHER_FILES += $$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java
+        }
         !contains(QMAKE_EXTRA_TARGETS, copy_sync_run_on_ui_thread) {
             copy_sync_run_on_ui_thread.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/SyncRunOnUiThread.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
             PRE_TARGETDEPS += copy_sync_run_on_ui_thread
@@ -108,6 +114,12 @@ contains(DEFINES, QTAT_ADMOB_INTERSTITIAL) {
         copy_admob_interstitial.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
         PRE_TARGETDEPS += copy_admob_interstitial
         QMAKE_EXTRA_TARGETS += copy_admob_interstitial
+        !contains(QMAKE_EXTRA_TARGETS, copy_admob) {
+            copy_admob.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
+            PRE_TARGETDEPS += copy_admob
+            QMAKE_EXTRA_TARGETS += copy_admob
+            OTHER_FILES += $$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java
+        }
         !contains(QMAKE_EXTRA_TARGETS, copy_sync_run_on_ui_thread) {
             copy_sync_run_on_ui_thread.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/SyncRunOnUiThread.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
             PRE_TARGETDEPS += copy_sync_run_on_ui_thread
@@ -123,6 +135,12 @@ contains(DEFINES, QTAT_ADMOB_REWARDED_VIDEO) {
         copy_admob_rewarded_video.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
         PRE_TARGETDEPS += copy_admob_rewarded_video
         QMAKE_EXTRA_TARGETS += copy_admob_rewarded_video
+        !contains(QMAKE_EXTRA_TARGETS, copy_admob) {
+            copy_admob.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
+            PRE_TARGETDEPS += copy_admob
+            QMAKE_EXTRA_TARGETS += copy_admob
+            OTHER_FILES += $$PWD/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java
+        }
         !contains(QMAKE_EXTRA_TARGETS, copy_sync_run_on_ui_thread) {
             copy_sync_run_on_ui_thread.commands = $(COPY_FILE) $$shell_path($$PWD/src/com/falsinsoft/qtandroidtools/SyncRunOnUiThread.java) $$shell_path($$ANDROID_PACKAGE_SOURCE_DIR/src/com/falsinsoft/qtandroidtools/)
             PRE_TARGETDEPS += copy_sync_run_on_ui_thread
diff --git a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java
new file mode 100644
index 0000000..2add9d7
--- /dev/null
+++ b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMob.java
@@ -0,0 +1,49 @@
+/*
+ *	MIT License
+ *
+ *	Copyright (c) 2018 Fabio Falsini 
+ *
+ *	Permission is hereby granted, free of charge, to any person obtaining a copy
+ *	of this software and associated documentation files (the "Software"), to deal
+ *	in the Software without restriction, including without limitation the rights
+ *	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ *	copies of the Software, and to permit persons to whom the Software is
+ *	furnished to do so, subject to the following conditions:
+ *
+ *	The above copyright notice and this permission notice shall be included in all
+ *	copies or substantial portions of the Software.
+ *
+ *	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ *	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ *	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ *	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ *	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ *	SOFTWARE.
+ */
+
+package com.falsinsoft.qtandroidtools;
+
+import com.google.ads.mediation.admob.AdMobAdapter;
+import com.google.android.gms.ads.AdRequest;
+import android.os.Bundle;
+
+public class AndroidAdMob
+{
+    private boolean mNonPersonalizedAds = false;
+
+    public void setNonPersonalizedAds(boolean npa)
+    {
+        mNonPersonalizedAds = npa;
+    }
+
+    protected void setExtraOptions(AdRequest.Builder builder)
+    {
+        if(mNonPersonalizedAds)
+        {
+            final Bundle extras = new Bundle();
+            extras.putString("npa", "1");
+            builder.addNetworkExtrasBundle(AdMobAdapter.class, extras);
+        }
+    }
+}
diff --git a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobBanner.java b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobBanner.java
index 1f90450..e3edbb2 100644
--- a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobBanner.java
+++ b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobBanner.java
@@ -39,7 +39,7 @@ import android.graphics.Rect;
 import android.widget.FrameLayout;
 import android.graphics.Color;
 
-public class AndroidAdMobBanner
+public class AndroidAdMobBanner extends AndroidAdMob
 {
     private final Activity mActivityInstance;
     private final ViewGroup mViewGroup;
@@ -168,6 +168,7 @@ public class AndroidAdMobBanner
                             bannerRequest.addKeyword(keyword);
                         }
                     }
+                    setExtraOptions(bannerRequest);
                     mBannerView.loadAd(bannerRequest.build());
 
                     bannerEvent(EVENT_LOADING);
diff --git a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial.java b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial.java
index df449ac..ebddadb 100644
--- a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial.java
+++ b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobInterstitial.java
@@ -38,7 +38,7 @@ import android.graphics.Rect;
 import android.widget.FrameLayout;
 import android.graphics.Color;
 
-public class AndroidAdMobInterstitial
+public class AndroidAdMobInterstitial extends AndroidAdMob
 {
     private final Activity mActivityInstance;
     private final InterstitialListener mInterstitialListener;
@@ -82,6 +82,7 @@ public class AndroidAdMobInterstitial
             public void run()
             {
                 AdRequest.Builder interstitialRequest = new AdRequest.Builder();
+                setExtraOptions(interstitialRequest);
                 mInterstitialAd.loadAd(interstitialRequest.build());
                 interstitialEvent(EVENT_LOADING);
                 mInterstitialAdLoaded = false;
diff --git a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo.java b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo.java
index 210f107..3bae402 100644
--- a/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo.java
+++ b/QtAndroidTools/src/com/falsinsoft/qtandroidtools/AndroidAdMobRewardedVideo.java
@@ -34,7 +34,7 @@ import android.content.Context;
 import android.os.Bundle;
 import android.util.Log;
 
-public class AndroidAdMobRewardedVideo
+public class AndroidAdMobRewardedVideo extends AndroidAdMob
 {
     private final Activity mActivityInstance;
     private final RewardedVideoListener mRewardedVideoListener;
@@ -44,7 +44,6 @@ public class AndroidAdMobRewardedVideo
     public AndroidAdMobRewardedVideo(Activity activityInstance)
     {
         mRewardedVideoListener = new RewardedVideoListener();
-        MobileAds.initialize(activityInstance);
         mActivityInstance = activityInstance;
     }
 
@@ -62,7 +61,9 @@ public class AndroidAdMobRewardedVideo
             @Override
             public void run()
             {
-                mRewardedVideoAd.loadAd(finalUnitId, new AdRequest.Builder().build());
+                AdRequest.Builder rewardedVideoRequest = new AdRequest.Builder();
+                setExtraOptions(rewardedVideoRequest);
+                mRewardedVideoAd.loadAd(finalUnitId, rewardedVideoRequest.build());
                 rewardedVideoEvent(EVENT_LOADING);
             }
         });