© たかやまそら

Robin 5

静的広告生成というのを作ってみた。

静的広告生成

Static Site Generator があるなら、 Static Advertisment Generator というのがあっても良いでしょう。

普通はネット広告代理店から JavaScript を通して広告配信される。 しかしもし内製アプリ等の販売ができるなら、中間マージンがない分、 ネット広告代理店を使うより、自分で広告配信した方が潜在的に利益率が高い(引き出せるかは別)。

自分で広告配信、というと簡単そうだが、出現比率を調整したり、 キーワードとのマッチングを考えたりすると、結構めんどうくさい。

そういうのは普通、データベースで管理するのだろうけれど、 DB を使うシステムというには大げさすぎるし、長い目で見ると管理が面倒くさそうにおもう。 (DB自体は嫌いじゃないですよ?私は PL/pgSQL とか大好きです!)

要するにファイルシステムを利用して広告配信管理をするのが管理の手間が少なそう。

だったらもういっそのこと、SSG が HTML をジェネレートするタイミングで 広告もジェネレートしちゃったらよいんじゃないか?となる。

原理

原理は冒頭の画像の通り。 クラスとインスタンスの関係はオブジェクト指向言語を知っていれば説明不要だと思うが、 よくわからない人はクッキー型とクッキーを考えたらよい。ひな形と複製物、と言い換えてもよい。

静的広告生成(Static Site Generator)は以下の手順で広告を配信する。

  1. 予め、 SSG が生成する HTML ドキュメントに広告プレイスホルダーをランダムに織り交ぜておく。
  2. 広告クラスを創る。出現比率をファイル名やメタ情報で定義しておく。
  3. SSG が 広告インスタンスをプレイスホルダーの種類だけランダムに生成する。

プレイスホルダーの種類は図だと12種類だが、必要に応じてもっと多くしてもよい。

出現比率などのパラメータをファイル名の中にコーディングするのは私の趣味。 ファイルのメタ情報に書くのは不安定だし、データベースに書くのは大げさすぎるし、 ファイルはそのままインスタンスとして複写されるから内部に書き込むわけにもいかないし。 結局、ファイル名自体をペイロードとするのが一番堅牢で合理的と思ってる。よくある?私だけ?

なにかいいことあるの?

それほどメリットがあるか?といわれれば、実はよくわからない。

確かにDBに依存しない管理は、長い目で見ると判りやすくて好感度が持てる。

また、JavaScript を使わないで良い、という点は評価できるとおもう。

たとえば DOM(Document Object Model)を利用する場合、ヒューマンエラーやバグにより クロスサイトスクリプティングなどの脆弱性が生ずる可能性がある、かもしれない。 けど、システムにバグがある前提でいうならもうどうしようもないわけだし、 そもそもほぼすべての web site が JavaScript 無しでは正常に動作しないわけだし、 ゆえに、それを使わないからなんだってのさ?となる。

ただ技術的好奇心から、できるだろうなぁ、とおもったから作ってみただけ、 といった方が理解されやすい気もする。

© たかやまそら