2011-04-16 3 views
3

Je n'arrive pas à trouver de documentation solide sur la définition de mots-clés pour les annonces adMob via XML ou Java. J'ai essayé les méthodes vues dans le fil this, mais j'ai échoué dans les deux cas. Mes échecs pour chaque cas sont ci-dessous. Lorsque vous essayez d'utiliser les méthodes setKeywords(), setSearchQuery() ou requestFreshAd() de la classe AdView, c'est comme si Eclipse ne reconnaissait pas que ces méthodes faisaient partie de la classe AdView. Pourrais-je instancier cette classe incorrectement? Mon code java est ci-dessous:Mots-clés XML ou Java sous Android pour Admob

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

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

Si je tente d'appeler les méthodes ci-dessus, Eclipse ne reconnaît pas les méthodes (par exemple adView.setKeywords().). Qu'est-ce que je fais mal?

Lorsque je tente de définir les mots-clés via XML, le code semble fonctionner correctement, mais je ne reçois aucune demande valide pour un ajout. Le journal renvoie le message "Aucune annonce à afficher". Dans ce cas, je ne sais pas si je n'obtiens pas un résultat de mes mots clés ou si je ne définis pas correctement la chaîne de mots-clés.

Ce qui suit illustre la façon dont je les mots-clés via la mise en XML:

... dans 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"/> 

Évidemment, ce ne sont pas les mots-clés que j'utilise, mais la syntaxe par laquelle je mets les mots-clés est la même que celle que j'ai utilisée.

S'il n'y a pas d'annonce à afficher, est-ce parce que j'utilise trop de mots-clés, une syntaxe incorrecte, et si je veux utiliser une phrase au lieu d'un mot-clé? Comment ferais-je cela?

S'il existe une documentation sur le site AdMob à ce sujet, je présente mes excuses. Mais si c'est le cas, ils l'ont rendu très difficile à trouver.

Merci

Répondre

8

setKeywords est une méthode de la classe AdRequest, pas AdView.

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

Merci. Je ne pensais pas que quelqu'un allait répondre à cette question. – dell116

+1

Sont-ils même des mots-clés utilisés? J'avais l'impression qu'ils ne faisaient rien, mais qu'ils pourraient être utilisés à l'avenir. Je ne me souviens pas où j'ai lu ça, malheureusement. –

2

Google a ajouté la possibilité de spécifier des mots-clés comme un attribut XML dans la version 4.1.1 du SDK Admob (voir Notes de version dans [1]). Malheureusement, il n'est pas documenté, mais dans [2] vous pouvez voir une réponse de Google qui clarifie le nom de l'attribut XML. L'attribut correct est "ads: keywords" et accepte une liste de mots-clés séparés par des virgules. Voici un exemple:

<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