広告が出ないと、実機チェックの 25 項目が止まった:開発者モードだけテスト広告を使い、賞品名を直書きしない
トレカダッシュ 開発の記録 / 2026年9月
iOS アプリ「トレカダッシュ」には、毎日 1 回、おみくじ(抽選)を引ける機能があります。「動画を見て挑戦する」と、動画の広告のあとに、抽選の演出が始まります。
2026 年 9 月 11 日、実機での確認のチェックリストを見直すと、問題が見つかりました。広告がまだ配信されていないので、チェックリストの 163 項目のうち 25 項目が、確認できないのです。
数字は、2026 年 9 月 11 日の作業の記録から書いています。
広告が出ないと、その先が確かめられない
審査の前、配信が始まる前は、自分の広告の枠に、まだ在庫がありません。おみくじの「動画を見て挑戦する」が、「広告を準備中です…」のまま押せません。その先の、抽選、演出、賞の反映、配送先の入力までが、丸ごと確かめられません。実機テストのチェックリスト 163 項目のうち、25 項目(15%)が止まっていました。
開発者モードのときだけ、テスト用の広告を使う
Google が公開しているテスト用の広告の枠を使います。テスト広告は、必ず在庫があります。開発者モードのときだけ、これに切り替えると、本番と同じ道で、最後まで確かめられます。
| 本番 | 開発者モード | |
|---|---|---|
| バナー | 自分の広告の枠 | Google のテスト用の枠 |
| リワード(動画) | 自分の広告の枠 | Google のテスト用の枠 |
| ネイティブ | 自分の広告の枠 | Google のテスト用の枠 |
| アプリ起動 | 自分の広告の枠 | Google のテスト用の枠 |
開発者モードは、「バージョンを 7 回タップ」かつ「同じ端末の ID のときだけ」有効になります。利用者に出ることは、ありません。広告の規約では、テスト広告は、自分の端末だけで使います。この条件を、満たしています。
賞品の名前を、どこにも直書きしない
もう 1 つ、似た話があります。おみくじの賞品を変えたあと、「テキストが、前のままになっているところもある」という指摘を受けました。賞品は、これからも、そのたびに変えます。
調べると、表示側は正しい状態でした。
- 賞品の一覧、応募の規約、結果のカードは、全部同じ 1 つの設定(
lotteryConfig/publicStatus)を読む。 - 賞品を変える処理は、「いまの設定」と「公開用の設定」を、同じトランザクションで、両方書く。ずれる余地が無い。
- Pro 機能の一時解放は、賞品の名前でなく、別の項目(
perk)で判断する。
古いままだったのは、賞品の名前を直書きしていた 2 か所でした。
- 実機テストのチェックリスト(アプリ内に出る)の 3 項目。「中吉『24 時間、広告が非表示になります』と出ている」のような書き方。
- 設定が届いていないときの予備の文。
チェックリストは、賞品の名前を書かない言い方(「いま管理画面で設定している賞品名が、そのまま出ている」)に直しました。予備の文は、「賞品は準備中です」にしました。「賞品を変えた直後に、賞品一覧、応募規約、結果カードの 3 か所が、全部新しい賞品になっている」という項目も足しました(164 項目)。変えるのは毎回のことなので、その都度見る場所を、1 項目にまとめたのです。
ただ、サーバー側の「設定が 1 つも無いときの既定値」には、昔の文言が残しています。そこは、文言と効果が、対になっている(広告非表示の文言と、広告非表示の解放)からです。片方だけ中立にすると、「解放は付くのに、説明が無い」というちぐはぐになります。
分かったこと
確かめられないものは、確かめる道を作る。変わるものは、直書きしない。
- 広告のように、外から来るものは、テスト用の道を用意する。本番の在庫に頼ると、その先が確かめられません。
- テスト用の道は、開発者だけに。7 回タップと端末の ID の、2 つの条件で守ります。
- 毎回変わる文言は、どこにも直書きしない。1 つの設定から読み、書くときは同じトランザクションで。
- 対になっているものは、片方だけ直さない。文言と効果は、一緒に直します。
この話に出てくるもの
- トレカダッシュ — トレカの抽選・予約・先着の情報を集める iPhone アプリ
- App Store 審査で「Guideline 2.1 Information Needed」が届いた — 審査に関する別の記録
- App Store の審査で止まった四つ — 審査の記録
- 広告の間隔を、回数ではなく時間で測る — 広告の別の話
ほかの記録
- 「これベイブレードじゃん」が、関門を入れても戻ってきた:弾いた値が、別の形で漏れた — 「商品名に玩具の名前があれば作らない」関門を入れても、AI が返す商品名から玩具の名前が消えて、すり抜けた。判定を告知の本文に移し、「カードゲームの語が 1 つも無いときだけ」弾く条件にした。
- 「次回へ」と出続けていた 25 本の点検は、一度も走っていなかった:3 つの時間予算を、同じ開始時刻から数えていた — 点検の処理は 3 段構えで、予算が同じ開始時刻から数えられていたため、持ち回りの 25 本は毎回 0 本だった。ログの「18 件を次回へ」は全部の意味だった。制限時間から割り付ける形に直し、各ステップの所要時間をログに出した。
- 関門を直しても、すでにあるデータは直らない:「もう試した」印・URL の目印・対応表の 3 つの実例 — 判定を直したのに既存の 32 件のうち 12 件が直らなかった(印が 7 日残る)、URL に載せた目印が張り替えで失われて 111 件が再分割された、対応表から外しても書かれた値が残った。同じ形の報告が 5 件だった監査の記録。
コメント
感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。
押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。