Closed arusu0629 closed 4 years ago
一度作成したAMoAdViewを破棄することなく同一SIDで短い間隔でsetupRectangleAd
を実行していませんか?
その場合ですと、SDKでは不正な間隔でアドリクエストが走らないようになっており仕様通りの挙動となります。
@tko3
お返事ありがとうございます!
AMoAdView は毎回違うインスタンスになっております(1回目と2回目で別々のものを使用して古いのは破棄している)
ただ、同じ SID で短い間隔で setupRectangleAd
は実行しています。
具体的にはどのぐらい間隔を開けたほうが良いでしょうか?
広告のリフレッシュ間隔より長い必要があるので9秒以上となります。 同一SIDで繰り返し広告リクエストしているとのことですが、広告のリフレッシュではダメなのでしょうか
広告のリフレッシュではダメなのでしょうか
すみません。広告のリフレッシュとは具体的にどういう事を指していますでしょうか? SID を違うものにする、または他の AdNW の広告を使うという意味でしょうか?
@tko3 説明ありがとうございます。 ただ上記だと要件を満たせないです。以下状況を説明致します。
【状況】
↑の状況のため広告ローテーションではなく、広告のリクエストになってしまいます。 画面Bから画面Aまでの遷移の間隔が短い(=広告のリクエスト間隔が短い)と当事象が起きる事については理解しました。 ただ何度か試した所 10~20秒 ほど開けても当事象が起きてしまいました。(9秒以上間隔設ける必要が有るとのことなので正しいと言えば正しい挙動なのですが...)
この状況で問題を解決するにはどうアプローチしたら良いでしょうか? お手数をおかけしますが、ご教授頂けますと幸いです。
ただ何度か試した所 10~20秒 ほど開けても当事象が起きてしまいました。(9秒以上間隔設ける必要が有るとのことなので正しいと言えば正しい挙動なのですが...)
この事象になっているということはアプリ側でAMoAdViewが正常に破棄できていないのではないかと思います。 アプリ側で正常にAMoAdViewが破棄できているかご確認いただけますか?
@tko3 承知致しました! 改めて AMoAdView が破棄されているか確認致しますmm
@tko3 メモリリークしていたのですが、そちらを解消しても短い間隔(10秒ほど)で再度広告表示をすると同じ事象が発生してしまいますね... 1度そちらでもご確認頂けますでしょうか? AMoAdView が破棄されているかはメモリーグラフで確認致しました(AMoAd関連のインスタンスがいくつかありそうですが...)
こちらで用意しているデモアプリではご指摘の事象は発生していません。 「破棄」についてですが、どのように破棄なさってますか? ソースコードをご提示ください
@tko3 ソースコードについて少々お待ちください...! ちなみにテスト用の sid をご共有して頂くことは可能でしょうか?
@tko3 遅くなりました。以下ソースコードになります! AMoAdデモ.zip
@tko3 上記について何か分かりましたでしょうか?
こちらで動作を確認したところ、こちらからお伝えした通りの挙動であることを確認しました。
例) 広告ローテーション間隔が9秒の時、
任意のタイミングで広告ローテーションを停止可能とした場合、 こちらの意図しない間隔で広告リクエストを行うことができてしまいますので、 この仕様となっていることをご理解ください。
@tko3 ちゃんと理解出来ているか確認させてください...!
広告ローテーション間(0~8秒の間)にAMoAdViewの削除、再表示を行った場合 => 広告ローテーション間隔である9秒の段階で広告再取得
これは9秒経つまでは広告を再取得しに行かない。(=広告が表示されて2秒で閉じて、1秒後に広告を表示しても6秒間は再取得せずに、前に表示されていた広告が表示されっぱなし)という認識で合っていますでしょうか? ※2回目に表示される時に広告が既に表示済み(読み込み済み)を判断するメソッドやパラメータなどはありますでしょうか?
広告ローテーション間(08秒の間)にAMoAdViewの削除、9の間に再表示を行った場合 => 再表示実行時すぐに広告再取得
この場合に AMoAdView を生成しても前回表示した広告は表示されておらず、広告が再取得されたタイミングで次の新しい広告が表示される認識で合っていますでしょうか?
広告ローテーション間隔を0
にした場合は毎回 AMoAdView を生成するたびに異なる広告の読み込みが開始されて表示されるという認識で合っておりますでしょうか?
また、広告ローテーション間隔を0
にする場合の懸念点や注意点などがあればご教授頂けますとと幸いです。(広告切れが発生しやすい?など)
これは9秒経つまでは広告を再取得しに行かない。(=広告が表示されて2秒で閉じて、1秒後に広告を表示しても6秒間は再取得せずに、前に表示されていた広告が表示されっぱなし)という認識で合っていますでしょうか? ※2回目に表示される時に広告が既に表示済み(読み込み済み)を判断するメソッドやパラメータなどはありますでしょうか?
上記であっております。読み込み済みかどうかを判断する方法はありません。
この場合に AMoAdView を生成しても前回表示した広告は表示されておらず、広告が再取得されたタイミングで次の新しい広告が表示される認識で合っていますでしょうか?
前回の広告が表示されている状態となり、広告が再取得されたタイミングで次の新しい広告が表示されます。
広告ローテーション間隔を0にした場合は毎回 AMoAdView を生成するたびに異なる広告の読み込みが開始されて表示されるという認識で合っておりますでしょうか? また、広告ローテーション間隔を0 にする場合の懸念点や注意点などがあればご教授頂けますとと幸いです。(広告切れが発生しやすい?など)
0にした場合、AMoAdViewを生成するたびに広告の取得を行います。 懸念としてはご推察通り通常より広告切れが発生しやすくはなると思いますが、これはその時々の案件状況にもよります。
@tko3 理解しました!ありがとうございます! そして1件だけ追加でご質問が...(申し訳ないです)
0にした場合、AMoAdViewを生成するたびに広告の取得を行います。
とありますが、こちらも「2回目にAMoAdView を生成した時には1回目の広告が表示されっぱなし」という認識で合っておりますでしょうか?
はい、2回目の生成段階では1回目の広告が表示されています
@tko3
はい、2回目の生成段階では1回目の広告が表示されています
なるほどです。 1つ実装でご相談があるのですが...
今は広告が表示されるまでインジケーターを表示しております。インジケーターを消すタイミングとしては amoadViewDidReceiveAd
のコールバックで消しております。
今の実装だと2回目以降だと広告が既に表示されている(=1回目の広告が)にも関わらず、インジケーターが表示されてしまい、不自然に見えてしまいます。このケースに対して何か解決策などはありませんでしょうか?
SDK側ではアプリ上での実装状況やViewに干渉すべきではないので、インジケータの状態などはアプリ側でどうにかするものだと思います。
@tko3 承知致しました。 色々ご対応頂きありがとうございました!mm
【環境】
【実装概要】
【不具合概要】 1回目の広告表示時には↑の
setupRectangleAd
が呼ばれて数秒後にamoadViewDidReceiveAd
のコールバックが呼ばれて、広告が正しく表示されます。 しかし2回目以降に同じ手順(流れ)で処理をした際にamoadViewDidReceiveAd
のコールバックが呼ばれる前に最初から広告が表示されてしまいます。またamoadViewDidReceiveAd
のコールバックが呼ばれるまで10秒以上はかかってしまいます。※まだ広告枠の審査中のためテスト広告が表示されているのですが、それが原因の可能性もあり?