【问题标题】:Get admob Id remotely远程获取admob ID
【发布时间】:2019-07-04 02:44:17
【问题描述】:

我有一个使用 android studio 制作的应用程序。目前,admob id 是在strings.xml 文件中定义的。但是,我想让应用程序从我的服务器或 firebase 获取 admob id,因为我希望能够在出现任何问题时远程更改它们。我该怎么做呢?

【问题讨论】:

    标签: java firebase android-studio admob


    【解决方案1】:

    您也可以使用 Remote Config 从 Firebase 加载广告

    或者您可以使用 Firebase 数据库。从我的 Github 参考这个示例项目 Load Ads From Firebse

    【讨论】:

    • 你能说明如何使用它吗?我们应该在manifest文件中提供AppId,如何动态提供?
    • @dyno-cris 不幸的是,我们不能在 Manifest 文件中动态地做任何事情。您必须对字符串进行硬编码。
    【解决方案2】:

    您可以通过编程方式完成。

    布局

    在您的布局文件中,添加AdView

    <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>
    

    检索广告单元 ID

    • 您需要在初始屏幕或主要活动中进行网络调用以检索您的广告单元 ID/s
    • 您可以使用Retrofit 从您的网络服务器执行此类 http 请求调用
    • 如果您选择 Firebase,您可以使用他们的 Firebase Realtime Database

    设置广告单元 ID

    在 Java 中

    AdView adView = new AdView(this);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // Set ad unit id
    

    在科特林中

    val adView = AdView(this)
    adView.adSize = AdSize.BANNER
    adView.adUnitId = "ca-app-pub-3940256099942544/6300978111" // Set ad unit id
    

    附加

    根据您的持久性存储实现,这是使用SharedPreferences 保存广告单元 ID 的单一方法

    PreferenceManager.getDefaultSharedPreferences(context).edit().putString("MY_AD_UNIT_ID", "YOUR_AD_UNIT_VALUE").apply();
    

    这是你将如何检索它

    PreferenceManager.getDefaultSharedPreferences(context).getString("MY_AD_UNIT_ID", "DEFAULT_STRING_IF_NOTHING_WAS_FOUND"); 
    

    context 是您的上下文。

    了解更多:

    【讨论】:

    • 目前情况就是这样,但是我希望应用程序从我的网络服务器或 firebase 获取 admob Id。关于我将如何做到这一点的任何想法?
    • 嗨@MohammedSalaam,介意我问一下您是否已经设置了您的网络服务器?
    • 我的 web 服务器上有一个 php 文件,上面有我的 admob id。我想知道我是否可以以某种方式向服务器发送一个 get 请求,获取 admob id,然后保存它。但我真的不知道如何在应用启动时执行此操作?
    • 让我确认一下,您是否熟悉在移动应用程序中解析 JSON 响应?如果是这样,您可以在初始屏幕上调用此类 API 请求。从那里,您可以检索广告单元 ID,然后您可以使用 SharedPreferences 保存它。这样,您就可以从需要广告单元 ID 的视图层中检索它。
    • 我可以在启动画面中使用 android volley 发送一个 get 请求并将 admob 作为字符串吗?如果是这样,我将如何在其他课程中使用此 ID?
    【解决方案3】:

    有一个新的API that allows you to manage Firebase projects 并从中获取配置数据。这将是以编程方式查找此类配置数据的最合乎逻辑的地方。

    我检查了projects.getprojects.getAdminConfig,但还没有找到您要查找的ID。

    如果该 ID 确实丢失,file a feature request 可能值得。

    【讨论】:

      猜你喜欢
      • 2011-09-19
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多