用户William建议我更改我的代码以显示插页式广告
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//setDebugMode(true);
initialiseAccelerometer();
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId(getResources().getString(R.string.InterstitialAd_unit_id));
interstitial.setAdListener(new AdListener() {
public void onAdClosed() {
// Create another ad request.
final AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
interstitial.loadAd(adRequest);
}
});
// Create ad request.
final AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
interstitial.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)
并显示广告:
public synchronized void GameOver() {
if (lives_left > 0) {
//success! - game passed - save score
ScoreManager.save_localscore_simple(score_times[currentLevel], "" + currentLevel, false);
if (Level_Buttons.length >= currentLevel …Run Code Online (Sandbox Code Playgroud) 我正在用ExoPlayer播放视频,并显示Google AdMob插页式广告。
广告消失后,无法播放视频并显示以下错误:
Playback error.com.google.android.exoplayer2.ExoPlaybackException
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.throwDecoderInitError(MediaCodecRenderer.java:441)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodec(MediaCodecRenderer.java:428)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:920)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:503)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:557)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(1, null, video/avc, -1, null, [720, 420, -1.0], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodec(MediaCodecRenderer.java:428)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:920)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:503)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:557)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Run Code Online (Sandbox Code Playgroud)
我正在使用库:
implementation 'com.google.android.exoplayer:exoplayer:2.8.1'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.8.1'
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有3种广告类型。展示次数最高的奖励广告,但不知何故,横幅广告的收入也要比奖励广告高。奖励广告的展示次数是非页内广告但收入不变的三倍。
在最初的几周内,没有这样的事情,然后收入突然下降。
如果某人以前有问题并且知道为什么,可以帮助我吗?我怀疑自己制作的奖励广告过多,但找不到任何文档
感谢您的任何建议或帮助
android interstitial admob adbannerview admob-rewardedvideoad
我也尝试使用 ,ApplicationContext但由于某种原因它仍然泄漏。
在 Android 版 AdMob (SDK 7.0) 上的 AdActivity 泄漏中找到了有关此问题的类似帖子,但没有答案。
还尝试在 onDestroy() 中将 adlistener 和广告设置为 null 但没有任何运气并且仍然泄漏活动。
我的代码在 onCreate() 中调用
private void refreshInterstitial(){
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("AD_ID");
mInterstitialAd.loadAd(new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).addTestDevice("877BCC97E130A0DC62B2E5770D854496").build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
mInterstitialAd.show();
}
@Override
public void onAdClosed() {
}
});
}
Run Code Online (Sandbox Code Playgroud)
Leakcanary 泄漏跟踪
????
? GC Root: Global variable in native code
?
?? mx instance
? Leaking: UNKNOWN
? ? mx.a
? ~
?? com.google.android.gms.ads.internal.webview.w instance …Run Code Online (Sandbox Code Playgroud) 我已将 google AdMob 添加到项目中并发现此错误:错误:找不到符号导入 com.google.android.gms.ads.InterstitialAd; ^ 符号:InterstitialAd 类 位置:包 com.google.android.gms.ads
有没有关于如何使用AdMob实现Android全屏广告的示例?
我研究并发现了这些教程:
编辑 - 添加了一些相关问题:
如果我在XCode 5.0.2中创建一个新的单一视图项目,添加iAd Framework,在ViewController.h中实现ADInterstitialAdDelegate
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface ViewController : UIViewController <ADInterstitialAdDelegate>
@end
Run Code Online (Sandbox Code Playgroud)
和ViewController.m中的委托方法
-(void)viewDidLoad
{
[super viewDidLoad];
[ self performSelector:@selector(onDelay) withObject:nil afterDelay:2 ];
}
-(void)onDelay
{
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicyManual;
[ self requestInterstitialAdPresentation ];
}
-(void)interstitialAd:(ADInterstitialAd *)interstitialAd didFailWithError:(NSError *)error
{
NSLog(@"interstitialAd didFailWithError");
}
-(void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd
{
NSLog(@"interstitialAdDidLoad");
}
Run Code Online (Sandbox Code Playgroud)
没有调用任何ADInterstitialAdDelegate方法.在iOS 6及更低版本中使用旧实现时,我也遇到了一些问题
interstitial = [[ADInterstitialAd alloc] init];
interstitial.delegate = self;
[ interstitial presentFromViewController:self ];
Run Code Online (Sandbox Code Playgroud)
只要
-(void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd
Run Code Online (Sandbox Code Playgroud)
然后被称为,但没有
- (void)interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd
Run Code Online (Sandbox Code Playgroud)
关闭广告后.有没有人记得有同样的问题或知道这里发生了什么?
我在Swift中,每次我调用它们委托func didFailWithError被调用.我在我的所有应用程序中使用与facebook inteitial广告相同的代码,除了我创建的这个新应用程序外,它完美无缺.没有广告弹出,我在控制台中收到一条消息说:
DiskCookieStorage将策略从2更改为0,cookie文件:file:///private/var/mobile/Containers/Data/Application/4E5FA239-208C-4B08-87C6-E4DB1CC3CC76/Library/Cookies/Cookies.binarycookies
这是我在GameViewController中设置代码的方法:
import UIKit
import SpriteKit
let interstitialFBAD: FBInterstitialAd = FBInterstitialAd(placementID: "2320559454634478_1321860725967683")
class GameViewController: UIViewController, FBInterstitialAdDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
loadFBInterstitialAd()
}
}
//fbAds--------------------------------------------------------------------------------------------------------
func loadFBInterstitialAd() {
interstitialFBAD.delegate = self
interstitialFBAD.load()
print("what")
}
func interstitialAdDidLoad(_ interstitialAd: FBInterstitialAd) {
interstitialFBAD.show(fromRootViewController: self)
print("popup")
}
func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
print("failed")
}
//fbAds--------------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud) 我实现了这个 Android 代码来加载并显示插页式广告,关闭广告后它将打开目标 Activity,但我的问题是关闭和打开目标 Activity 之间有 3 秒的延迟...这是我的代码:
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(HomeActivity.this, UNIT_ID, adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
admobInterstitialAd = interstitialAd;
admobInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent();
admobInterstitialAd = null;
/**********Here is the delay when starting the activity for about 3 seconds*******/
Intent intent = new Intent(HomeActivity.this, SettingsActivity.class);
startActivity(intent);
/********************************************************************************/
}
@Override
public void onAdFailedToShowFullScreenContent(com.google.android.gms.ads.AdError adError) …Run Code Online (Sandbox Code Playgroud) 我创建了一个功能,可以在显示其他活动之前显示插页式广告。它正在工作,但onAdDismissedFullScreenContent最近在关闭广告后 2-3 秒被调用。它使前一个屏幕进入待机状态。有机会重新单击该按钮以显示所需的活动。
我真的不明白如何解决这个问题。
这是我的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AdManager.showInterstitial(MainActivity.this, () -> {
Intent i = new Intent(MainActivity.this, MainActivity2.class);
startActivity(i);
});
}
});
AdManager.loadInterstitial(this);
}
}
Run Code Online (Sandbox Code Playgroud)
这是应用程序类:
public class App extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
AdManager.Init(this);
}
public static Context getContext() {
return mContext; …Run Code Online (Sandbox Code Playgroud) interstitial ×10
android ×7
admob ×6
java ×3
adbannerview ×1
ads ×1
callback ×1
delegates ×1
exoplayer ×1
exoplayer2.x ×1
iad ×1
memory-leaks ×1
swift ×1
xcode ×1