表題の事件、どんなことが起きたのか簡単にいうと、
「AIがリンクを window.open という JavaScript で書いていた」
です(笑)
■まずか結論から。
何が悪いの? とお思いの方もいらっしゃると思うんですが、これかなりまずいです。
まず、結論から言います。
・Analyticsなどで計測されない場合があります。
・運が悪ければ、パラメータの取得もされない場合が。
・iPhone サファリで、コンバージョンしない(リンクが作動しない)
などの不具合が生じます。
この事件の詳細をお伝えいたします。
■社内で相談を受けました。
「すみません、このLPのリンクがAnalyticsで計測されないんですが、原因分かりますでしょうか?」
みたいに、とある課から依頼がありまして。
ちょっとHTMLソースを見たところ、
<button onclick="window.open('~~リンクURL~~');">●●の詳細を見る</button>
<a href="#" onclick="window.open('~~リンクURL~~');">●●の公式サイトへ</a>
こんな感じでリンクが張られていました。
AnalyticsもHTMLもいろいろトータルでやっている人間からすると、
原因は明らかです。
で、どう見てもAIに書かせたんだろうなあ、とすぐに予測ができました(笑)
「これ、AIに書かせましたよね?
リンクが全て window.open というJavaScriptになっています。
これは絶対にやめてください。
iPhone のサファリではそもそもリンクが動作しないんですよ。」
と伝えました。
(そもそも、そのLPはGoogle広告に出しているものなので、アフィリエイトリンクと判断されても問題のないものでしたw)
■なぜこういうことが起こるのか?
ちょっとAIにどう命令したのか聞いていないんですが、おそらくは
「できるだけGoogleにアフィリエイトリンクと判断させないように」
などと入れたんではないでしょうか?(;^_^A
人間がHTMLを組む場合は、ほぼ間違いなく
<a href="~~リンクURL~~">
というHTMLのアンカーリンクを使います。
これだと問題は起きません。
ですが・・・ window.open でリンクを張ってしまうと、Google Analytics で計測されないことが多いですし、
何より window.open 自体、セキュリティーに不安があるということで、サファリではポップアップとして判定された window.open を制限しています。
■window.open がなぜ嫌われるのか?
昔、「ブラウザクラッシャー」という迷惑なScriptが流行りました。
見た目的にも迷惑なページを無限に開く、というイタズラが。
これ、本当に厄介でして・・・
window.open の無限ループによって、ホラー画像や18禁のページが延々と開くんです。
こんなことをして何が楽しいのかわかりませんが、
まあ悪質ですよね(^^;)
現在ではこういうブラウザクラッシャーはほぼ見かけませんが、20年くらい前に大流行しまして。
タスクマネージャーとか知っている人だったら対処もできたんですが、素人さんには防ぎようがなかったんですよね。
その他、いろいろとセキュリティーでも問題視されており、window.open はあまり使用されなくなりました。
サファリでは、ポップアップとして判定された window.open の動作を禁じているほどですから(^^;)
■他の代替の JavaScript は存在する?
ありますよ、もちろん。
location.href というのが。
location.href="~~リンクURL~~";
とすれば、ページ移動できます。
※こちらは、サファリでは禁じられておりません。
ただ、こちらも Analytics では計測されないケースがあると思います(^^;)
あと、これは別窓に移ることができません。
■やはり、基本はアンカータグ。
普通に昔ながらの<a href="~~リンクURL~~">タグ使っていれば、ほぼ問題は起きません。
どうしても<button>タグを使いたい!という場合は、
<form action="~~リンクURL~~">
<button>~~アンカーテキスト~~</button>
</form>
とやればできるんですが、これフォーム送信になっちゃうのであまりお勧めはしません。
■AI時代での、ヒューマンエラー
AIは悪くありません。言われたことを素直に具現化しただけです。
これに関しては、命令する人間側のHTMLへの知識のなさが原因、と言わざるを得ません(^^;)
AIにHTMLとCSSを組んでもらうときは、
「リンク移動にJavaScriptは使用せず、普通のアンカータグを使用してください」
と一文添えたら不具合は解消されると思います。
AI時代だからって不勉強のまま使おうとすると、不具合が起きるという良い例でした。
■まとめ
「AI時代でも、知識がないまま動作を任せるのは危険」
というお話でした。
そういえば、ちょっと前にもネットニュースになっていましたが、
「運用をAIに任せてたら、間違った動作をしてデータをすべて削除された」
という事件がありました。
これもヒューマンエラーですよね(^^;)
人間にも、学習は必ず必要です。お忘れなきよう。
自戒も込めて(笑)