新刊情報の収集

  日常

ogochan

CultureSquareを収益化したいなと思い、広告を貼ることを考えました。

元々ネット広告は個人的にはあまり好きではないのですが、ああいった「ハードの絡む情報提供」となると「どこで買えるんだ?」という疑問が出たり、「もっと掘り下げたい」という希望があったりするので、本当に有用なものは「出口」を紹介して行くことは大事だろうと考えています。

ところが、あまり簡単じゃないのですね。

背景

今はネット広告に逆風が吹いています。うっかりアドネットワークの広告を貼ると詐欺広告が配信されてしまうというリスクがあります。それ自体は見る方のリスクに過ぎませんが、そういった詐欺広告が出てしまうと、サイトの信用を落としてしまいます。老舗筋であれば「手違い」とか言っておけば良いんでしょうが、CultureSquareみたいなどこの馬の骨ともわからんサイトだと、そのまま検索ブロックに入れられておしまいになってしまいます。

となると一番無難なのが「自社の宣伝」なんですが、これはまぁ金になりません。当たれば大きいとは思いますが、「日々の収益」にはなりません。

「関連商品」を自分達で作って販売するというのが考えられます。これは元々そう考えて始めたサイトだということもあるので、究極のゴールとしては正しいのですが、「関連商品」を作るだけの余裕(時間、金、工数...)が必要になってしまい、すぐには出来ません。

そうすると次に思い浮かぶのは手動でアフィリエイトを貼るということです。手動で貼るのであれば、

  • 納得のできる商品だけ宣伝できる
  • マテリアルが自由(動画とか勝手に配信されたりしない)
  • 工夫すれば見る方の不快感を低減できる、何なら歓迎される

というメリットがあるわけです。

もちろん問題はあって

  • 商品を探すのが大変
  • マテリアルを作らなければならない
  • 本編とうまく合わせるのが大変

というのが障害となります。

マテリアルについては、ちょっと前であればAmazonは指定されたタグを貼るだけで適当にやってくれたのですが、どうも最近それがなくなってしまったようで、手間がかかります。さらに酷いことには、たとえば「書影」を貼りたいと思ったらAPIを呼び出してURLを教えてもらうわけですが、そのAPIを簡単に使わせてはくれません。Amazonはサイトのクロールを禁止しているので、それで何とかすることも出来ません。

解決案

この問題を解決するにあたって問題を整理しておきます。ここで必要なのは、

  • 広告を探す
  • 広告マテリアルを用意する
  • 本編とうまく合わせる

ということです。

今のところ、広告は「個別に対応する」ことにしています。アドネットワークの類は使いません。それは最初に書いたような事情からです。全部自分達が納得できる広告だけを貼ることを考えています。

とは言え、たとえば「Amazonの本のアフィリエイト」に限定しても、品数は膨大にあります。どれをどう出すかは人間ができることではありません。さらに悪いことに、Amazonはそのような目的でクロールすることを禁止していますから、

Amazon商品の広告のためにAmazonを見ることは事実上できない

ことになっています。まぁ人間が見るのは構わないわけですが、自動的にやることはできません。

料率とか手間とか考えて、とりあえずはAmazonの書籍のアフィリエイトだけ考えることにします。

広告の基礎データを得る

広告をするためには基礎データが必要です。ここでは「書籍」に限ることとします。そして幸いなことに、出版されている書籍のほとんど全てはAmazonで購入可能です。ですから、必要なのは「広告のネタになる書籍の情報を集める」ということになります。

これらの情報を得られるサービスをしているサイトがいくつかあったりしたのですが、他人様の作ったものに頼るのはどうかと思いますし、無料のところとかあまり使うのははばかられるし... とか考えて、早々に断念しました。そこで、自前で類似のことができるようなシステムを作ることにします。

「書籍の情報」には、

  • タイトル
  • 内容
  • 価格
  • Amazonへのリンク

が欲しいところです。Amazonサイトのクロールは禁止されているので、出版社のサイトからの情報を使うことにします。

「出版社のサイトからの情報」と言っても、ちゃんと新刊本のRSSを出力してくれるところもあれば、「これから出る本のページ」があるサイトもあります。RSSが出ていても、欲しい情報が全てRSSに含まれているわけではない(特に価格はない)ので、結局個別の本のページをクロールする必要があります。

Amazonへのリンクは、個別の本のページにあるところ(たとえばCQ出版はあります)もあれば全くないところもありますが。ISBNさえわかってしまえば簡単な計算で出せるので、要するにISBNを取得出来れば良いということになります。ただし、AmazonはKindle以外の電子書籍は扱ってないっぽくて、ISBNのある電子書籍であってもAmazonのページがないことがあります。これは「本の体裁」についての情報を見て、電子書籍であればAmazonページはないんだという判断をすることになります。

参考までのAmazonのリンクについては、

Amazon.co.jpの特定の商品へのシンプルなテキストリンクはどのように作ればよいですか

ここに情報があります。ASINという番号が必要ですがこれは10桁ISBNで、10桁ISBNは普通使われている13桁ISBNの先頭から3桁を取り除いて、末尾のチェックデジットを計算しなおせば得られます。簡単ですね。

クロール対象は今のところ新刊本だけにしています。売れるのは主に新刊本ですし、既刊本は追い追い入れて行けば良いことなので。

広告のマテリアルを得る

書籍の場合、「マテリアル」は要するに「書影」です。つまり表紙の画像ですね。

これはAmazonの広告API(PA-API)を叩けばURLが得られるということになっているのですが、あれやこれや制限が多くて使えません。

PA-API v5が429エラーにしかならない件

これはかなり前に書かれたエントリですが、いまだにこれは改善されていません。とゆーか何とかする気はないのでしょう。

とは言え書影については、出版社のサイトに行けばたいていあります。細かいことを言えば著作権がどうこうという話になると思うのですが、そもそも「宣伝をするための書影」ですから、本来の使い方なので「正当な引用」ということにして使います。文句が出れば「直リン」するまでですし。

この辺もクロールの時にやってしまえば良いことですね。

本編とのマッチング

マッチングについては、書籍の情報にタグをつけることで実現しようとしています(まだ設計中)。

今一番自動的に広告をつけたいのは、Freshmeat再始動計画のインデクスや各エントリなのですが、ソフトウェアには検索補助のタグが振ってあるので、それと一致した書籍の広告を出せば良いんじゃないかということです。

タグを振るのは手作業になってしまうとダルいので、適当なLLMを使ってやってしまうつもりです。

進捗と感想

とりあえず主なIT本の出版社については、新刊の情報を入手できる程度のクローラは出来ました。

保存するDBとかは出来ているので、これからその辺をやろうと思ってます。

やっていて気がつくのですが、どの出版社も新刊本の情報提供には

力が入ってない

というのが率直な感想です。もっとはっきり言えば「やる気ないでしょ」という感じです。確かに自分の購買行動からしても、出版社のサイトで新刊本を探すよりは、Amazonの新刊案内やらSNSの話題やらの方が主ですから、ここに力を入れる必要はないのかも知れません。とは言え、出版される書籍の一次情報は出版社にあるべきだと思うので、もうちょっと何とかならないものかと思いますね。

新刊本の情報を提供するプロトコルがあれば、いろいろ楽になるのになぁというのが個人的な思いです。

最近のエントリー

404 WASP not found

第12回 「パーソナルサーバ」について考える

Jar Gardenに植物を植える

新しいお友達

Google翻訳、ChatGPT、Gemini...

Node.jsでGemini 1.5 FlashをAPI経由で使う

今日は「ぴろろんの日」

Node.jsでGPT-4oをAPI経由で使う

遠隔手話通訳実験

LLMと戯れてみる

新刊情報の収集

最近のできごと

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す