iTunes Affiliateプログラムのサポートツール『AppHtml』の更新について

AppHtml Update

11月6日頃から発生していたSearch APIから100pxサイズのアイコン画像URLが取得できない問題に対処するため緊急アップデートを実施いたしましたので概要についてご報告いたします。

発生した事象

AppHtmlブックマークレット並びにWebツール(総称して『AppHtml』)にてアプリ(iPhone、iPad、Mac)を検索してもヒットした結果が表示されなくなりました。

原因について

AppHtmlは、米アップル社が公式に提供するiTunes Search APIを同社の定めるガイドラインを遵守しつつ利用していただくためのツールです。今般、このSearch APIから100pxサイズのアイコンの画象URL(artworkUrl100)を返さなくなっています。

本件について、公式サポート・チームに仕様変更の有無を照会したところ『known issue』として解消に向けて作業中であるという回答を得ていますので早晩解消する可能性はあります。

今回の件がAppHtmlにもたらした影響

2014年4月にSearch APIの仕様変更に伴いwrapperTypeの戻値が追加されたことでartworkUrl100が取得できない事象が発生したため、これを回避すべくartworkUrl100が取得できないアプリは検索結果として表示しないロジックを追加していました。

このロジックが、今般の事象によって検索ヒットしたアプリも全て除外してしまう結果となり、何もヒットしないかのような状態を生みました(プログラムとしては正常に終了)。

また、artworkUrl100が取得できないことで、これに対応する予約語(${icon100url})を指定している場合には「undefined(未定義)」という状態となります。ただし、この上流工程において既にプログラムが終了しているため、この点は実質的な影響がありませんでした。

今回の対応内容

まず、検索結果を正常に表示するため、artworkUrl100の有無で検索結果から除外するロジックを外すこととしました。

次に、後工程においてartworkUrl100が取得できない場合には、予約語${icon100url}にartworkUrl512で取得したアイコン画像URLをセットし、取得できない場合にはartworkUrl60を適用するようにしました。

従来のプログラムのままではartworkUrl100が取得できない場合に予約語自体が「undefined」となります、公式サポート・チームの回答によれば今回の事象は解消する見込みですが、今後、同様の事象が突然発生しないとも限りませんので代替サイズのアイコン画像URLをバックアップとして活用することとしました。

今後の対応に向けて

artworkUrl100はどのentityにおいても取得可能なアイコンサイズであったことから、意図せずプログラムの中で重要なファクターとなっておりましたが、今回のように1つの値が取得できないだけで全てが正しく動作しなくなるという事態を招いてしまいました。

この反省を踏まえ、他にも今回同様の事象を引き起こす要素がないか、また取得できない場合の代替値の手当てなど検証を行っていく予定です。

AppHtmlについて

AppHtmlは @hiro45jp さんが生みの親となり、2013年秋頃より @feelingplace さん、@toshiya240 さん、と拙ブログ主宰の @hondamarlboro にて管理メンテナンスしています。