2011-04-16 14 views
3

我似乎無法找到任何關於通過XML或Java爲adMob廣告設置關鍵字的堅實文檔。我嘗試了this線程中看到的方法,但在兩方面都失敗了。下面是每個案例的失敗。Android或Admob中的XML或Java關鍵字

當試圖從AdView類使用方法setKeywords(),setSearchQuery()或requestFreshAd()時,它就像Eclipse不認識那些方法是AdView類的一部分。我能不正確地實例化這個類嗎?我的java代碼如下:

import com.google.ads.AdRequest; 
import com.google.ads.AdView; 

AdView adView = (AdView)this.findViewById(R.id.adView); 
    adView.loadAd(new AdRequest()); 

如果我嘗試調用上述方法(例如adView.setKeywords()),Eclipse不會識別這些方法。我究竟做錯了什麼?

當我嘗試通過XML設置關鍵字時,代碼似乎運行正常,但我沒有得到任何有效的添加請求。日誌以「無廣告顯示」消息返回。在這種情況下,我不知道我是不是從我的關鍵字中得到結果,或者我沒有正確設置關鍵字字符串。

下圖描述了我是如何設置通過XML的關鍵字:

...在attrs.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="com.google.ads.AdView"> 
    <attr name="adSize"> 
     <enum name="BANNER" value="1"/> 
     <enum name="IAB_MRECT" value="2"/> 
     <enum name="IAB_BANNER" value="3"/> 
     <enum name="IAB_LEADERBOARD" value="4"/> 
    </attr> 
    <attr name="adUnitId" format="string"/> 
    <attr name="test" format="boolean"/> 
    <attr name="keywords" format="string"/> 
    </declare-styleable> 
</resources> 
在layout.xml

....

<com.google.ads.AdView android:id="@+id/adView" 
     android:layout_width="fill_parent" 
     android:layout_gravity="bottom" 
     android:layout_height="wrap_content" 
     ads:adUnitId="blahblahblhal" 
     ads:adSize="BANNER" 
     ads:test="true" 
     ads:keywords="farts cheese stink pooper"/> 

顯然,這些不是我正在使用的關鍵字,但我設置關鍵字的語法與我一直使用的相同。

如果沒有廣告顯示是因爲我使用的關鍵字過多,語法不當,以及如果我想使用短語而不是關鍵字怎麼辦?我會怎麼做呢?

如果有與此有關的AdMob網站的文檔,我表示歉意。但如果是這樣,他們很難找到。

由於

回答

8

setKeywordsAdRequest類的方法,而不是AdView

AdRequest request = new AdRequest(); 
Set<String> keywords = new HashSet<String>(); 
keywords.add("keyword1"); 
keywords.add("keyword2"); 
request.setKeywords(keywords); 
adView.loadAd(request); 
+0

謝謝。我不認爲有人會回答這個問題。 – dell116 2011-04-27 20:48:53

+1

他們甚至使用關鍵字?我覺得他們實際上沒有做任何事情,但可以在將來使用。不幸的是,我不記得我在哪裏閱讀。 – 2013-03-09 21:47:27

2

Google增加了在Admob SDK 4.1.1版本中將關鍵字指定爲XML屬性的功能(請參見[1]中的發行說明)。不幸的是它沒有記錄,但在[2]中,您可以看到來自Google的迴應,澄清了XML屬性的名稱。正確的屬性是「ads:keywords」,它接受逗號分隔的關鍵字列表。下面是一個例子:

<com.google.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      ads:adUnitId="YOUR_PUBLISHER_ID" 
      ads:adSize="BANNER" 
      ads:loadAdOnCreate="true" 
      ads:keywords="keyword1,keyword2,keyword3" 
/> 

[1] http://code.google.com/mobile/ads/docs/rel-notes.html

[2] http://groups.google.com/group/google-admob-ads-sdk/browse_thread/thread/b9b0b81858234adb