33

After updating Google Ads SDK to 19.0.0 gives a deprecated warning message for addTestDevice(), while I searched this link for resolving the issue but not succeed. how can I resolve it?

Here my code

mAdView.loadAd(new RequestConfiguration.Builder
       .setTestDeviceIds(AdRequest.DEVICE_ID_EMULATOR) // show error
       .setTestDeviceIds(DEV_ID) // show error
       .build());

and developer site suggestion

Deprecated AdRequest.Builder.addTestDevice(). Use RequestConfiguration.Builder.setTestDeviceIds() instead.

hata
  • 11,633
  • 6
  • 46
  • 69
Attaullah
  • 3,856
  • 3
  • 48
  • 63

4 Answers4

79

I did like this:

List<String> testDevices = new ArrayList<>();
testDevices.add(AdRequest.DEVICE_ID_EMULATOR);

RequestConfiguration requestConfiguration
    = new RequestConfiguration.Builder()
        .setTestDeviceIds(testDevices)
        .build();
MobileAds.setRequestConfiguration(requestConfiguration);

AdView adView = new AdView(context);
// ... invoke some methods of adView ...
adView.loadAd(new AdRequest.Builder().build());

The official reference says that a RequestConfiguration is the global configuration that will be used for every AdRequest. In my understanding, once you have setRequestConfiguration(), your AdRequests individually don't need to set test devices anymore.

hata
  • 11,633
  • 6
  • 46
  • 69
  • is RequestConfiguration is required in every Activity? – Attaullah Mar 05 '20 at 13:04
  • 1
    @Attaullah Yes, I think so. Because AdView's argument is Activity's Context. But I have no idea about the word 'Global' explicitly means either an Activity-wide or an Application-wide. – hata Mar 06 '20 at 07:05
  • 1
    If I true understand the RequestConfiguration is required once in the first Activity. – TimWeb Mar 19 '20 at 10:37
  • 1
    Notice that according the Developers Page: "Android emulators are automatically configured as test devices."" – Armando Marques da S Sobrinho Apr 14 '20 at 02:10
  • I used this configuration at MainActivity and all ads in different activties now have a black "Test Ad" box. So this configuration can be set only once. – maniek099 May 01 '20 at 14:13
  • I do not if another way would with the ConsentInformation object like ConsentInformation.getInstance(applicationContext).addTestDevice("XXX") ? – Billyjoker May 06 '20 at 14:42
4

If you use Android Emulators there is no need to setTestDeviceIds() method because emulators are automatically configured as test devices .

But if you use a real devices or other emulators as a test device you must use it

List<String> testDeviceIds = Arrays.asList("33BE2250B43518CCDA7DE426D04EE231");
RequestConfiguration configuration =
    new RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build();
MobileAds.setRequestConfiguration(configuration);   

To get the Device ID Check the logcat output for a message that looks like the one below, which shows you your device ID and how to add it as a test device:

I/Ads: Use RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
to get test ads on this device."

Source :

Mohamed Ben Romdhane
  • 1,005
  • 3
  • 11
  • 22
2

I do it like this in my MainActivity's onCreate function:

val testDeviceIds = listOf("MY DEVICE ID")
val config = RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build()
MobileAds.setRequestConfiguration(config)
MobileAds.initialize(this)
Jim
  • 1,027
  • 1
  • 10
  • 19
1
  String testDeviceId = "xxx";

final RequestConfiguration.Builder requestConfigurationBuilder = new RequestConfiguration.Builder(); 

requestConfigurationBuilder.setTestDeviceIds(Collections.singletonList(testDeviceId)).build();

final RequestConfiguration requestConfiguration = requestConfigurationBuilder.build();

MobileAds.setRequestConfiguration(requestConfiguration);

adLoader.loadAd(new AdRequest.Builder().build());
Aashif Ahamed
  • 1,143
  • 1
  • 9
  • 21
sorry.chou
  • 11
  • 1