ガンズターン 公式サイト

楽しいことに、まじめです。 ——ガンズターンアプリ研究所公式サイト

iPhoneアプリに広告を入れる際の注意事項

Pocket

昨日の記事に引き続き、過去にわたしが経験したリジェクト事例を共有させてもらいますね。
タイトルにあるとおり、iPhoneアプリに広告を入れるにあたって、以前色々と苦労した話がメインになります。
きっと、わたし以外にも同じような理由でリジェクトされた方がいらっしゃると思いますので、そういう方々のお役に少しでも立てたのなら幸いです。
(昨日の記事で、今日は砕けた内容の記事にするとお伝えしていましたが、それは明日以降に延期したいと思います)

1. リジェクト事例1「広告が実装されてないと勘違いされてリジェクト」

これは「りずもぐ!FREE」が初めてリジェクトされた時の理由ですね。

わたしは、広告表示を実装する際に「AdStir」というASPが提供しているSDKを使って、複数のASPを動的に切り替えながら表示するような仕組みにしています。

その「AdStir」のSDKを使用するためには「AdSupport.framework」というフレームワークをプロジェクト内に組み込む必要があるのですが、実はこの「AdSupport.framework」を広告を表示させないアプリに組み込むとリジェクトされます。

また、広告表示のためにiAdだけを表示させる場合も、このフレームワークは不要のために、アプリに組み込まれているとリジェクトの対象になります。

わたしの場合、広告表示はiAdだけでなく「AdStir」も使っていたので、本来ならばこのリジェクトの対象にはならないはずでした。
けれど、引っかかってしまった。

なぜか。しばらく答えがわからずに放置してしまいましたが(具体的にいうと1年も!笑)、わかってしまえばなんのことはない理由でした。

2. 事例1 解決策「広告が表示されてる動画をアップロードして送付する」

ようは「AdStir」が提供している広告(あるいは、わたしがAdStirに設定していたほかのASP)が、Appleの中の人の確認環境(海外)だと表示されなかったんですね。
その結果、iAdしか表示されなかったため、Appleの中の人は

「このアプリ、iAdしか実装してないのにAdSupport.framework使ってるよ。規約違反だからリジェクトしちゃお」

と考えてリジェクトとなった、というわけです。

まあ、実際に表示されないのだから、リジェクトされても仕方ないですよね。

これに気づいたのは、偶然でした。
iPhoneの設定を英語にした状態で自分のアプリを起動してみたら、iAdしか広告が表示されてないことに気づいたのです。
このことと、リジェクトされた時の英文(すみません、どっかに保存してたのですが見つかりませんでした)が頭の中で結びつくまでにしばらくの時間がかかりました。

実は、ASPの種類によっては、日本ではいろんな広告が表示されるが、海外ではあまり表示されない(海外でも有効な広告が少ない)というものがあります。
わたしがAdStirを通じて設定していたものが、そうでした。(具体的に書くとnendです。nendは、日本国内で使用する分には非常に収益率が高く、広告の表示率も高い広告会社さんですが、海外ではあまり(というかほぼ?)広告が表示されないようです)

そのことに気づいてから、再申請するまではあっという間でした。

わたしは1年以上放置していたAppleからの英文に対して、

youtubeのここに、iAd以外の広告が表示されてる動画をアップロードしたから、確認してくれー!」

という意味のたどたどしい英文を送りました。

このためだけにyoutubeにアカウントを作り、プライベートな動画としてアップロードする、というけっこう面倒くさい手順を踏みましたが、結果としてこのアプローチは正解でした。

はてさて、これでめでたく「りずもぐ!FREE」が公開できる……
そう思ったのもつかの間、わたしのアプリはまたしてもリジェクトを食らってしまうのでした……。

3. リジェクト事例2「iAdが表示されないよと言われてリジェクト」

……はい。
まあ、見出しの通りの理由です。

わたし、最初のリジェクト時の対応で、ちょっとやりすぎた部分がありまして。

実はわたしが採用している「AdStir」のSDKを使うと、複数のASPを一定の確率で動的に切り替えることができるようになるんですが、この時にiAdの表示確率を一時的に「0」にしていたんですね。

なぜなら、最初のリジェクトの理由が、
「iAd以外の広告が表示されないのにAdSupport.framework使ってるよ」
だったからです。

「そういう理由なら、邪魔なiAdを一時的にでも表示されなくしちゃえ!」

……という考えのもとにした対応だったんですが、これがまた見事に裏目に出ました。

リジェクト事例1の時とはまるっきり正反対の理由で、

「iAdが表示されないのにiAd.framework使ってるよ!」

という英文(例のごとくなくしました)が返ってきてリジェクト。

さすがに凹みましたが、しかしこればかりはすぐに対応できました。

4. 事例2 解決策「iAdの表示確率を元に戻す」

というわけで、AdStirのサイト上の管理画面からiAdの表示確率を「0%」から「50%」にあげて、再申請。
これにてめでたく「りずもぐ!FREE」には承認が下りて、無事にAppStoreで公開とあいなりました。

……めでたしめでたし。

といくかと思えば、そうは問屋が卸さないのでした。(←言い回しが古い)

5. 番外編「iAd Workbenchにログインできない!」

これは「りずもぐ!FREE」が公開されてからしばらくは気づかなかったことなんですが、なんと、アプリを公開してから一ヶ月近く、iAdがまったく表示されないという事象が続いていたんです。

これに気付くまでは、しばらくの時間が必要でした。

iAd付きのアプリを配信するようになると、iTunesConnectの管理画面を通じて「iAd Workbench」なるiAdの管理画面へと移動できるようになるんですが、わたしの場合はこれがまったく移動できない。
いろいろとネットで調べるんですが、どのサイトにも「アプリ公開してから2〜3日したらログインできるようになるよ」と書かれているだけ。

最初はわたしも楽観的に捉えていましたが、なんとアプリ公開から一週間以上たってもログインできない状況が続いていたんです。

(これはなんかおかしい……。)

そうは思うものの、自分の頭ではいくら考えても理由がわからない。

仕方ないので、iTunesConnectの問い合わせフォームから、英文で問い合わせを投げてみました。

しかし、数日経って返ってきた返信にも

「ちゃんとiAdの規約に同意してますか? まずはそれを調べてから、それでも解決しなかったら改めて連絡してください(意訳)」

という英語の返信が来ただけ。

さすがのわたしも、規約に同意せずに広告付きアプリを配信するほど愚か者ではありません。

「そんなそっけないこと言わないでもっかい調べてけれー(意訳)」

という英文でわたしが再度問い合わせしますと、その次の返信でAppleから来たのは、

「iAd規約への同意がアプリ配信開始後だったから、iAdの配信が始まるのは、この次のバイナリが公開されてから2〜3日ぐらい後だよ。(激しく意訳、そのうえかなりうろ覚え)」

という意味の英文でした。

つまり、わたしは確かにiAd規約に同意していたんですが、それは「りずもぐ!FREE」の配信開始直後のことだったので、規約同意以前に配信開始していたアプリではiAdの表示がされない、ということのようでした。

「えぇ〜! そんなこと、どこにも書いてないじゃないか〜……!」

となげいても始まりません。
規約に同意する順番を間違えたわたしがすべて悪いのです。

幸い、「りずもぐ!FREE」にはその時すでに申請している新バージョンのバイナリが存在していましたので、おとなしくその配信開始を待つことに……。
(例のごとく、そのバイナリが審査を通って公開されるにはさらに一週間の時間が必要でしたが……)

6. ようやくすべて解決! iAd Workbenchにログイン!

で、それから一週間+2、3日後のことですが、ようやくわたしはiAd Workbenchへのログインができるようになりました。
ログインして最初に表示される棒グラフを見る限り、一日に1〜2回は広告も無事に表示されている模様です。

いやー。最初のリジェクトから、ここに至るまで、とても長い道のりでした。

ふむ……。本日の記事もずいぶん長文になってしまいましたね。

ともあれ、昨日と今日で、わたしが体験したリジェクト事例のうちの3つ(氷山の一角ですがね)をご紹介しましたが、いかがでしたでしょうか?

番外編はリジェクトとは直接の関係がないものではありますが、iAd表示に命をかけている人がもしいらっしゃったら人命に関わる事柄ですので、この場を借りて共有させていただきました。

世界中の誰か一人でもいいので、この記事を読んでリジェクトを切り抜けられる人がいらっしゃいましたら幸いです。

それでは、また。
気付くとマクドナルドで2時間以上も記事を書き続けていたRyosukeより。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL: http://www.gunsturn.com/2015/05/11/reject_ios_ad_imprementation/trackback/