Как я могу получить идентификатор устройства для Admob - PullRequest
88 голосов
/ 24 декабря 2010

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

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

Ответы [ 13 ]

98 голосов
/ 08 августа 2013

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

Следующий код превратит текущее работающее устройство в тестовое устройство 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 "";
}

РЕДАКТИРОВАТЬ: Очевидно, что метод MD5 не совершенен, и было предложено попробовать https://stackoverflow.com/a/21333739/2662474 Мне больше не нужна эта функция, поэтому я не тестировал. Удачи!

94 голосов
/ 24 декабря 2010

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

16 голосов
/ 03 сентября 2014

Нечто похожее на 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();
13 голосов
/ 09 июля 2014

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

внутри существующего

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 "";
    }
10 голосов
/ 27 августа 2017
  • Ваше приложение опубликовано в магазине Play - с живой рекламой :

Если ваше приложение находится в магазине Play и показывает живую рекламу - вы не можете использовать живую рекламу для тестирования - добавьте свой код устройства в код, чтобы получать тестовые объявления от Admob на вашем реальном устройстве. Никогда не используйте живую рекламу во время разработки или тестирования.

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

  1. Подключение устройства в режиме отладки USB к Android Studio

USB debug mode(Developer option)

  1. Откройте любое приложение на вашем устройстве, которое показывает живую рекламу от Admob: На подключенном устройстве, если ваше приложение загружено из магазина Play (показывает живую рекламу), откройте это приложение или откройте его. любое другое приложение, которое показывает живую рекламу Admob. Ваше устройство должно иметь подключение к Интернету.

  2. Отфильтруйте logcat с помощью «устройства», как показано ниже, чтобы получить тестовое устройство

Test Device ID in logcat

Чтение Admob тестирование рекламы на устройстве - идентификаторы устройств могут измениться для более

7 голосов
/ 06 марта 2015

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

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

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

7 голосов
/ 27 декабря 2012

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

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

5 голосов
/ 16 февраля 2016

Еще один самый простой способ показа тестовых объявлений - использовать идентификатор тестового устройства для баннера, чтобы показывать тестовые объявления admob для всех устройств ." ca-app-pub-3940256099942544/6300978111 ".Этот рекламный идентификатор AdMob был отмечен в учебнике по Google AdBob: ссылка .Это цитата из приведенной выше ссылки: enter image description here

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

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

4 голосов
/ 26 июля 2017

Работает следующим образом:

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.

enter image description here

.addTestDevice («поставить идентификатор здесь»);

Я надеюсь, что помогло;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...