【PR】この記事には、紹介リンク(アフィリエイトリンク)を含むことがあります。

見張りが「無い」と言い続けた理由は、読めていなかったから

前の記事で、無料枠を1日の合計で数えていなかった失敗を書いた。今回も、作った後に気づいた失敗の話だ。見張りのプログラムが返す「無い」という答えを、そのまま信じていた。

何を見張っていたか

あるアフィリエイトには、成果報酬の対象になるサービスの一覧を載せた公式ページがある。ある新しい通販サービスが、その一覧に載るかどうかを知りたかった。載れば、紹介できるようになるからだ。

いつ載るかは分からない。載った日に気づけないと、その分だけ紹介を始めるのが遅れる。かといって、毎日ページを開いて探すのは手間がかかる。なので、小さなプログラムに任せた。1日1回ページを読みに行き、そのサービスの名前が載っていれば記録する。載っていなければ「載っていない」と返す。それだけの見張りだ。

毎日「載っていない」と返していた

見張りは毎日動いていた。そして毎日「載っていない」と返していた。まだ先なのだろう、と思っていた。

ところが中身を調べると、様子がおかしかった。見張りは、ページの更新日すら取れていなかった。サービスの名前どころか、ページの中身を何も読めていなかった。

今思えば、「まだ先なのだろう」と思ったところに落とし穴があった。新しいサービスなので、しばらく載らないのは想定どおりだ。想定どおりの答えが返ってくると、人はその答えを疑わない。もし毎日「載っている」と返していたら、すぐにおかしいと気づいたはずだ。

本文が「文字の番号」で届いていた

原因は、ページの届き方にあった。そのページの本文は、普通の文字ではなく、文字の番号の形で届いていた。

たとえば「【」という記号が、【 という形で書かれている。12304は、「【」に割り当てられた番号だ。ブラウザで開けば、この番号は自動で文字に戻る。だから人の目には、普通のページに見える。

でもプログラムは、届いたものをそのまま読む。番号の並びの中から、サービスの名前を探しても見つからない。見張りは「載っていない」を確かめていたのではなかった。何も読めていないのに、それを知らせる仕組みが無かった。その結果、「見つからなかった」と「読めなかった」が、同じ答えになっていた。

人の目に見えているものと、プログラムに届くものは、同じとは限らない。記事07でも、料金表があとから表示される作りのページで、一部の金額しか確かめられなかったと書いた。今回も根は同じで、ブラウザで見て普通に読めることは、プログラムが読めることの証明にならない。

どう直したか

直したのは2か所だ。

1つ目は、読み込んだ本文を文字に戻す処理を足したこと。番号の形で届いても、探す前に普通の文字に戻す。

2つ目は、目印を置いたこと。そのページなら必ず載っているはずの、別の言葉を目印に決めた。探す前に、まずこの目印が見つかるかを見る。目印が無ければ、「載っていない」ではなく「読めていない」と警告を出す。

直した後は、ページの更新日が取れるようになった。2026年1月9日だった。更新日が取れたということは、本文を文字として読めているということだ。ここでやっと、見張りの答えを信じていい状態になった。

逆に言えば、直す前に毎日残っていた「載っていない」という記録は、何も確かめていなかったことになる。その間に一覧へ載った日があったかどうかは、この記録からは分からない。記録が残っていることと、その記録が何かを確かめた結果であることは、別の話だ。

振り返ると、作った日に1度だけ試しておけば、その場で気づけた。ページに載っているのが分かっている言葉を、見張りに探させてみる。それで「載っていない」と返ってきたら、読めていないと分かる。探し物がまだ載っていない見張りほど、この確かめを飛ばしやすい。何も見つからないのが普通の状態なので、正しく動いているのかどうかが外から見えないからだ。

教訓は「無いと言う前に、読めているかを確かめる」

今回の見張りは、エラーを出さずに毎日動いていた。止まっていなかったので、ちゃんと動いていると思い込んでいた。でも、止まらずに動くことと、正しく読めていることは別の話だった。

「無い」という答えは、2つの場合に出る。本当に無い場合と、読めていない場合だ。この2つを分けない見張りは、読めていない時も、黙って「無い」と言い続ける。

なので今は、何かを探す見張りを作るとき、次の2つを最初から入れるようにしている。

目印は、探したい言葉と同じ本文の中から選ぶほうがいい。ページの見出しだけ読めて、肝心の一覧が読めていない、ということもあり得るからだ。目印が読めたなら、同じ場所にある探し物も読めているはず、と言えるものを選ぶ。

前の記事の書き込みの話も、根は同じだと感じている。どちらも、うまくいっていないのに何も言わずに動き続ける作りだった。無人で回す仕組みは、自分から「おかしい」とは言わない。言わせる仕組みは、作る側が足すしかない。

次の記事では、需要を確かめるための広告費の決め方を書く。こちらは作った後ではなく、お金を使う前に計算し直した話だ。

← 記録の一覧に戻る