◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。API 連携を足したアプリは移行先の確認を●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。API 連携を足したアプリは移行先の確認を●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-10-25中級

画面を行き来したあと、全画面広告が出なくなりました。広告の部品が、閉じた画面を握ったままだったためです

画面を開き直すと全画面広告が出なくなる不具合の原因は、使い回す広告の部品が閉じた画面を通知先に残していたことでした。通知先だけを差し替える部品を、手元で動かして確かめた記録です。

全画面広告AdMob74ライフサイクルExpo Router7個人開発227トラブルシューティング97

✦ プレミアム記事

壁紙を開いては戻り、別の壁紙を開いては戻ります。壁紙アプリの画面は、使われているあいだ何度も作られては閉じられます。

その行き来の途中で、全画面広告が出なくなる不具合が見つかりました。最初に開いた画面では出ます。ところが、いったん戻って開き直すと、広告を出すはずの場面で何も起きません。クラッシュも、エラーの表示もありませんでした。

広告の部品は作り直さずに使い回します。ただし、その部品が知らせる先は、画面が変わるたびに今の画面へ差し替えます。 直した考え方は、この一文に収まりました。

個人開発で運用しているネイティブの壁紙アプリで起きた話ですが、Rork が書き出す Expo のアプリにも、同じ型は作りやすいと思います。以下は、その型を TypeScript で組み直し、Node 22 で動かして確かめた書き残しです。

症状は「二度目から出ない」だけでした

手がかりが少ない不具合ほど、観察を表にして、何が違うのかを先に押さえておくと迷いません。この型の不具合では、次の組み合わせになります。

観察したことそこから分かること
最初に開いた画面では広告が出るAdMob のユニット ID や審査状態など、広告の設定は合っています
戻って開き直した画面では出ない広告を出す側ではなく、読み込み完了を受け取る側の問題です
エラーが一つも出ないSDK の失敗ではなく、通知がどこかへ届いていない形です
アプリを終了して起動し直すと、また一度だけ出る状態が、画面ではなくアプリ全体の長生きする場所に残っています

広告の設定ばかりを疑っていると、遠回りになりやすい症状です。私は、まず通知の宛先から確かめる順番を好みます。設定が合っているのに二度目から出ないなら、まず「通知が誰に届いているか」を疑います。

起きていたこと:作り直さない設計の中に、最初の画面が残っていました

全画面広告の部品を画面ごとに作ると、読み込みが毎回やり直しになります。そこで、アプリ全体で一つだけ持つ静的な保持に置き、使い回す形にしておりました。ここまでは、悪くない判断だったと感じています。

問題は、その保持の中に、最初に使った画面への参照も一緒に入っていたことでした。画面を閉じても、保持は閉じた画面を握ったままです。新しい画面は広告を取りに行き、同じ部品を受け取ります。けれど、広告が読み込めたという知らせは、閉じた画面のほうへ飛んでいきます。新しい画面は、いつまでも「準備中」のままです。

直し方は、部品を作り直すことではありませんでした。作り直さずに、参照だけを最新の画面に差し替える形にしました。のちにリワード広告の部品でも、同じ型の不具合が出ました。使い回す部品に、画面への参照を直接持たせないことを、私は点検の最初に置いております。見つけたときの対処は、参照を外すのではなく、差し替えられる形にすることです。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦画面を行き来したあとに広告が出なくなる症状を、広告の設定ではなく「通知の届け先」の問題として、数分で切り分けられるようになります
✦広告の部品を作り直さずに使い回しつつ、通知先だけを今の画面へ差し替える部品を、広告 SDK から切り離して自動テストできるようになります
✦画面の切り替えで、古い画面の後片付けが新しい画面の接続を消してしまう順序の罠を、出荷前に先回りして防げるようになります
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-10-24
ANR の原因は、画面を閉じるときの「後片付け」でした。トレースから止めている行を拾って分類します
Android の ANR トレースを読み、メインスレッドを止めていた行を課金クライアントの終了や画像の同期デコードなどに分類する Python スクリプトです。壁紙アプリで見つけた二つの原因と、直し方の考え方をまとめました。
⬡ 開発ツール2026-10-25
効果音が40回目で鳴らなくなる——expo-audio の createAudioPlayer は remove() だけでは片づきません
expo-audio で再生のたびに createAudioPlayer を作ると、Android では約40回で音が止まり、didJustFinish も届かなくなります。remove() と release() の役割の違い、作り方を変える三つの選択肢、止まったときの見張り方を整理します。
⬡ 開発ツール2026-10-22
「容量不足」と出た動画の保存。空き容量を疑う前に、ファイルが 2GB を超えていないかを見ます
Android で 2.2GB の動画だけがギャラリーに保存できず、「Not enough space」と出る。空き容量は十分なのに、です。Expo の公開 Issue を読み、同じ境目をこの手元の Linux で動かして確かめました。保存前に大きさを見る数行と、分けてコピーする考え方をまとめています。