标签: admob

Admob Memory Leak - 通过使用空活动来避免

我们的应用程序因内存泄漏而受到严重打击.我发现根本原因是AdMob AdView保留了对旧活动的引用.Android AdMob导致内存泄漏的问题很明显以及评论/答案中的子链接.我注意到这个问题在ICS中并不明显,因为GC最终通过引用活动来清理WebViews.但是,我的HTC EVO 3D运行库存姜饼从不收集活动,并且考虑到由于OOM错误导致的强制关闭报告的数量,这个问题在我们的应用程序中非常普遍.

我想按照TacB0sS提供的解决方案,https: //stackoverflow.com/a/8364820/684893 .他建议创建一个空活动,并为每个AdMob AdView使用相同的活动.泄漏将被包含,因为AdView将只保留一个空活动.他提供了活动本身的代码以及如何引用它,但我不知道如何将它实际集成到我们的应用程序中.据我所知,他的代码从来没有从AdMob SDK调用任何东西.

我们目前在XML布局中使用AdView,因此我们不会动态地对代码中的广告执行任何操作,例如调用loadAd().我们所有的广告布局都依赖于XML中的广告,因为它们是相对于它进行布局的.因此,我的两个问题是,如何实现TacB0sS代码,如果我们必须切换到在代码中创建XML布局,如何保留XML布局关系?

更新3/6:

感谢Adam(TacB0sS)的回复!我在切换到代码中创建广告时没有问题,但在创建广告时我仍然难以使用您的虚拟活动.我的代码目前是:

AdMobActivity adActivity = new AdMobActivity();
adActivity.startAdMobActivity(this);

// Create an ad with the activity reference pointing to dummy activity
AdView adView = new AdView(adActivity.AdMobMemoryLeakWorkAroundActivity, AdSize.IAB_BANNER, "myAdUnitID");

// Create an ad request.
AdRequest adRequest = new AdRequest();

// add the ad to the layout and request it to be filled
RelativeLayout root_main = (RelativeLayout) findViewById(R.id.root_main);
root_main.addView(adView);
adView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)

我已将此代码放在我初始活动的onCreate方法中.我在创建AdView的行上关闭了一个力量,"AdView adView = new AdView(...)".Stacktrace片段:

03-06 00:34:28.098 …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks admob

26
推荐指数
2
解决办法
6853
查看次数

AdMob收入和替代方案:展示与点击次数

我实际上将AdMob用于我的Android应用.

目前,即使我接近1000次展示,我的收入仍为零.因此,我得出结论,AdMob基于CPC(每次点击费用)系统(因为我确实没有点击).

  • 总是这样吗?或者AdMob有时会使用每次展示系统的费用吗?如果是,我们可以选择使用而不是每次展示系统的费用吗?

  • 否则,是否有任何其他广告网络可以全部或部分支付每次展示费用?

编辑:

目前我发现的是:

  • AdMob - > CPC :(根据我自己的经验)

  • JumpTap - > 此页面的每次点击费用:" 使用按点击付费广告宣传您的业务 "

  • inMobi - >没有精确

  • mmedia - > 此页面的每千次展示费用,每次点击费用和每次操作费用:" 您的收入指标或有效每千次展示费用.因为我们在网络上提供了各种广告系列,包括每千次展示费用(每千次展示费用),每次点击费用(每次点击费用)和每次转化费用(每次点击费用)行动),有效每千次展示费用提供了一种一致的方式来跟踪每个展示广告的收入. "

    但我不知道我们是否可以在这里选择我们喜欢的系统......

  • MobFox:此页面的每次点击费用和每千次展示费用:他们提到" 2千美元 "的例子.但在这里,我们不知道我们是否可以控制使用哪个系统,或者我们是否被CPC系统强制支付.

我认为使用不同的网络确实非常有趣(例如通过adMob中的Mediation).

另外要注意"CPM"或"CPI":有时网络会提到每次展示费用(CPI),但实际上他们只需支付每次点击费用,并通过简单的Nb of impression/Nb点击来评估CPI .当然,在这种情况下,CPI只是一个指标,但不保证任何收入.

android admob

26
推荐指数
1
解决办法
5万
查看次数

MobileAds.initialize(Context, String) 已弃用

在它看起来像这样之前(通过R.string.admob_application_id):

MobileAds.initialize(this, getString(R.string.admob_application_id));
Run Code Online (Sandbox Code Playgroud)

MobileAds方法.initialize(Context context, String applicationCode) 现在是:

此方法已弃用。使用initialize(Context, OnInitializationCompleteListener)来代替。

其中写道:

初始化 Google 移动广告 SDK。尽早调用此方法以减少会话第一个广告请求的延迟。如果未调用此方法,第一个广告请求会自动初始化 Google 移动广告 SDK。

MobileAds.Settings也已弃用。


到目前为止我尝试过的是获取InitializationStatus每个适配器:

MobileAds.initialize(this, initializationStatus -> {

    /* get the adapter status */
    Map<String, AdapterStatus> map = initializationStatus.getAdapterStatusMap();
    for (Map.Entry<String, AdapterStatus> entry : map.entrySet()) {
        AdapterStatus adapterStatus = entry.getValue();
        AdapterStatus.State state = adapterStatus.getInitializationState();
        Log.d(LOG_TAG, "key = " + entry.getKey() + ", state = " + state.name() + ", desc = " + adapterStatus.getDescription());
    } …
Run Code Online (Sandbox Code Playgroud)

java android admob deprecation-warning

26
推荐指数
2
解决办法
1万
查看次数

PreferenceActivity中的Android Admob广告

有没有办法将admob广告添加到PreferenceActivity?如何?

android admob

25
推荐指数
3
解决办法
8775
查看次数

如何使用适用于 Android 的新统一消息平台 SDK 请求非个性化 AdMob 广告

我目前正在使用 Google 的(已弃用)同意库向欧洲用户请求对个性化广告的同意。该文档规定,如果用户的同意状态已设置为 PERSONALIZED 或 NON_PERSONALIZED,您可以通过以下方式将同意转发给 Google 移动广告 SDK

Bundle extras = new Bundle();
extras.putString("npa", "1");

AdRequest request = new AdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();
Run Code Online (Sandbox Code Playgroud)

现在我想迁移到适用于 Android的新统一消息平台 SDK。文档非常简单,但它只解释了如何获得同意,而不是如何使用同意。这是否意味着在使用适用于 Android 的新 UMP SDK 时,我们不再需要在"npa""1"不同意个性化广告的用户请求 AdMob 广告时设置is ?


编辑 2020 年 8 月 25 日

昨天我发现了这个对话,其中移动广告 SDK 团队的某个人回答了我在这里提出的相同问题。他说:

我们的 SDK 将遵守通过npa=1的传统“同意传递”,直至另行通知。


编辑 2020 年 8 月 31 日

我开始了一个新的对话,我提出了与这篇文章中的问题相同的问题,但我没有得到任何回应。

android admob

25
推荐指数
1
解决办法
2611
查看次数

我可以在Amazon Appstore上发布的Android应用中使用AdMob吗?

这是一个简单的问题,但我无法在任何地方找到答案.我可以在Amazon Appstore上的应用程序中使用AdMob广告吗?如果没有,我可以使用哪些广告网络?

android amazon ads admob amazon-appstore

24
推荐指数
2
解决办法
2万
查看次数

是什么导致Google AdMob泄漏ServiceConnection?

我正在片段中使用AdMob.有时我看到下面的堆栈

10-23 14:27:38.916: E/ActivityThread(21250): Activity com.applegrew.app.skywifiremote.MainActivity has leaked ServiceConnection com.google.android.gms.common.b@420e82e8 that was originally bound here
10-23 14:27:38.916: E/ActivityThread(21250): android.app.ServiceConnectionLeaked: Activity com.applegrew.app.skywifiremote.MainActivity has leaked ServiceConnection com.google.android.gms.common.b@420e82e8 that was originally bound here
10-23 14:27:38.916: E/ActivityThread(21250):    at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:979)
10-23 14:27:38.916: E/ActivityThread(21250):    at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:873)
10-23 14:27:38.916: E/ActivityThread(21250):    at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1690)
10-23 14:27:38.916: E/ActivityThread(21250):    at android.app.ContextImpl.bindService(ContextImpl.java:1673)
10-23 14:27:38.916: E/ActivityThread(21250):    at android.content.ContextWrapper.bindService(ContextWrapper.java:517)
10-23 14:27:38.916: E/ActivityThread(21250):    at com.google.android.gms.ads.identifier.a.b(SourceFile:179)
10-23 14:27:38.916: E/ActivityThread(21250):    at com.google.android.gms.ads.identifier.a.a(SourceFile:207)
10-23 14:27:38.916: E/ActivityThread(21250):    at com.google.android.a.t.d(SourceFile:83)
10-23 14:27:38.916: E/ActivityThread(21250):    at com.google.android.a.t.b(SourceFile:131)
10-23 14:27:38.916: E/ActivityThread(21250):    at com.google.android.a.q.a(SourceFile:258) …
Run Code Online (Sandbox Code Playgroud)

android admob android-fragments

23
推荐指数
2
解决办法
2860
查看次数

Admob bannerView请求错误:无广告显示

我在我的一个ios游戏广告中遇到此问题

这是我的代码,奇怪的是如果我在request.testDevices列表中添加设备它会显示演示横幅,如果我从testDevices中删除它,它不会显示真正的横幅,但如果我在XCODE上更改我的bundleIdentifier,它显示了一个真正的横幅,所以我相信它的东西与我的admob帐户,有没有人得到类似的东西?

它总是失败了这个错误:

AdView didFailToReceiveAdWithError ---------------------------:Error Domain = com.google.ads Code = 1"请求错误:无广告显示. " UserInfo = {NSLocalizedDescription =请求错误:无广告显示.,NSLocalizedFailureReason =请求错误:无广告显示.}

在我的AppDelegate.m上

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Use Firebase library to configure APIs
    [FIRApp configure];
    [[FIRAnalyticsConfiguration sharedInstance] setAnalyticsCollectionEnabled:YES];
    // Initialize Google Mobile Ads SDK
    [GADMobileAds configureWithApplicationID:@"ca-app-pub-xx~xx"];
    /* other stuff here... */

}
Run Code Online (Sandbox Code Playgroud)

在我的rootViewController.m上

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    bannerViewAdded = NO;
    interstitialViewAdded = NO;

   [self addBanner]; …
Run Code Online (Sandbox Code Playgroud)

objective-c cocos2d-iphone admob ios

23
推荐指数
5
解决办法
3万
查看次数

如何填写数据安全?

我正在为我的应用填写 Google Play 数据安全表单。我的应用程序使用 AdMob,并且没有其他收集用户信息的库。我该如何填写呢?

android ads admob google-play-console

23
推荐指数
1
解决办法
6727
查看次数

Google Play 控制台 您的应用是否使用广告 ID?

最近,我在 google play console 中收到了来自 google 的消息:

"Until you complete this section, you can't target Android 13
Help us understand whether your app uses advertising ID. You will not be able to submit releases targeting Android 13 until you complete this section."
Run Code Online (Sandbox Code Playgroud)

Admob 已集成到我的应用程序中。

问题是:如何知道我的应用程序是否使用广告 ID?

编辑以明确:在控制台中,有一个新的广告 ID 选项卡,如下所示 在此输入图像描述

当然,在此选项卡中还有随之而来的问题: 在此输入图像描述

那么,假设在我的应用程序中使用( Admob 、 crashlytics ),正确的答案是什么?

android admob google-advertising-id

23
推荐指数
2
解决办法
2万
查看次数