Admob显示测试广告,但不显示真实广告

时间:2015-03-09 16:54:39

标签: android admob

我使用admob来展示Android广告。测试广告工作正常,但不显示真实广告。此外,我对实际的插页式广告没有任何问题,因为它们运行良好。只是真正的横幅广告没有出现。我的java代码是

private InterstitialAd interstitial;    
interstitial = new InterstitialAd(MainActivity.this);

        interstitial.setAdUnitId("ca-app-pub-********");

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

        // Add a test device to show Test Ads
         .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
         .addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
                .build();

        // Load ads into Banner Ads
        adView.loadAd(adRequest);

        // Load ads into Interstitial Ads
        //interstitial.loadAd(adRequest);

布局文件是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-********" />

</LinearLayout>

15 个答案:

答案 0 :(得分:22)

在AdMob新注册应用时,需要一些时间和一些广告请求才能构建广告资源。因此,您可能无法立即看到实时展示。一旦您的应用开始发出更多请求,您应该会看到更一致的结果。请注意,测试广告通过与实时广告相同的渠道运营。能够返回测试广告可确保您的应用程序与我们的网络正常通信。耐心一段时间后它会起作用。

答案 1 :(得分:17)

删除显示

的行
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")

此外,当您使用虚拟设备时,它会显示测试广告,无论如何。你在真实设备上测试它吗?

答案 2 :(得分:8)

&#34;可能您最近刚刚创建了新的广告单元ID并要求投放实时广告。如果是这种情况,广告可能需要几个小时才能开始投放。&#34;

我遇到了同样的问题,如果你可以展示测试广告,那很好,很快就会展示实时广告(当然你删除了.addTestDevice(...)之后)。

我想谷歌需要时间来收集一些信息(地点,年龄,性别......),以正确显示可能引起用户兴趣的广告。

可能你知道,但永远不要忘记:不要触摸直播广告,你很快就会被禁止。

https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/fBe3YL3ffpo

答案 3 :(得分:8)

您可能正在使用样本单位ID: ca-app-pub-3940256099942544/6300978111

如果您使用上述内容,则会看到测试广告。

确保在发布应用之前更改为您自己的设备ID。

答案 4 :(得分:5)

如果您已删除:

#!/usr/bin/env python3

import tkinter as tk
import math

# --- functions ---

def calculate_position(data):
    #unpack data
    center_x, center_y, radius, distance, angle, angle_speed, x, y = data

    # calculate new position of object
    x = center_x - distance * math.sin(math.radians(-angle))
    y = center_y - distance * math.cos(math.radians(-angle))

    # save positon so other object can use it as its center of rotation
    data[6] = x
    data[7] = y

    # calcuate oval coordinates
    x1 = x - radius
    y1 = y - radius
    x2 = x + radius
    y2 = y + radius

    return x1, y1, x2, y2

def create_object(data):
    # calculate oval coordinates
    x1, y1, x2, y2 = calculate_position(data)

    # create oval
    return c.create_oval(x1, y1, x2, y2)

def move_object(object_id, data):
    # calculate oval coordinates
    x1, y1, x2, y2 = calculate_position(data)

    # move oval
    c.coords(object_id, x1, y1, x2, y2)

def animate():
    # move earth - angle += angle_speed
    earth[4] += earth[5]
    move_object(e_id, earth)

    # moon uses earth position as center of rotation
    moon[0] = earth[6]
    moon[1] = earth[7]

    # move move - angle += angle_speed
    moon[4] += moon[5]
    move_object(m_id, moon)

    # animate again after 100ms
    root.after(100, animate)

# --- main ---

# canvas size
WIDTH  = 500
HEIGHT = 500

# center of solar system
center_x = WIDTH//2
center_y = HEIGHT//2

# objects data
# [center of rotation x and y, radius, distance from center, current angle, angle speed, current positon x and y]
sun   = [center_x, center_y, 30, 0, 0, 0, 0, 0]
earth = [center_x, center_y, 10, 100, 0, 1, 0, 0]
moon  = [0, 0, 5, 40, 0, 3, 0, 0]

# - init -
root = tk.Tk()
root.title("Solar System")

# - canvas -
c = tk.Canvas(root, width=WIDTH, heigh=HEIGHT)
c.pack()

# create sun and earth
s_id = create_object(sun)
e_id = create_object(earth)

# moon uses earth position as center of rotation
moon[0] = earth[6]
moon[1] = earth[7]

# create moon
m_id = create_object(moon)

# start animation
animate()

# - start program -
root.mainloop()

然后,确保您使用的是AdMob在string.xml文件中提供的相同ID

AdMob ID page

答案 5 :(得分:3)

看看你的logcat。它会说明为什么没有展示真实的广告。

这可能是因为现在没有可用于您所在设备的设备。

答案 6 :(得分:2)

创建实时广告单元ID

登录

https://apps.admob.com

  1. 在左侧菜单中点击 - &gt; 应用
  2. 添加应用
  3. 选择您是否在Google Play或App Store上发布了应用
  4. 如果没有 - &gt;输入您的应用信息
  5. 创建广告单元
  6. 将测试广告单元替换为新的广告单元。
  7. 一旦应用程序发布到Playstore,您就可以看到AD了。
  8. 在xml中添加AdView

      <com.google.android.gms.ads.AdView 
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
      </com.google.android.gms.ads.AdView>
    

    在弦乐中  <string name="banner_ad_unit_id">your_new_ad_unit</string>

    你的java代码中的

     AdView mAdView = (AdView) v.findViewById(R.id.adView);
     AdRequest adRequest = new AdRequest.Builder().build();
     mAdView.loadAd(adRequest);
    

答案 7 :(得分:1)

我也遇到过这个问题。 AdView和IntersitialAd仅向我展示了模拟器上的测试广告。但是真实设备上有真正的广告。 我认为firebase可以检测您是否使用模拟器或真实设备。我用过firebase:

  

com.google.firebase:火力的广告:11.0.4

答案 8 :(得分:1)

您必须先添加付款信息。我忘了在Google Admob中这样做,所以它没有显示任何广告。

此外,请确保使用真实的广告ID代替测试ID。

答案 9 :(得分:0)

如果您选择了Native Express模板,请使用此链接。 NativeExpressAdView无法使用AdView。 https://firebase.google.com/docs/admob/android/native-express

NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView);

<com.google.android.gms.ads.NativeExpressAdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adUnitId="ca-app-123123123123/123123123"
    ads:adSize="320x150">
</com.google.android.gms.ads.NativeExpressAdView>

答案 10 :(得分:0)

实际上,我也遇到了这个问题。您必须登录到admob并转到在其中添加的应用。该应用具有admob ID。使用应用程序的ID执行these steps。 然后在该应用中(在admob中)创建一个新横幅或任何类型的广告,并使用该横幅的ID来完成these steps。创建标语时,它会自动为您提供说明。

答案 11 :(得分:0)

回答了一个老问题,但是我也遇到了同样的问题,即测试广告可见并且生产密钥的广告无法正常工作。

后来我发现自己没有将付款明细提供给Admob。

Admob中的付款明细是必须的。请更新,并在数小时后检查它是否开始出现。

答案 12 :(得分:0)

就我而言,这是因为app> build.gradle中的密钥库文件路径错误。确保您具有正确的storeFile文件(“文件路径”)enter image description here

我确信它将帮助某人找到答案。

答案 13 :(得分:0)

以下是显示实况广告所需的时间的官方答案。

  

在第一个广告之后开始显示广告需要多长时间   请求?

     

在AdMob中新注册了应用后,通常最多需要花费   小时和几个广告请求,以建立广告资源。因为   这样,您可能不会立即看到实时印象。

     

注意:在某些情况下,可能需要一个多小时。请等待24   在寻求其他帮助之前的几个小时。

     

一旦您的应用发出更多请求,您应该会看到更一致的信息   结果。请注意,测试广告通过相同的渠道运作   作为实时广告。能够返回测试广告可以确保您的   应用程序正在与我们的网络正常通信。

来源:https://support.google.com/admob/answer/2993019?hl=en

答案 14 :(得分:0)

它可能没有显示广告,因为您的应用仍处于开发模式,您可以按照说明 here 在您的广告暴民帐户中注册一个测试设备。即使处于开发模式,您也应该能够在测试设备上看到广告。

复制这里的步骤

  • 通过 https://apps.admob.com 登录您的 AdMob 帐户。
  • 点击边栏中的设置。
  • 点击测试设备标签。
  • 点击添加测试设备。
  • 选择您设备的平台。
  • 输入设备名称。考虑使用有助于您在 AdMob 帐户中快速识别设备的名称。 注意:任何有权访问您的 AdMob 帐户的人都可以看到设备名称。
  • 输入您的广告 ID/IDFA。 Learn how to find your advertising ID/IDFA.
  • 选择用于激活广告检查器的手势: 无,摇晃或轻弹两次
  • 点击完成。