我使用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>
答案 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
答案 5 :(得分:3)
看看你的logcat。它会说明为什么没有展示真实的广告。
这可能是因为现在没有可用于您所在设备的设备。
答案 6 :(得分:2)
创建实时广告单元ID
登录
在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>
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)
答案 13 :(得分:0)
以下是显示实况广告所需的时间的官方答案。
在第一个广告之后开始显示广告需要多长时间 请求?
在AdMob中新注册了应用后,通常最多需要花费 小时和几个广告请求,以建立广告资源。因为 这样,您可能不会立即看到实时印象。
注意:在某些情况下,可能需要一个多小时。请等待24 在寻求其他帮助之前的几个小时。
一旦您的应用发出更多请求,您应该会看到更一致的信息 结果。请注意,测试广告通过相同的渠道运作 作为实时广告。能够返回测试广告可以确保您的 应用程序正在与我们的网络正常通信。
答案 14 :(得分:0)
它可能没有显示广告,因为您的应用仍处于开发模式,您可以按照说明 here 在您的广告暴民帐户中注册一个测试设备。即使处于开发模式,您也应该能够在测试设备上看到广告。
复制这里的步骤