gpt4 book ai didi

android - 如何仅在应用的一个版本中展示广告

转载 作者:行者123 更新时间:2023-11-29 15:38:57 24 4
gpt4 key购买 nike

我正在计划我的应用程序的广告与无广告版本。我已经设置了两种应用风格。

在我的 XML 中,这个 AdMob tutorial说我将其添加到我的 Activity XML 中以放置横幅广告:

<com.google.android.gms.ads.AdView
android:id="@+id/admob_adview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_footer" />

然后在代码中,教程说:

public class MainActivity extends AppCompatActivity {

private AdView mAdMobAdView;
Button button;

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

mAdMobAdView = (AdView) findViewById(R.id.admob_adview);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("4DD0986B8BB49093161F4F00CF61B887")// Add your real device id here
.build();
mAdMobAdView.loadAd(adRequest);


button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), ActivityTwo.class));
}
});
}
}

但是,如果我只想让这个广告在一种口味上展示,而不是在另一种口味上展示,那么在不违反任何规则的情况下正确的处理方式是什么?通常通过类似的方式检查口味

if (BuildConfig.FLAVOR.equals("adfree")) {
//no ads
}
else {
//show ads
}

我是否可以简单地将 adRequest 代码放在我的 Activity 中的上述 if 语句中?对于无广告版本,AdView 是否仍在我的 XML 中是否重要,还是我需要使用 XML 的单独副本并删除 AdView

最佳答案

此答案并非特定于 AdMob,因此可能存在与 AdMob 相关的选项或限制,导致此分析没有实际意义。

但是,恕我直言,在无广告应用中,您希望 AdMob 完全消失。你为什么要把它放在那里,占用空间,可能会因未初始化的 View 而崩溃等等?这对您和您的用户来说似乎是不必要的成本。

要做到这一点(指的是你的两种风格 adaddfree):

第 1 步:对于特定于 AdMob 的依赖项,使用 adCompile 而不是 compile

第 2 步:在 ad/src/res/layout/ 中使用 AdMob AdView 布局资源,在 中具有相同名称的等效项code>adfree/src/res/layout(这样你就可以重新设计没有广告占用空间)

第 3 步:在 ad/adfree/ 源集中定义一个 AdStrategy 策略类,使用相同的公共(public) API,其中 ad/ 有与 AdMob 相关的方法(例如初始化代码),而 adfree/ 只有空方法

第 4 步:在 MainActivity 以及您从 Java 与 AdMob 交互的任何其他地方,调用适当的 AdStrategy 方法,因此在 ad 构建中你得到了 AdMob 的东西,在 adfree builds 中它什么都不做(或者替代逻辑,如果合适的话)

现在,您的 adfree 构建真正不含 AdMob,而不仅仅是 AdMob 未初始化。

关于android - 如何仅在应用的一个版本中展示广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com