저는 Eclipse를 사용하여 Android 용 애플리케이션을 개발하고 있으며 Admob을 통합하여 돈을 벌고 싶습니다. 튜토리얼에서 ID를 찾으려면 LogCat을 봐야한다고하지만 어디에 있습니까?
테스트 모드 또는 리얼 모드에서 실행하면 가끔 일식이 광고가 반환되었음을 알리지 만 emu에는 표시되지 않습니다. 누구든지 설명 할 수 있습니까?
답변
에뮬레이터에서 AdMob 광고를 실행하는 경우 ID가 없습니다. AdManager 메소드를 사용하고 logcat이 말하는 것처럼 TEST_EMULATOR로 설정하면됩니다. USB 디버깅으로 실제 장치에서 실행하고 logcat을 보면 ID가 표시됩니다.
답변
허용 된 답변은 에뮬레이터 또는 일부 장치에서만 테스트하는 경우 작동하지만 과다한 장치에서 테스트하는 경우 실행중인 장치의 장치 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
}
Android ID의 md5를 사용해야하며 대문자 여야합니다. 다음은 내가 사용한 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 더 이상이 기능이 필요하지 않으므로 테스트하지 않았습니다. 행운을 빕니다!
답변
문서에서 Google Ads와 유사한 것 :
public AdRequest.Builder addTestDevice (문자열 deviceId)
기기가 테스트 광고를 받도록합니다. deviceId는
새 광고를 만든 후 logcat 출력을 확인하여 얻을 수 있습니다 . 에뮬레이터의 경우 DEVICE_ID_EMULATOR를 사용합니다.
예를 들어 LogCat에 표시된 내 테스트 장치 ID는 "B86BC9402A69B031A516BC57F7D3063F"
다음과 같습니다.
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("B86BC9402A69B031A516BC57F7D3063F")
.build();
답변
- Play 스토어에 게시 된 앱이다 – 라이브 광고 :
앱이 라이브 광고를 보여주는 Play 스토어에있는 경우 (실시간 광고를 테스트에 사용할 수 없음) 코드에 기기 ID를 추가하여 실제 기기의 Admob에서 테스트 광고를 가져옵니다. 개발 또는 테스트 중에는 라이브 광고를 사용하지 마십시오.
logcat에서 실제 장치 ID를 얻으려면
- USB 디버그 모드의 기기를 Android Studio에 연결
-
기기에서 Admob의 라이브 광고를 표시하는 앱을 엽니 다 . 연결된 기기에서 Play 스토어에서 앱을 다운로드 한 경우 (라이브 광고 표시) 해당 앱을 열거 나 라이브 Admob 광고를 표시하는 다른 앱을 엽니 다. 장치가 인터넷에 연결되어 있어야합니다.
-
테스트 장치를 얻으려면 아래와 같이 ‘장치’로 logcat을 필터링하십시오.
읽기 장치에 AdMob 광고 테스트 – 장치 ID는 변경할 수 있습니다 이상
답변
해시 장치 ID를 얻으려면
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 "";
}
답변
XML 레이아웃을 사용하여 광고를 표시하고 레이아웃 XML 파일에 이미 “ads : testDevices =”가있는 경우 AdMob은 LogCat 출력에 “To get test ads on this device …”메시지를 인쇄하지 않습니다. 그것을 꺼내면 LogCat 메시지가 표시됩니다.
다음은 LogCat에서 장치 ID를 찾는 방법에 대한 멋진 자습서입니다.
http://webhole.net/2011/12/02/android-sdk-tutorial-get-admob-test-device-id/
답변
실제 기기에서 앱을 테스트하는 경우 기기 ID를 제공하는이 작은 Android 앱을 사용해 볼 수 있습니다.
https://play.google.com/store/apps/details?id=pe.go_com.admobdeviceidfinder&hl=ko
해시 된 장치 ID를 직접 얻을 수 있습니다. 도움이 되었기를 바랍니다.