2012-03-09 3 views
1

AdWhirl과 AdMob을 사용하여 Android 앱에 광고를 통합하려고합니다.AdMob via AdWhirl : 광고를 게재 할 공간이 충분하지 않습니다. Wants : 480, 75, Has : 320, 52

애드 월 사이트를 사용하는 나에게 다음 코드를 주었다

AdWhirlLayout adWhirlLayout = (AdWhirlLayout) findViewById(R.id.layoutAdWhirl); 

int diWidth = 320; 
int diHeight = 52; 
int density = (int) getResources().getDisplayMetrics().density; 

int scaledWidth = (int) (diWidth * density); 
int scaledHeight = (int) (diHeight * density); 

adWhirlLayout.setAdWhirlInterface(this); 
adWhirlLayout.setMaxWidth(scaledWidth); 
adWhirlLayout.setMaxHeight(scaledHeight); 

이 내 에뮬레이터의 일부에 잘 작동하지만 좀 더 작은 이상 에뮬레이터를하려고 할 때, 나는 로그 캣에서 다음과 같은 오류가 발생합니다 :

Not enough space to show ad! Wants: 480, 75, Has: 320, 52 

적절한 크기의 광고를 요청하기 위해 코드를 사용하지만 그 광고를 표시하지 않으면 어떻게해야합니까? 여기 가지의

답변

5

커플 :

  1. AdMob의 광고가 광고를 보여 320x50 크기의 밀도 독립적 픽셀이 필요합니다. 모든 안드로이드 장치, 심지어 오래된 소형 장치도 이러한 사양을 충족합니다. 소형 240x400 픽셀 전화기는 저밀도이므로 1px = 0.75dp이므로 320dp 세로 모드로 광고를 표시 할 수 있습니다. 귀하의 작은 에뮬레이터는 아마 그들이 작은 (낮은 픽셀 수),하지만 에뮬레이터가 320dp 넓지 않은 중간 또는 높은 밀도를 가지고 같은 상태에 있습니다. 에뮬레이터 설정을 확인하십시오.이 장치는 모든 장치를 대표하지 않을 수 있습니다.

  2. 위의 코드는 최대 너비와 최대 높이를 계산할 필요가 없습니다. xml이 AdWhirlView 320x52dp 크기 (또는 더 선호하는 경우 wrap_content)를 제공하는 한이 값을 수동으로 계산하기 위해 장치 밀도를 잡을 필요가 없습니다.

UPDATE :

나는 새로운 이론이있다. AdMob SDK Wants: 480, 75이 320x50dip에 1.5를 곱해서 고밀도 기기에서 실행 중임을 나타내는 오류가 표시됩니다. 그러나, 코드의 단편 다음 adWhirlLayout의

int density = (int) getResources().getDisplayMetrics().density; 

는 1 내지 1.5 주조되므로 최대 폭 및 높이를 잘못 320x52 픽셀로 설정 하였다. 이것은 0.75 밀도가 0으로 캐스팅 되었기 때문에 저밀도 장치에서도 문제가되었을 수 있습니다. 중간 밀도 장치에서 작동했을 수도 있습니다.

AdWhirl 설명서는 약간 구식이지만 int density 대신 float density이라고 말했을 것입니다.

+0

스케일 밀도는 1 (mdpi 장치, 매우 일반적)이므로 scaledWidth 및 scaledHeight는 320 x 50입니다. 장치의 너비는 480 픽셀이었고 xml은 "fill_parent"였습니다. setMaxWidth() 및 setMaxHeight() 호출을 주석 처리하면 오류가 사라집니다 ... 여전히 API가 굉장하다고 생각합니다 ... 정확히 내 솔루션은 아니지만 옵션 # 2가 문제를 해결해야한다고 생각합니다. 이 대답을 수락합니다. –

+0

나는 그것을 이해했다고 생각합니다. 아마도 1.5 밀도 인 WVGA800 에뮬레이터를 사용하고 있었을 것입니다. 그러나 위의 코드는 뷰를 너무 작게 만들면서 1로 캐스팅했습니다. 내 대답을 업데이트했습니다. –

+0

@ Eric : 당신이 말하는 말이 정확합니다. 그냥 아주 강한 문제를 추가하자면 경고 할 때 "광고를 게재 할 공간이 충분하지 않습니다!"라는 경고가 표시됩니다. 요청은 onReceiveAd가 성공적으로 표시되지 않은 것으로 간주되며 중재 계층 (이 경우 AdWhirl)에서 제공하는 백필 체인을 깨뜨리고 있습니다. – Lisitso

관련 문제