Amazonアフェリエイトへの道 #1 画像パスを取得したいんじゃ!

2023年12月8日

PHP アプリケーション

eyecatch Amazonのアフェリエイトリンクを使う場合、 ・テキスト ・画像 ・テキストと画像 の3つがありますが、画像を含むアフェリエイトリンクが、2023年12月31日をすぎると、表示すらされなくなるとのお達しがありました。

Amazonアソシエイトからのお知らせ情報

【2023/11/14: (訂正) アソシエイト・ツールバーの画像リンク作成機能の提供終了について】 2023年11月10日をもって、アソシエイト・ツールバーの画像リンク作成機能の提供を終了する旨をお知らせしましたが、提供終了の日付を2023年11月30日に変更させていただきます。お客様に混乱を招いてしまいましたことをお詫びいたします。また、機能廃止によってご利用のお客様にご不便をおかけしますが、ご理解のほどよろしくお願いいたします。
2023年11月30日をもって、画像リンクを作成するツールバーの提供が終了とのことです。 これまでこのツールを使うように散々言われてきたのに、いきなりの終了です。
平素よりAmazonアソシエイト・プログラムならびにAmazonインフルエンサー・プログラムをご利用いただき、誠にありがとうございます。 お知らせ欄で告知しております通り、2023年11月30日(木)をもってアソシエイトツールバーの「画像リンク」及び「テキストと画像」リンクを廃止させていただきます。 画像リンク作成機能を使用して作成されたリンクは、2023年12月31日(日)以降表示されなくなりますので、画像リンクを掲載されている場合は、お早めに別のリンクへの差し替えのご対応をお願いいたします。 なお、アソシエイトツールバーの標準テキストリンクやMobile GetLinkは、引き続きご利用いただけます。
画像表示に関しては、2023年12月31日までの表示とのことです。 ※ちなみに、このメール自分には届いておらず人から聞いてビックリして調べた内容でした・・・

Amazonアフェリエイトはオワコンなのか?

最初、Amazonがアフェリエイトを止めたがっているのかと思ったんだが、そうではなく、ツールバーの提供を停止するだけの事で、アフェリエイト自体はそのまま対応するらしい。 アフェリエイトについて知らない人の為に簡単に説明すると、 Amazonで販売されている商品を自分のブログやWebサイトで紹介すると(専用にリンクをつける)、そのリンクをクリックした人が購入した場合に、キックバックをしてもらえるというヤツです。 アフェリエイトといえば、Amazonが広めたと言っていいぐらい歴史も古いし、老舗のサービスでもありますね。 そして、アフェリエイトを使いたい場合は、Amazonアソシエイトというページで登録することで、誰でも簡単にアフェリエイターになることが可能です。 ブロガーのお供、ちょっとしたお小遣い稼ぎ、だけにとどまらず、見返りなどいらないから、この商品が良い!と紹介したい人にとっては非常に便利に使えるAmazonなワケです。 そうした紹介をするときの画像をアソシエイトツールバーという便利機能を提供してくれていたんですが、これが今回ほぼ停止状態になるとの事です。 画像と、テキストと画像の部分が使えなくなり、実質リンクURLだけしか使えなくなるので、このツールバー自体はお役御免といったところでしょう。

エンジニア視点

他人のツールに頼ってばかりじゃエンジニアたるもの、脳みそ腐ってると思われても仕方がない。 それならそれで自分でアフェリエイトリンクを作ってやろうと思います。 実はこれ、そんなに難しいことではないんですよ。 自分のアフェリエイトID(トラッキングID)をリンクURLに付与する事が大前提で、商品画像などを取得すればいいだけですね。 (あと、商品説明などあるとより良いですね)

API利用検討

一番安定的な方法としては、Amazon Product Advertising APIという、Amazonが直接提供しているAPIを利用する方法です。 アクセスキーとシークレットキーという認証コードを生成して、セキュアに確実にデータを取得できます。 でも、結論から言うと今回はAPI利用をする方法はやめておきました。 理由は、全然確実にデータ取得ができないからです。 このAPIを使う条件として、アフェリエイト売上が定期的に発生している事が条件らしく、売上金額に応じたリクエスト制限数というのが、裏ルールであり、多くのブロガー達が困惑しているブログを公開しています。 その原因もエラーメッセージで明確にされていなかったり、このツールが現時点でver5ですが、ver4は切り捨てられている事を見ると、下位互換は切り捨てられるということは、ある日突然使えなくなる可能性が高いという事です。 まったくこのAPI使うメリットを感じられないんですよね。

スクレイピング検討

次に安易に考えられるのは、Amazonの対象の商品ページをクローリング(HTMLを取得)して、その中から必要な情報を抜き取る(スクレイピング)方法が思い浮かびます。 上記APIで取得した画像パスを見ると、amazonの公開ページで表示している画像URLと全く同じものだったので、簡易にできるスクレイピングで十分ではないかと考えました。 ただし、AmazonがWebページの構成を変更した場合に、プログラムが陳腐化してしまうので、その都度改修をし続けなければいけないのだけれど、APIの改修よりもこっちの方が遥かに楽だと思いません?

画像URLを取得してみる

ということで、実際にAmazonの商品画像のURL(src属性)を取得するプログラムを作ってみました。

sample.php

<?php $url = "Amazon商品のURL"; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_AUTOREFERER => true, CURLOPT_USERAGENT => 'Mozilla/5.0', CURLOPT_ENCODING => 'gzip', ]); $html = curl_exec($ch); $dom = new DOMDocument; @$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); $src = $dom->getElementById("imgTagWrapperId")->getElementsByTagName("img")[0]->getAttribute("src"); echo $src; 上記を実行すると、商品画像のURL部分が表示されます。 これをimgタグのsrc属性に入れれば、あとはアフェリエイトリンクをつければ、簡易なアフェリエイト画像バナーが出来上がりです。 もちろん、このURLを色々と調整すれば、画像サイズや、表示フォーマットなどを便利に変えられるというのも分かっているので、その辺を追求しながら、誰でも簡単に使えるAmazonアフェリエイトバナーツールを作ってみようと心に決めた今日のジブンでした!! このツール欲しい人いる?

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。