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

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

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

Ответ 1

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

Ответ 2

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

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

EDIT: Очевидно, что метод MD5 не идеален, и было предложено попробовать fooobar.com/questions/66733/... Мне больше не нужна эта функция, поэтому я не тестировал ее. Удачи!

Ответ 3

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

внутри oncreate

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 "";
    }

Ответ 4

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

общедоступный 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();

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

У меня есть несколько устройств, на которых я тестировался, и не хотел вручную получать 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);
}

Ответ 8

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

Ответ 9

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

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

Ответ 10

  • Опубликован ли ваше приложение в Play Store - с живыми объявлениями:

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

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

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

Режим отладки USB (опция разработчика)

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

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

Идентификатор тестового устройства в logcat

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

Ответ 11

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

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" );

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

Ответ 12

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

SystemInfo.deviceUniqueIdentifier

Ответ 13

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);

Ответ 14

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