Neues AdMob SDK - war jemand erfolgreich?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von ko5tik, 20.03.2011.

  1. ko5tik, 20.03.2011 #1
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Hallo alle,

    Ich versuche gerade mit dem neuen GoogleAdMobSDK, mit mäßigen Erfolg

    Ich gave meinen AdView definitert:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <com.google.ads.AdView xmlns:android="http://schemas.android.com/apk/res/android"
                           xmlns:colors="http://schemas.android.com/apk/res/de.pribluda.games.android.colors"
                           android:id="@+id/ad"
                           android:visibility="visible"
                           android:layout_width="fill_parent"
                           android:layout_height="wrap_content"
                           android:layout_alignParentTop="true"
                           colors:adUnitId="hier den richtigehn Publisher-Id setzen"
                           colors:adSize="1"
            />
    
    Attributen habe ich brav in meinen attrs.xml definiert:
    Code:
    
        <!-- attempt to passs value to adview -->
        <declare-styleable name="com.google.ads.AdView">
            <attr name="adUnitId" format="string"/>
             <attr name="adSize" format="integer"/>     
        </declare-styleable>
    
    
    Jetzt wird nicht mehr geschimpft über Fehlende Attributen, aber auch keine Werbung angezeigt...

    Hat es jemand mit Hilfe von XML-AdView geschafft?

    Dank im Voraus
     
    Zuletzt bearbeitet: 21.03.2011
  2. ko5tik, 20.03.2011 #2
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Nachtrag: mann muss jetzt die Banner wohl selber bestellen:

    Code:
            // TODO: this sucks....
            // fire up ad display
            AdView av = (AdView) findViewById(R.id.highscoreAd);
            av.loadAd(new AdRequest());
    
    Irgendwie ist es ziemliche Fummelei...
     
    wilco bedankt sich.
  3. ko5tik, 21.03.2011 #3
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Zusammenfassung:

    Neues SDK ist kleiner ( 98K anstatt 138K ) - positiv, like
    Programierung notwendig - this sucks, aber noch mehr Einstellungsmöglichkeiten
    Konfiguration anders - neutral ( Nicht mehr im Manifest, dafür Site-ID separat pro AdView einstelbar )
    Dokumanetation ist suboptimal und lasst sich nicht googeln - aber das ist man von Google gewöht ;)
     
  4. miha, 21.03.2011 #4
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Mich interessiert nach kurzem Überfliegen der Seite:

    Geht es mit Android 1.5 und 1.6? (Im Forum schreibt jemand von Crashes!) Ich habe deutlich mehr 1.5/1.6 User laut Statistics als der Durchschnitt.

    Funktioniert es mit Proguard? (Ich vermute man muss nur die richtigen Sachen noch zur cfg dazutun was derjenige mit Problemen im Forum nicht hinbekommen/versucht hat.) Ohne Proguard sind mir meine apks zu groß.

    Hast du das probiert? Bevor ich das weiss investiere ich da keine Zeit wenn ich nicht muss :)
     
  5. ko5tik, 21.03.2011 #5
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Es soll ab 1.5 Laufen,
    aber der Aufwand es anzupassen ist mir m,omentan zu groß - ich bleibe erstmal bei dem alten. Zu Proguard kann ich nicht sagen, aber bei dem dekompilieren habe ich gesehen das es bereits obfuscated ist
     
  6. wilco, 21.03.2011 #6
    wilco

    wilco Android-Hilfe.de Mitglied

    Beiträge:
    106
    Erhaltene Danke:
    32
    Registriert seit:
    10.08.2010
    Hast Du es denn jetzt zum Laufen gebracht, d.h. wird Werbung angezeigt? Ich hab's bisher sowohl ohne als auch mit Demo Modus versucht, aber mit dem neuen SDK noch keine Anzeige auf's Display gebracht.

    Was mir nicht so ganz klar ist ist wo ich jetzt die Publisher-ID übergebe.

    Auch habe ich gesehen dass es ja jetzt verschiedene Banner-Größen gibt, speziell angepasst auf Tablets. Hast Du das schon zum Laufen gebracht?
     
  7. ko5tik, 21.03.2011 #7
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    PUblische ID wird im XML gesetzt ( adUnitId ) , werbung wird angezeigt, aber um die Updates muss man selber kummern. Da ich mit Tablets nicht zu tun habe, habe ich es nicht getestet.

    Grüß,
     
  8. ko5tik, 21.03.2011 #8
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Ooops:
    Code:
    03-21 21:23:36.363: INFO/Ads(28739): Received ad url: <"url": "http://r.admob.com:80/ad_source.php?preqs=6&u_sd=1.5&u_w=480&slotname=a14b9fca4143c4a&msid=de.pribluda.games.android.colors&js=afma-sdk-a-v4.0.2&isu=BF25E88F70F80EB8AF4ACD7AED5A8D5F&format=320x50_mb&net=ed&app_name=4.0.2.android.de.pribluda.games.android.colors&hl=de&u_h=854&u_so=p&u_audio=1&prl=2629&output=html&region=mobile_app&u_tz=-60&ex=1&client_sdk=1&askip=1", "afmaNotifyDt": "null">
    03-21 21:23:36.418: DEBUG/cache(28739): trim cache if needed
    03-21 21:23:37.128: INFO/global(28739): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
    03-21 21:23:37.152: DEBUG/WebCore(28739): FrameLoaderClientAndroid[0x2f0ed0]::canHandleRequest() to closePluginWindow()
    03-21 21:23:37.167: DEBUG/cache(28739): mDataBase.getCache() for url http://www.gstatic.com/afma/google-mobile-app-ads.js len=14835
    03-21 21:23:37.497: DEBUG/skia(28739): >>>>>>>: CacheBuilder::BuildFrame(()
    03-21 21:23:37.503: DEBUG/skia(28739): >>>>>>> WebViewCore::updateFrameCache()--2--cachedFocusNode=0; (nodePointer=0x0); m_frameCacheKit=0x556040; m_updatedFrameCache=1
    03-21 21:23:37.511: WARN/dalvikvm(28739): threadid=33: thread exiting with uncaught exception (group=0x4001e2e0)
    03-21 21:23:37.519: ERROR/AndroidRuntime(28739): Uncaught handler: thread AsyncTask #5 exiting due to uncaught exception
    03-21 21:23:37.527: ERROR/AndroidRuntime(28739): java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:200)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
            at java.lang.Thread.run(Thread.java:1096)
            Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
            at android.view.ViewRoot.checkThread(ViewRoot.java:2738)
            at android.view.ViewRoot.requestLayout(ViewRoot.java:565)
            at android.view.View.requestLayout(View.java:8029)
            at android.view.View.requestLayout(View.java:8029)
            at android.view.View.requestLayout(View.java:8029)
            at android.view.View.requestLayout(View.java:8029)
            at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:255)
            at android.view.View.requestLayout(View.java:8029)
            at android.view.View.setFlags(View.java:4417)
            at android.view.View.setVisibility(View.java:3028)
            at c.a(Unknown Source)
            at c.doInBackground(Unknown Source)
            at android.os.AsyncTask$2.call(AsyncTask.java:185)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            ... 4 more
    
    
    Damit ist Update für mich gestorben.

    Kotz-und-repository-rewert ;)
     
    wilco bedankt sich.
  9. wilco, 22.03.2011 #9
    wilco

    wilco Android-Hilfe.de Mitglied

    Beiträge:
    106
    Erhaltene Danke:
    32
    Registriert seit:
    10.08.2010
    Danke für die Warnung. Wo ist das denn aufgetreten? Einfach zwischendurch zur Laufzeit oder wenn Du eine bestimmte Aktion wie z.B. loadAd() ausführst?
     
  10. ko5tik, 22.03.2011 #10
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Bei dem Ad-Refresh, und eventuell bei LoadAd ( Stacktrace ist nicht unbedingt aussegefähig )
     
  11. computer_freak, 24.03.2011 #11
    computer_freak

    computer_freak Gewerbliches Mitglied

    Beiträge:
    156
    Erhaltene Danke:
    7
    Registriert seit:
    14.12.2010
    Hallo, ich habe auch ein paar probleme mit admob:

    Das Admob 4eck wird nicht angezeigt!

    Mein layout code:
    Code:
    <LinearLayout /*...*/>	<com.google.ads.AdView 
    						xmlns:android="http://schemas.android.com/apk/res/android"
                           	xmlns:colors="http://schemas.android.com/apk/res/engrave.imageswap"
                           	android:id="@+id/AdView"
                           	android:layout_width="fill_parent"
                           	android:layout_height="wrap_content"
                           	android:visibility="visible"
                           	colors:adUnitId="a14d864eacdc935"
                           	colors:adSize="1" />   
    </LinearLayout>
    
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    ...
    	
    	<declare-styleable name="com.google.ads.AdView" >
            <attr name="adUnitId" format="string" />
            <attr name="adSize" format="integer" />     
    	</declare-styleable>    
    </resources>
    
    Code:
    oncreate:
    
    		theAdView = (AdView) findViewById(R.id.AdView);
    		theAdView.loadAd(new AdRequest());

    Im main.xml / Graphical View wirds korrekt angezeigt, naja, zumindest "Ads by Google", es wird dort erkenntlich gemacht, dass es da ist, das control.

    Starte ich die app jedoch, so ist keine spur von dem Control!
     
    Zuletzt bearbeitet: 24.03.2011
  12. coolsmile, 22.07.2011 #12
    coolsmile

    coolsmile Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    08.02.2010
    Ich habe das gleiche Problem wie computer_freak. Ist da jemand weitergekommen?
    Danke
     
  13. wilco, 22.07.2011 #13
    wilco

    wilco Android-Hilfe.de Mitglied

    Beiträge:
    106
    Erhaltene Danke:
    32
    Registriert seit:
    10.08.2010
    Hier gibt es eine schöne Schritt für Schritt Anleitung zum Thema. Mit dem neuen SDK sehen die Schritte etwas anders aus, da fehlen Dir oben noch ein paar.

    Du musst noch eine Activity definieren, die Banner Größe festlegen, einen AdRequest erstellen, manuell das Laden einer Anzeige triggern etc. Steht aber alles recht schön in der Anleitung beschrieben.

    Zum Testen würde ich auf jeden Fall per
    Code:
     
    request.addTestDevice(AdRequest.TEST_EMULATOR); 
     
    
    festlegen dass Deine App auf dem Emulator eine Test-Anzeige zeigt. Ansonsten kann es sein dass Du alles richtig machst, und trotzdem keine Anzeige dargestellt wird - schlicht und ergreifend weil AdMob Dir momentan gerade keine liefern kann.
     
  14. DieGoldeneMitte, 22.07.2011 #14
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Ist vielleicht ein bisserl OT, aber ich würde ja gerne mal wissen, ob jemand (als Entwickler) schon mit der Problematik zu tun hatte, dass einige Werbeparter sich per WAP die Handynummer holen und irgendwelche Abos abrechnen.

    Geht es da nur um bestimmte Werbebannerbetreiber?
    Kann man als Entwickler etwas dagegen tun?
     
  15. wilco, 22.07.2011 #15
    wilco

    wilco Android-Hilfe.de Mitglied

    Beiträge:
    106
    Erhaltene Danke:
    32
    Registriert seit:
    10.08.2010
    Ja, und das ist sehr nervig zu sehen wenn man für seine Apps auf einmal Kommentare bekommt wie "Enthält Abzocke Werbung". Das Problem existiert übrigens nicht nur in Deutschland sondern quer über halb Europa.

    Als Entwickler bist Du da relativ machtlos. Das ist ja das frustrierende daran. Bei AdMob hast Du z.B. die Möglichkeit bestimmte URLs auszuschliessen (z.B. alle Anzeigen die auf AboAbzocke.de verweisen). Woher sollst Du jetzt allerdings wissen wo in ganz Europa die Betrüger sitzen und welche URLs sie verwenden.

    Als zweites hast Du die Möglichkeit bestimmte Anzeigen-Kategorien auszuschliessen. Z.B. kannst Du sagen Du möchtest in Deiner App keine Anzeigen zum Thema Abos und keine zum Thema Religion sehen. Allerdings kontrolliert meines Wissens nach niemand ob die Werbekunden ihre Anzeigen auch in die richtigen Kategorien einsortieren. Und überhaupt gelten z.B. die Filterkriterien bei AdMob nur für Anzeigen aus dem AdMob Netzwerk, nicht aber für Anzeigen aus dem AdSense Netzwerk die AdMob ebenfalls anzeigt.

    Ansonsten hast Du als Entwickler keinerlei Möglichkeit festzulegen welche Anzeigen in Deinen Apps angezeigt werden.

    Nachdem ich Berichte über einen bestimmten Klingeltonanbieter gesehen habe der offenbar auch Anzeigen in meinen Apps geschaltet hatte, habe ich AdMob entsprechend informiert mit der Bitte um a.) diesen Anzeigenkunden zu überprüfen und b.) eine Möglichkeit einzurichten als Entwickler generell die Weiterleitung auf WAP Seiten sperren zu können.

    Leider habe ich nur eine allgemeine Antwort erhalten dass man sich den Anbieter anschauen wird. Keine Reaktion zum WAP Filter.

    Alles sehr unbefriedigend. Nichtsdestotrotz denke ich liegt das Hauptproblem bei den Telefonfirmen. Mit der Einführung von WAP Billing haben sie diese Betrugsmöglichkeit ja erst geschaffen. Und ob die Weitergabe der Telefonnummer ohne explizite Einwilligung des Kunden legal ist ist denke ich auch sehr fraglich.

    Jeder regt sich über das Thema auf, es gab schon jede Menge Zeitschriftenartikel und zahlreiche Fernsehbeiträge zu dem Thema (von Akte bis WiSo). Vor Gericht hat es meines Wissens nach noch niemand gewagt.
     
    computer_freak und DieGoldeneMitte haben sich bedankt.
  16. DieGoldeneMitte, 22.07.2011 #16
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Genau! Wenn man mit WAP-Billing Kosten wie bei Premium SMS erzeugen kann, sollten es auch bei der Rechtekontrolle ähnlich gebrandm^Wgekennzeichnet werden.
     
  17. coolsmile, 22.07.2011 #17
    coolsmile

    coolsmile Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    08.02.2010
    Danke, diese Seite habe ich schon mal durchgelesen und sogar den Source Code heruntergeladen, compiliert und ins Gerät gespielt.
    Tut es auch nicht.
    Ich habe übrigens ein Milestone1.
    Das hat bei mir auch schon mal funktioniert, aber ich habe die app etwas umgebaut, und dabei ist mir das kaputtgegangen.
    Hat vielleicht jemand eine weitere Idee?
    Danke
    Alex
     
  18. coolsmile, 22.07.2011 #18
    coolsmile

    coolsmile Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    08.02.2010
    Mein Code sieht wie folgt aus (Ausschnitt aus der Main Activity):
    AdView adView = (AdView) this.findViewById(R.id.ad); //new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
    // Initiate a generic request to load it with an ad
    AdRequest rq = new AdRequest();
    rq.setTesting (true);
    adView.loadAd (rq);

    Im XML main Layout ist folgendes eingetragen:
    <com.google.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/ad"
    android:layout_width="fill_parent"
    ads:adUnitId="ADMOB_PUBLISHER_ID"
    ads:adSize="BANNER" ads:loadAdOnCreate="true" android:layout_alignParentBottom="true"
    android:layout_height="fill_parent"/>

    Vielleicht mache ich ja grundsätzlich auch etwas falsch...
    Danke
    Alex
     
  19. computer_freak, 22.07.2011 #19
    computer_freak

    computer_freak Gewerbliches Mitglied

    Beiträge:
    156
    Erhaltene Danke:
    7
    Registriert seit:
    14.12.2010
    Coolsmile:
    Schoen und gut, aber was ist nun das Problem? ;)
     
  20. coolsmile, 22.07.2011 #20
    coolsmile

    coolsmile Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    08.02.2010
    Das Problem ist, dass bei mir auch nichts angezeigt wird (so wie in den oberen Beitrag von Dir-Computer_freak).
     
    Zuletzt bearbeitet: 25.07.2011

Diese Seite empfehlen