Amazon Associates Link Builder で商品リンクが表示されない不具合が直る気配がないので修正版を作った【WordPressプラグイン】

2020-02-26追記: 公式版 Amazon Associates Link Builder 公開停止

Amazonさん謹製のWordPressプラグイン「Amazon Associates Link Builder」は既に公開停止となっております。中身からしてすごく感じてたけど、やっぱり本気でやる気はなかったんやなAmazonさん…

さて、自分も使っているので影響を受けるんですが、これを直すか代わりのやつに乗り換えるかまだ考え中です。PA-API 4.0からPA-API 5.0にしないといけないし、何より元々の作りがイマイチなので…

PA-APIの終了が2020年3月9日に迫ってきているので、もし修正版を使用されている場合は別のものに乗り換えることをおすすめします。 https://affiliate.amazon.co.jp/help/node/topic/GZBFW3F79Y7FADBL/?ref_=pe_10259842_389970552

(追記ここまで)

Amazonさん謹製のWordPressプラグイン「Amazon Associates Link Builder」の修正版を作りました。そもそも自分用ですが、もし誰かの役に立つなら嬉しいので公開してみます。

修正版の使い方

ここからダウンロードできます(2019年4月23日更新)→ https://github.com/kno2502/amazon-associates-link-builder/archive/1.9.2-kno2502-2019042300.zip

既に公式版がインストールされている場合、一度削除してから修正版をインストールしてください。

zip形式のWordPressプラグインのインストール方法や、Amazon Associates Link Builder の使用方法についてはググってください。

修正点

  1. WP-Cronタスクを無効化しました。
  2. 日本語の文字化けを直しました。
  3. トラッキングID(アソシエイトタグ)がおかしくなる問題を直しました。

WP-Cronタスク無効化(表示されない原因)

WP-Cronタスクが動くと数秒おきにキャッシュ更新を試み、その度に Amazon Product Advertising API (PAAPI) へのリクエストが発生するため、一日のリクエスト回数制限にあっという間に達してしまいます。おそらくこれが「商品リンクが表示されない原因」の最も多いパターンだと考えられます。WP-Cronタスク自体を無効化することにより、PAAPIの制限に達する可能性がかなり低くなります。

You are submitting requests too quickly. Please retry your requests at a slower rate.

商品リンクを作成しようとした際にこのエラーメッセージが出る問題が解消する可能性があります。ただし、Amazon側の制限が解除されないと意味がないので、修正版にしてから一日待ってください。

なお、このプラグインのWP-Cronタスクをすべて止めることによる弊害は不明です(未調査)。キャッシュの期限切れの際にアクセスがあるとAPIコールが発生するので、ページ表示速度がちょっとだけ遅くなります。

日本語の文字化け解消 (テーブル作成時の文字エンコーディング指定)

CREATE TABLE のオプションに CHARACTER SET = utf8mb4 を付けています。

MySQL(MariaDB)のデフォルト文字エンコーディングが utf8mb4 等に設定されている環境では、元々この問題は発生していないと思います。

既に公式版をインストールして問題が発生している場合は、手動で DROP TABLE wp_Aalb_Asin_Response; を実行する必要があります。関連:
WordPressプラグイン Amazon Associates Link Builder 1.9.2 でタグ(トラッキングID)が異常なのと日本語が文字化けするのを直した | けーのブログ

日本語の文字化け解消2 (Remove rel=”noreferrer” for Amazon Affiliate Links from all posts)

“Remove rel=”noreferrer” for Amazon Affiliate Links from all posts” を有効にすると文字化けするという問題があると教えていただいたので、(ちょっと強引に)直してみました。(2019年4月23日)

libxmlでパーズしてノードを置換するという方法を採っているようですが、libxmlの文字エンコーディングの検出がうまくないようでASCIIで処理されてしまい、マルチバイト文字がすべて化けます。とりあえずHTMLの頭に <?xml encoding="UTF-8"> をくっ付けるとUTF-8で処理してくれて文字化けが回避できるようなので、そのようにしました。

これはテスト用リンクです

トラッキングID(アソシエイトタグ)がおかしくなる問題の修正

正規表現がおかしくてトラッキングIDを破壊してしまう部分があるので、そこを直しました。

注意点とあとがき

  • 元々のライセンスがGPLなので、もちろん無保証です。
  • 何か変なところがあったら教えてください。
  • もし役に立ったら報告してくれると嬉しいです。
  • GitHubリポジトリはこちら→
    https://github.com/kno2502/amazon-associates-link-builder
  • 誰かこのプラグインを使ってる人おるんか…?

↓テストも兼ねたおすすめ商品の紹介

Amazon.co.jp の商品


タイトルとURLをコピーしました