- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
过去几天我一直在研究针对 MonoGame Android 的 AdMob 集成,但到目前为止还未能成功地为我刚刚制作的游戏添加横幅。到目前为止,我找到的所有答案都非常过时,而且我找到的所有示例都无法在最新的 Android API 中运行。
我在 Visual Studio 中使用 MonoGame 3.2 的开发版本 #983。
我试过:
使用在此 github 存储库中找到的示例:/CartBlanche/MonoGame-Samples/tree/master/AdMob
以及在此 github 存储库中找到的示例:/xamarin/monodroid-samples/tree/master/AdMob
更新 SDK 管理器以下载 google play services extras
遵循本页的代码示例:http://www.craftworkgames.com/blog/monogame-code-snippets/using-admob-with-monogame/
以及在 Internet 上找到的其他方法。在向项目添加 JAVA 源和 JAR 文件时,我一直非常小心地选择正确的构建选项,但我从未找到任何 AdView 类,并且不再有“Google Mobile Ads SDK v6.4.1”JAR由谷歌支持,如下所述:https://developers.google.com/mobile-ads-sdk/
如果有人有任何新的和最新的方法将 AdMob 广告集成到 MonoGame Android 项目中,我认为答案需要刷新(我将非常感激)=)
最佳答案
经过很长时间的寻找答案并测试了多种建议,我终于找到了解决方案。
Xamarin 有一个 Google Play 服务组件,可以从组件商店下载。我最初尝试过这个,但是我在 VS2012 中的解决方案文件遇到了问题。所以这就是我手动添加组件所做的:
从https://components.xamarin.com/view/googleplayservices/登录并下载组件
在您的 Android 解决方案中创建一个名为“lib”的文件夹,并将压缩组件文件夹中的 dll 文件解压缩到该文件夹中
将 dll 文件添加为对项目的引用。您现在应该添加了这四个引用:
导航到您的项目属性,单击“应用程序”选项卡(第一个)并在“Java 最大堆大小”下键入 1G(否则在编译时会出现 Java 堆内存不足错误)
确保您的应用设置为使用 API 14 或更高版本 (Android 4.0)。这也可以通过项目属性页面完成
在您的 AndroidManifest.xml 文件中,确保您具有以下内容:
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
获取您的 AdMob 单元 ID
将您的 Activity.cs 文件更改为如下内容:
using Android.Gms.Ads; // Add this include
// Easy constants
private const string AD_UNIT_ID = "YOUR_AD_ID";
private const string TEST_DEVICE_ID = "YOUR_DEVICE_ID";
private AdView adView;
// Change OnCreate and make sure you're not trying to set SetContentView()
// more than once
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Puzzle.ARunningMan.Activity = this;
var g = new Puzzle.ARunningMan();
createAds(g.Window);
g.Run();
}
// Wrapped everything in a function for less confusion.
// Thanks to Dylan Wilson at Craftwork Games for the
// simple layout
private void createAds(AndroidGameWindow window)
{
var frameLayout = new FrameLayout(this);
var linearLayout = new LinearLayout(this);
linearLayout.Orientation = Orientation.Horizontal;
linearLayout.SetGravity(Android.Views.GravityFlags.Right | Android.Views.GravityFlags.Bottom);
frameLayout.AddView(window);
adView = new AdView(this);
adView.AdUnitId = AD_UNIT_ID;
adView.AdSize = AdSize.Banner;
linearLayout.AddView(adView);
frameLayout.AddView(linearLayout);
SetContentView(frameLayout);
try
{
// Initiate a generic request.
var adRequest = new AdRequest.Builder()
.AddTestDevice(AdRequest.DeviceIdEmulator)
.AddTestDevice(TEST_DEVICE_ID)
.Build();
// Load the adView with the ad request.
adView.LoadAd(adRequest);
}
catch (Exception ex)
{
// your error logging goes here
}
}
编译(一开始需要一点时间),运行它,在 LogCat 窗口中查找一条标记为“ads”的消息,其中包含您的设备 ID。更多信息在这里:http://webtutsdepot.com/2011/12/02/android-sdk-tutorial-get-admob-test-device-id/
设置设备ID字符串,重新编译,运行
最后,如果您等待大约 30-60 秒,您将看到一个测试添加显示为横幅。祝大家好运,我希望这对您有所帮助,因为它现在是当前信息
关于android - 如何在最新的 MonoGame Android (XNA) 中集成 AdMob 广告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917266/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 1年前关闭。 Improve thi
当我在 Admob 页面中创建插页式广告单元时,它要求输入 Interstitial timeout : Determine how long to display the interstitial
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我的应用使用奖励视频广告,但在我看来,有时广告太长了。如何设置广告的时长限制? 最佳答案 这不是 AdMob 提供的功能。不过,感觉太长的广告通常会获得较少的点击次数,因此随着系统的调整,展示次数会越
我正在使用 admob 插页式广告,它通过 onCreate 加载 所以我可以使用它一次,但不能使用两次。我必须重新加载它然后使用它... 我想在显示后立即重新加载它,但似乎没有这样的回调监听器...
我有 admob 帐户,并且广告单元已成功放入我的应用程序中。 现在我想在我的应用程序中打印 admob 报告,就像用户 ABC 在这个应用程序中点击了“_”次赚取和应用程序的 RPM 我该怎么做,有
这可能是题外话,但请这对我们所有人都非常有帮助,他们从未知来源获得虚假点击,只是为了暂停我们的 admob 帐户。 最佳答案 对于 iOS 您应该使用 here 所述的委托(delegate)方法计算
Admob 几天前迁移到了较新的版本。他们成功转移了我的应用程序,但似乎我必须从 0,00 美元重新开始。我的旧 Admob 大约有 15 美元。我怎样才能把它转移到新的,否则它会丢失吗?支付限额为
我认为有人试图让我在 AdMob 中被禁止 - 在来自“未知”国家/地区的地理统计点击中,点击率达到 80%-90%(其他国家/地区 < 3%)。 如果用户来自“未知”国家/地区,是否有办法阻止展示广
我在展示来自 admob 的广告时在布局上遇到了一些问题。 应用刚启动时没有广告,一切正常。布局占据整个屏幕。然后当应用程序可以加载广告时(在顶部),整个布局将向下移动以显示广告。 如果有广告时整个布
是否可以在 Android 上以多种语言显示 GDPR 同意对话框? 我只能用一种语言发布一条消息。 在ump sdk中没有看到拟合方法。 我的意思是必须有办法做到这一点,如果没有,那么这个 sdk
我在 iOS 游戏中使用 AdMob,我最近更新了它以在我的 Info.plist 文件中包含 AdMob SKAdNetworkIdentifier(因为我的 AdMob 帐户中有警告要求这样做)。
这是我的代码: gAdView=[[GADBannerView alloc] initWithFrame:CGRectMake(0,self.view.bounds.size.height-GAD_S
Google 对使用 是否有限制或警告?奖励广告 限时? 因此,在我的应用程序中,如果我让我的用户按他/她想要的次数观看激励广告,将 谷歌 将其视为 无效流量这会导致帐户停用? 最佳答案 不,激励广告
我在 Google Play 上发布了一个游戏,我在上面放了 admob 广告。 由于无效的点击事件,我的 admob 帐户被禁用。 现在我创建了另一个帐户,将我的游戏链接到它。 我显示广告的代码是正
关于 AdSense 报告 API - GET/accounts/accountId/reports 它是仅检索 AdMob 数据(作为广告网络)还是也可以包括来自其他中介广告网络的数据? 最佳答案
我已经知道这个问题的答案,但我之所以这么问,是因为我花了几个小时才找到它,并且想让其他人轻松获得它。 自 2020 年 12 月 8 日起,Apple 已强制要求开发人员发布正在收集的数据以及这些数据
使用 AdWhirl 我得到了这些异常(exception)... 我无法从我这边发现错误...... 任何人都可以对此提出建议.. FATAL EXCEPTION: main E/AndroidRu
这就是我的 Admob 横幅的实现方式。 在 Layout.xml 中 在 AdActivity.java 中 private void initBannerViewGroup()
我想在同一事件中同时展示横幅广告和插页式广告。但我不确定这是否会违反 Google admob 政策,因为当显示插页式广告时,它会覆盖横幅广告。 谢谢。 最佳答案 这是允许的。事实上,建议您这样做以增
我是一名优秀的程序员,十分优秀!