amakanサービス終了の経緯

https://amakan.net/ という URL で提供していた Web サービスについての話です。サービス終了の経緯と書いていますが、amakan について説明しておく必要があるだろうと思うので、前半に amakan とは何かという話をして、後半にそのサービスの終了の経緯についての話をします。

amakan とは

amakan は2016年7月頃から2018年12月31日まで自分が運営していた Web サービスで、Amazon (正確には Amazon アソシエイト・プログラム) の提供する書籍データを利用しながら、主に漫画やライトノベルなどの発売日を自動で収集し、Web サイト上や RSS 形式や iCal 形式で新刊情報を配信するというサービスでした。

特長として、amakan には書籍名等から自動的にシリーズに分類する機能があり、シリーズを元にして購読中のシリーズの新刊情報を配信するということが出来ていました。例えば自分の場合だと、これを iCloud のカレンダーに登録していたので、新刊発売日になると iPhone や Mac に通知が送られてくるという仕組みが実現できていました。

また自分の読書履歴を公開あるいは非公開にすることができ、フォローしている人の読書履歴や読みたいと思っている本をタイムライン形式で閲覧できたり、自分の読んだシリーズを他に読んでいる人の読書履歴を掘って新しい本を探すようなこともできるようになっていました。

シリーズについて

シリーズ情報は誰かが提供してくれるものではないため、書籍の名前、カテゴリ(漫画、ライトノベル、雑誌など)や作者を amakan 側で解析し、良い感じに分類するということをやっていました。

恐らくそこまでその分野に明るい訳ではない人達が手作業で入力しているのだろうと思いますが、Amazon を通して提供される本の情報は毎巻ごとに書籍名や作者の表記がバラバラで、漢字や記号の表記が異なるのは勿論、巻数がローマ数字だったり漢数字だったりサブタイトルがたまに省略されていたりなど、とにかく表記がバラバラなので、その違いを吸収する仕組みを備えています。

また、本の「シリーズ」というのは決して一つに決まるものではありません。1つの本が複数のシリーズに属するようなタグのようなものであり、更に1つの本というものには複数の版があり、版というものも出版社によって更に曖昧な区分の違いがあり、更に販売側によって1つの本が複数の商品と紐付いていたり、昨今では電子書籍という販売方法が存在することや、1つの本を細かく分けて安く売る分冊版と呼ばれる手法が用いられたり、通常版と特装版という違いがあったり、同じ原作を章ごとに異なる作者がコミカライズしていたり、作者名が巻によって連名だったり分かれていたり名前が途中で変わったりなどと、ひとくちにシリーズと言っても難しい問題が沢山含まれています。これらについても、すべての本が必ず1つのグループにだけ属し、かつ1つの本から得られる情報だけからその本の属すべきグループを求められ(要はパフォーマンスに問題が無い)、かつ利用者がそれをシリーズとして扱っても違和感がない、というような分類を用意できていたと思います。

ごく初期のシリーズ分類の実装方法について発表した資料が https://speakerdeck.com/r7kamura/amakanniokerushu-ji-falsesirizupan-ding-fang-fa-nituite-2016-08-21 にあります。このあとパフォーマンスや正規化に問題があり1度完全に作り直した上で全データを新分類方法に移行していますが、根本的な考え方自体は同じです。

また、書籍名だけからシリーズ名として有意な文字列を求める処理や、同じく書籍名から巻名として有意な文字列を求める処理、複数の作者が併記されている可能性のある文字列名から正規化された作者名の配列を求める処理などを OSS 化したものを https://github.com/amakan/amakanize に公開しています。サービス内から実装をコピーして不要なところを取り除いて公開しただけという訳ではなく、実際にサービス内でもこのライブラリを利用していました。

Amazon アソシエイト・プログラムが利用できなくなるまで

冒頭で少し触れたように、Amazon アソシエイト・プログラムを利用できなくなったことが原因でサービスを終了しました。収支的な意味ではなく、書籍データを取得するには Amazon Product Advertising API という Web API を利用する必要があり、これを利用するためには Amazon アソシエイト・プログラムに登録する必要があるのですが、この登録を解除され、再登録も恐らく永劫的に許可されなくなったため、書籍データが取得できなくなり、サービスの提供が出来なくなったという状態です。そもそも本のタイトルや画像を Web サービス上で紹介できていたのは、Amazonアソシエイト・プログラムから提供される情報を利用して、Web サービス上で Amazon の商品を紹介しているために実現できていたことでした。

ここからは時系列で出来事を振り返ります。

amakan は2016年7月頃から運営していました。

2016年7月、amakan の利用者の1人が amakan 向けの Google Chrome 拡張をつくってくれて、その拡張は Amazon の購入履歴ページでボタンを押すと、過去の購入履歴から自動的に読書履歴を計算して amakan に登録してくれるという機能を持っていました。完全に便利だと思ったので、開発者と話して公式の Google Chrome 拡張として登録したのでした。

2016年9月、これは関係ないかもしれないと思うもののお問い合わせ利用可能回数みたいなものを稼いでいるかもしれいので一応記載しておきますが、Amazon Product Advertising API で「金色のガッシュ!!(9) (講談社漫画文庫)」の商品 ID を表す ASIN 4063707849 にアクセスしたとき、(その商品の Kindle 版商品情報などとリンクするための) AlternateVersions 要素に3巻から9巻までの商品がリンクされてしまっている、というお問い合わせを送りました。一時的な不具合かと思い1ヶ月ほど様子見した後で更に問題があったために送ったのですが、これについては回答があり、「ご連絡の件につきまして、当プログラムでも確認いたしましたが、同様の問題を再現出来ませんでした。」という連絡が来て、連絡が来たあとで確認すると直っていました。たまたまタイミング良く解決したか、もしかしたら内部で厳密に確認したときにキャッシュが更新されるような仕組みなのかもしれません。Twitter Card とか Validator で確認するとキャッシュが更新されますよね。

2017年6月3日に「Amazonアソシエイト・プログラム運営規約からの重要なお知らせ」というタイトルのメールが届き、「お調べしたところ、Amazonアソシエイト・プログラム運営規約を順守されていないことを確認しましたのでご連絡いたします。運営規約上、サイトURL情報(TwitterやFacebook等、SNSのURLを含みます)は常に最新の情報でなければなりません。しかしながら、貴殿は登録のサイトURL情報を最新のものにしないまま、未届けのサイトURLでアソシエイトリンクの使用を行っています」という旨の文章が書かれていました。amakan は途中から amakan.net というドメインになったのですが、https://amakan.net/ の登録を完全に忘れていたので、メール内に記載されていた手順に基づいて情報を更新し、お問い合わせ窓口からその旨を連絡しました。

2017年6月15日に再度メールが届き、

貴殿の違反内容は以下の通りです(ただし、これら以外にも違反がある場合は、下記に限定するものではございません)。

  • 貴プログラム内の情報やEメールアドレス、問い合わせ先情報、貴サイトの同一性を含むアカウント情報が不完全、不正確、または更新されていないこと。よって、Amazon.co.jp は、運営規約第4条及び第14条に基づき、本Eメールを以て、貴殿との間で締結し> ている運営規約を解除し、貴殿のアカウントを閉鎖いたします。また、運営規約第4条及び第7条に基づき、今後貴殿に対する紹介料その他一切の支払いを行いません。」という内容の文章が記載されていました。情報は更新しているはずなので、その旨を問い合わせ> ました。 2017年6月20日、再度メールが届きます。「残念ながら、ご連絡いただいた内容から判断した結果、貴殿のアソシエイト・アカウントを再開させてできません。アカウントの停止および支払差止の根拠に関しましては先日お送りした文書に記載の通りです。貴殿の違> 反内容は以下の通りです(ただし、これら以外にも違反がある場合は、下記に限定するものではございません。)。
  • Amazonアソシエイト・プログラム参加要件7項に違反すること
  • Amazonアソシエイト・プログラム参加要件16項に違反すること

今後もお忙しい中お時間を割いていただき、当サイトへEメールにてご連絡いただきましてもこれ以上ご案内できる内容がございません。そのため今後、本件に関しましてお問い合わせいただきましても、ご返答はいたしかねますことをご了承下さい。 」

これは以前までとは異なる違反内容です。7項は「甲乙間で別途本参加要件を参照した書面による合意がない限り、乙は、以下の媒体上でまたはそれに関連して、アソシエイト・プログラム・コンテンツもしくは特別リンクを使用またはアマゾン・サイトにリンクさせてはなりません。」16項は「乙は、アマゾン・サイトに関連して甲のお客様が使用するアカウント情報(アマゾン・サイトのお客様のユーザ名またはパスワードを含みます。)の要請、収集、取得、保存、キャッシュその他使用してはなりません。という内容です 。これは amakan 向けにつくった Google Chrome 拡張が違反内容に該当しているのだと推測しました。対応として、Mozilla Add-ons、および Google ウェブストアでの公開を停止し、amakan 上でもその旨とアンインストールしていただくようお願いを掲載することにし、再度問い合わせを送りました。

これ以降で送ったお問い合わせに返信が来ることはなく、Amazon アソシエイト・プログラムの利用が再開できることはありませんでした。また、これ以降2ヶ月おき程度で合計7度 Amazon アソシエイト・プログラムへの参加申請を送りましたが、承認されることはありませでした。ちなみに、amakan の運営をはじめるまでは自身のブログで商品を紹介するために Amazon アソシエイト・プログラムを利用していて、「20XX年に買ってよかったもの」みたいな記事で商品を紹介したりしていたので、amakan には使わないが自身のブログ記事で商品を紹介したいという旨での参加申請も二度送ったのですが、これも承認されることはなかったので、私の名義ではもはや参加できなくなっているのではないかと思っています。

しばらくの間お問い合わせへの返信待ちという状態を続けていたのですが、これだけ待っても返信が来ないのであればもう来ないだろうし、これ以降のサービス継続は難しいと考え、適当な区切りをつけてサービスを終了させることにし、2018年12月31日に amakan のサービスを終了させました。

振り返り

今回こういう経緯でサービスを終了することになってしまいましたが、特に Amazon アソシエイト・プログラムに対して反感を抱いているということはありませんし、寧ろこれまで商品情報を利用させてもらってありがたいなという気持ちと、契約解除が通達されてからかなりの長期間において amakan のサービスを通して商品情報にアクセス可能な状態にしてしまっていて申し訳なかったなという気持ちがあります。後者に関しては、この場を借りてお詫びしたいと思います。誠に申し訳ございませんでした。

また amakan の利用者におかれましても、こういう形でのサービス終了となってしまって申し訳ありませんでした。これまで長らくご愛顧頂きまして、本当にありがとうございました。自分の Twitter で宣伝していた関係上、Web エンジニアの方に多く使ってもらっていたような感覚があるのですが、https://r7kamura.hatenablog.com/entry/2017/04/05/135444 に内部実装に利用していた技術情報をまとめてあるので、もし興味があれば読んでみてください。この分野については色々と考えながら実装した経験があるので、似たような知識が必要とされる仕事に知見を活かしていきたいなと思います。

最後に amakan 利用者としての自分という意味での振り返りですが、amakan の新刊通知が利用できなくなって以来一切シリーズものの本を読まなくなってしまったので、今後どうしていこうかなと少し困っています。これまで新刊.net やブクログ、各種書籍販売プラットフォームでの新刊通知なども試していたのですが、それらが使いにくいと思ったために amakan を作り始めた経緯があるので、まだ特に代替策が見つかっていません。amakan の開発をはじめて以降で、Amazon では作者のフォロー機能がついたり、漫画用の本棚機能が付いたり、Kindle アプリでの読了後に次の巻をサジェストするような機能が付いたりしているので、新刊情報の通知における良いサービスを提供してくれるようにならないものかと期待しています。シリーズものの作品について、もし何か良い新刊管理の方法を知っている人がいれば教えてください。