Как получить идентификатор устройства для Admob

Я использую Eclipse для разработки приложений для Android, и я хочу интегрировать Admob для зарабатывания денег. В учебнике говорится, что я должен следить за LogCat, чтобы найти идентификатор, но где он? Alt text

Когда я запускаю либо тестовый режим, либо реальный режим, иногда eclipse будет уведомлять, что объявления вернулись, но это не отображается в emu … может ли кто-нибудь объяснить?

Solutions Collecting From Web of "Как получить идентификатор устройства для Admob"

Если вы используете объявления admob на эмуляторе, то идентификатор отсутствует. Просто используйте метод AdManager и установите его в TEST_EMULATOR, как говорит logcat. Если вы запускаете фактическое устройство с отладкой usb и смотрите лог-код, там появится ID.

Принятые ответы будут работать, если вы тестируете только эмулятор или на нескольких устройствах, но если вы тестируете множество устройств, вам могут потребоваться некоторые средства для пропорционального добавления идентификатора устройства работающего устройства.

Следующий код будет делать текущее запущенное устройство в тестовом устройстве adview программным путем

... if(YourApplication.debugEnabled(this)) //debug flag from somewhere that you set { String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = md5(android_id).toUpperCase(); mAdRequest.addTestDevice(deviceId); boolean isTestDevice = mAdRequest.isTestDevice(this); Log.v(TAG, "is Admob Test Device ? "+deviceId+" "+isTestDevice); //to confirm it worked } 

Вам нужно использовать md5 идентификатора Android, и он должен быть в верхнем регистре. Вот код md5, который я использовал

 public static final String md5(final String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest .getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { String h = Integer.toHexString(0xFF & messageDigest[i]); while (h.length() < 2) h = "0" + h; hexString.append(h); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { Logger.logStackTrace(TAG,e); } return ""; } 

Чтобы получить идентификатор устройства Hash Device

Внутри thecreate

 String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = md5(android_id).toUpperCase(); Log.i("device id=",deviceId); 

Затем добавьте этот класс для md5 ()

 public String md5(String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest.getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i=0; i<messageDigest.length; i++) hexString.append(Integer.toHexString(0xFF & messageDigest[i])); return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } 

Что-то похожее на Google Ads, из документации:

Public AdRequest.Builder addTestDevice (String deviceId)

Заставляет устройство получать тестовые объявления. DeviceId можно получить, просмотрев вывод logcat после создания нового объявления. Для эмуляторов используйте DEVICE_ID_EMULATOR.

Например, идентификатор тестового устройства, отображаемый в LogCat, – "B86BC9402A69B031A516BC57F7D3063F" :

 AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("B86BC9402A69B031A516BC57F7D3063F") .build(); 

Если вы показываете рекламу с использованием макета XML, и если у вас уже есть «ads: testDevices =» в XML-файле макета, AdMob НЕ будет печатать сообщение «Получить тестовые объявления на этом устройстве …» в выводе LogCat. Возьмите это, и вы увидите сообщение LogCat.

Вот хороший учебник по поиску идентификатора устройства в LogCat: http://webhole.net/2011/12/02/android-sdk-tutorial-get-admob-test-device-id/

Если вы тестируете свое приложение на самом устройстве, вы можете попробовать это небольшое приложение для Android, которое даст вам идентификатор устройства:

https://play.google.com/store/apps/details?id=pe.go_com.admobdeviceidfinder&hl=en

Вы получите идентификатор хэшированного устройства напрямую. Надеюсь это поможет.

Если вы не получите его в logcat, просто поместите любой идентификатор устройства и загрузите объявления и запустите свое приложение, а затем перейдите в журнал, вы получите его как этот I/Ads: Use AdRequest.Builder.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXX") to get test ads on this device. После этого положите его и запустите приложение снова.

Еще один простой способ показать тестовые объявления – использовать идентификатор тестового устройства для баннера, чтобы показывать рекламные объявления admob для всех устройств . « Ca-app-pub-3940256099942544/6300978111 ». Этот идентификатор adob test ads был отмечен в учебном пособии google: link . Это цитата из приведенной выше ссылки: Введите описание изображения здесь

  • Это идентификатор тестового устройства для межстраничного « ca-app-pub-3940256099942544/1033173712 ». Это также использовалось в межстраничном учебнике

У меня есть несколько устройств, на которых я тестировался, и не хотел вручную получать идентификатор DeviceID для каждого из них. Ответы здесь, чтобы программно получить DeviceID, не работали для меня (отсутствующие нули), из-за которых объявления показывались вместо тестовых объявлений.

Я поместил это в свой класс приложения onCreate, а затем открыл deviceId, используя метод getter, чтобы он мог быть доступен во всем.

 @Override public void onCreate() { super.onCreate(); String androidId = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); deviceId = MD5(androidId).toUpperCase(); } public static String getDeviceId() { return deviceId; } private static String deviceId; 

И метод MD5;

 public String MD5(String md5) { try { java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5"); byte[] array = md.digest(md5.getBytes()); StringBuffer sb = new StringBuffer(); for (int i = 0; i < array.length; ++i) { sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3)); } return sb.toString(); } catch (java.security.NoSuchAlgorithmException e) { } return null; } 

Затем, используя это, когда я создаю объект AdRequest:

 if(BuildConfig.DEBUG) { AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice(Application.getDeviceId()) .build(); adView.loadAd(adRequest); } else { AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); adView.loadAd(adRequest); } 

Я использую Unity 5.2, могу ли я использовать следующее свойство, чтобы получить идентификатор устройства? Это правильный идентификатор?

SystemInfo.deviceUniqueIdentifier

App: build.gradle

 dependencies { ... compile 'com.google.firebase:firebase-ads:10.0.1' ... } 

Ваша деятельность:

  AdRequest.Builder builder = new AdRequest.Builder(); if(BuildConfig.DEBUG){ String android_id = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); String deviceId = io.fabric.sdk.android.services.common.CommonUtils.md5(android_id).toUpperCase(); builder.addTestDevice(deviceId); } AdRequest adRequest = builder.build(); adView.loadAd(adRequest); 

Работает так:

 InterstitialAd mInterstitial = new InterstitialAd(this); mInterstitial.setAdUnitId("your id"); AdRequest adRequest = new AdRequest.Builder() .addTestDevice("some words") .build(); mInterstitial.loadAd(adRequest); 

После запуска приложения … Зайдите в Logcat, поставленный в Verbose, помещенный в поле поиска AdRequest, поэтому устройство id показывает donw.

Введите описание изображения здесь

.addTestDevice («введите здесь id»);

Надеюсь, я помог;

Просто зайдите в приложение Store Store и загрузите Device ID, чтобы получить идентификатор устройства и скопировать его в свой код. Привет, счастливое кодирование 🙂