page.title=Google Mobile Ads
page.tags=Ads,monetization,AdMob,Google Play services
header.hide=1

@jd:body


<div class="landing-banner">
        
<div class="col-6">
  <img src="{@docRoot}images/google/gps-ads.png" alt="">
</div>
<div class="col-6">

<h1 itemprop="name" style="margin-bottom:0;">Google Mobile Ads</h1>
<p itemprop="description">
  Monetize your app with banner or interstitial ads from
  Google's vast pool of advertisers. Integrate with top ad networks through
  mediation to maximize your revenue from impressions. Take advantage of new
  ad features and capabilities through Google Play services, without having to
  add or update a library in your APK.
</p>

<p>
  Check out the  <a href=
  "{@docRoot}reference/gms-packages.html">Google Mobile Ads API reference</a> and visit <a class=
  "external-link" href=
  "http://developers.google.com/mobile-ads-sdk">developers.google.com/mobile-ads-sdk</a>
  for more information about integrating Google Mobile Ads into your app.
</p>
</div>
</div>

<div style=
"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;" class=
"caution">
  <p><strong>Upgrade to the new AdMob</strong></p>
  <p>Legacy AdMob will be shutting down on August 31, 2014. Beginning August 31,
    you will no longer be able to use legacy AdMob to promote and monetize your
    apps. Specifically, please be aware of the following:</p>
  <ol style="margin-bottom:0;">
    <li>Ads will stop serving to legacy ad units that are not updated with new
    ad unit IDs.</li>
    <li>Legacy house ad campaigns will stop serving.</li>
    <li>You will not be able to access the legacy AdMob UI after August 31,
    2014.</li>
  </ol>
  <p>If you are still using legacy AdMob, please upgrade your account to the new
    AdMob as soon as possible. Upgrading takes only 5 minutes. <a href=
    "https://apps.admob.com/admob/signup?">Start here</a>.</p>
</div>

<div class="landing-docs">
  <div class="col-6 normal-links">
    <h3 style="clear:left">Key Developer Features</h3>

      <h4>Seamless auto-updates</h4>
      <p>The Google Mobile Ads SDK is part of Google Play services, so you can take advantage of features
      and capabilities in each new release of Google Play services, without needing to update your
      APK. </p>

      <h4>Monetize your apps</h4>
      <p>Connect with over a million Google advertisers and show relevant ads in your app. Users
      engage with the ads, you make money. The Google Mobile Ads SDK fully supports AdMob,
      DoubleClick for Publishers, DoubleClick Ad Exchange, and Search Ads for Mobile Apps. 
      <br>
      <a href="http://www.google.com/ads/admob/monetize.html" class="external-link">Learn more
      and sign up</a>.</p>

      <h4>Location-based ads</h4>
      <p>You can use the publisher-provided location API to provide Google with the location when
      requesting ads. Location-based ads can improve your app monetization.</p>

      <h4>Innovative ads</h4>
      <p>Choose from a range of ads across mobile devices and tablets, including interactive
      ad units.</p>

      <h4>Flexible and powerful tools </h4>
      <p>Filters and controls help you manage your ads. If you want to use multiple ad
      networks, you can do that too, with free ad network mediation.</p>

      <h4>Ad Policy Compliant</h4>
      <p>The Google Mobile Ads SDK available in Google Play services is compliant with
      Google Play Ad Poilcy regarding the usage of
      <a href="{@docRoot}google/play-services/id.html">advertising ID</a>.</p>
  </div>

  <div class="col-6 normal-links">
    <h3 style="clear:left">Getting Started</h3>
    <h4>1. Get the Google Play services SDK</h4>
    <p>The Google Mobile Ads APIs are part of the Google Play services platform.</p>
    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
      the Google Play services SDK</a>.</p>

    <h4>2. Run the sample</h4>
    <p>Once you've installed the Google Play services package, the Google Mobile Ads sample is located
    in <code>&lt;android-sdk&gt;/extras/google-play-services/samples/ads</code> and shows you how to
    serve banner and interstitial ads using the Google Mobile Ads APIs.</p>

    <h4>3. Read the documentation</h4>
    <p>Your use of the Google Mobile Ads SDK is governed by the terms between you and Google that
    govern your use of the Google product (AdSense/AdMob, AdX or DFP) with which you use the SDK.</p>
    <p>For quick access while developing your Android apps, the <a
    href="{@docRoot}reference/gms-packages.html">Google Mobile Ads API reference</a> is available here on
    developer.android.com.</p>
    <p>Detailed documentation for Google Mobile Ads for Android is available with the rest of the Google
    Mobile Ads developer documents at <a href="https://developers.google.com/mobile-ads-sdk"
    class="external-link">developers.google.com/mobile-ads-sdk</a>. </p>
  </div>
</div>
