Amazonアソシエイトツールバーで廃止の画像リンクを自分で生成

公開 | 更新 

以前からの告知通り、 Amazon アソシエイトツールバー で 画像リンク が作成できなくなりました。そこで、引き続き作成可能なテキストリンクから 画像リンク を 生成 するスクリプトを Python で組みました。

アソシエイトツールバーで予告通り画像リンク作成機能廃止

Amazonアソシエイトセントラルで以前より告知されていた通り、

図1.画像リンク作成機能廃止の告知

図1.画像リンク作成機能廃止の告知

アソシエイトツールバーでの画像リンク作成機能が無くなり、テキストリンク生成のみになってしまいました(2023年1月初め執筆時点)。

図2.アソシエイトツールバーのリンク作成

図2.アソシエイトツールバーのリンク作成

試しにこのテキストリンクをWordPressブログに貼り付けてみると(ブラウザはFirefox)、

図3.テキストリンクのセキュリティ問題

図3.テキストリンクのセキュリティ問題

ジオロケーションを利用しているのか定かではありませんが、これはそのまま使う気にはなれません。

 

過去の画像リンクを解析

これまでに貼り付けた画像リンク <iframe> タグを読み解くと、

動的な変数は以下の3っで、

  • t     : トラッキングID
  • asins : 商品ASIN
  • linkId: 広告リンクID

このうち商品によって変わるのは asinslinkId の2つ。そしてこれらは、上述のテキストリンク生成で得られる 通常リンク の中に含まれます。

ただし、これらの切り貼り手作業で経常的にこなすのは目に酷なので、テキストリンクを元に画像リンク <iframe> を吐き出してくれるようなスクリプトを、Pythonで組んでみようと思います。

 

画像リンク生成Pythonスクリプトの考察

Pythonスクリプトファイルの実行時にテキストリンクを引数で渡すような運用では、上記の通常リンクは長すぎて引数で渡すことはできません。

そこで、短縮URLの方を引数で渡して、スクリプトの中でURLの展開、解析、画像リンク出力という流れにしようと思います。

 

短縮URLの展開では、よく requests.get(###).url が使われるのですが、これではクエリ文字列の部分が得られません。

あれこれ調べてみた結果、 requests.head(###) でレスポンスヘッダだけを取得して、その中にあるLocationを参照すると、クエリ文字列付きで得られることが分かりました。

 

ようやく得られた通常URLの解析は、苦手な正規表現との闘い。オンラインチェッカーに添削してもらいながら、おまじないを探ります。

まずASINは、URLの /dp/ の後方、 ? の前までなので正規表現は、

リンクIDも同じ要領で、 &linkId= の後方、続く & の前までなので正規表現は、

これで必要な情報の処理は、全て実現できることが分かりました。

 

完成したPythonスクリプト

こうして完成したPythonスクリプトは、以下の通りです。

使用前に、変数 tid へ各自のトラッキングIDを入れてください(47行目)。

Pythonの標準モジュールしか使用していないので、Pythonのバージョンを問わず普遍的に動作するはず。Python2、Python3での実行結果は以下の通りです。

図4.Pythonスクリプトによる画像リンク生成

図4.Pythonスクリプトによる画像リンク生成

 

一部消息では、こうした既存の画像リンクも表示されなくなる旨、Amazonから告知メールが送付されたとも言われていますが、私のところには届いていません。

とは言え、一連の動向からAmazonは画像リンクを廃したいのでは、とも邪推されるので、いずれはWordPressプラグインを使ったリンク作成(Rinkerなど)も考慮したいと思います。

 

 

PS)

本記事公開早々、もう既存の画像リンク全抹殺の号令が掛かったようです。リダイレクト先のネームレコードが無くなり、名前解決不能の状態にあるので、速やかにプラグイン導入へ動きます。

それまでの時間稼ぎとして、既存の画像リンクを非表示にするスクリプトを次の記事で組みました。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA