【问题标题】:Google Admob Android: Working on only one deviceGoogle Admob Android:仅在一台设备上工作
【发布时间】:2019-03-02 14:45:28
【问题描述】:

我在我的 android 应用中设置了 admob adview: 清单:

  <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-123456567787889990">

我的 xml:

   <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_gravity="bottom"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-0987784576567456234511"
        ads:layout_constraintBottom_toBottomOf="parent"
        ads:layout_constraintEnd_toEndOf="parent"
        ads:layout_constraintStart_toStartOf="parent">
    </com.google.android.gms.ads.AdView>

在我的 java 代码中,我做了以下操作:

 MobileAds.initialize(this, "ca-app-pub-123456567787889990");
        AdRequest adRequest = null;
        if (BuildConfig.DEBUG) {
            adRequest = new AdRequest.Builder().addTestDevice("EDDADA7CC97DD3A4AAD9123312312321").build();
        } else {
            adRequest = new AdRequest.Builder().build();
        }
        adView.loadAd(adRequest);

我了解真实广告仅用于生产,我必须使用测试广告。然而,测试广告只出现在一个设备(我正在测试的设备)上,它在那里正常工作。但是,它不会出现在任何其他设备上。 我向我的客户发送了一个 apk,广告空间总是显示为空白,没有测试广告。

这是有意的行为还是我错过了什么?请帮忙。

【问题讨论】:

  • 您是否尝试过使用 Ad Mob 团队提供的演示凭据?它将帮助您在应用中看到演示广告,您也无需为此添加测试设备
  • 是的,我尝试了他们正常工作的演示广告
  • 可能每次都添加addTestDevice
  • @PembaTamang 因此,如果测试广告工作正常,这意味着您的编码部分正常工作,只需更改 Ad Mob Id(live one),您就可以在商店中上传了。请记住,广告是针对特定位置的,如果您所在地区没有可用的广告,它将不会显示任何内容。

标签: android admob


【解决方案1】:

您仅在调试模式下为adRequest() 添加了一台测试设备。所以它仅适用于该设备。首先,您不需要使用具有真实 AdMob 单元 id 的真实帐户进行测试,您可以使用测试广告单元 id。并且不需要检查它是否处于调试模式。

您可以按照这种方式集成 AdMob 测试横幅广告。

  1. 在项目级 build.gradle 中添加这个
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
  1. 添加此应用级 build.gradle
    dependencies {

        implementation 'com.google.android.gms:play-services-ads:17.1.1'
    }
  1. 然后在应用标签内的 Manifest.xml 文件中添加这个

    <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>
    

4.然后在你的布局xml文件中

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>
  1. 然后在您的活动中执行此操作
package ...

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

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this,
            "ca-app-pub-3940256099942544~3347511713");

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

然后它将完美地适用于所有设备。之后,您只需替换您的 admob 应用程序 ID 和横幅单元 ID。希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    相关资源
    最近更新 更多