Amazonのアフィリエイトリンクは一行で作れる、GASで自動化すべきは薦めた理由の台帳かもしれない
Amazonのアフィリエイトリンクは、商品ページのURLの後ろに自分のタグを一つ付ければ完成します。これを自動化するために、まずAPIの鍵を取り、署名の計算と格闘するのは、封筒に切手を貼るために郵便局の仕分け機を買うような順番です。リンクの生成は文字列を一つつなぐだけの仕事で、自動化して減る手間がもともと小さいからです。この記事では、Google Apps Script(GAS)でリンクを作る二つの方法を示したうえで、自動化に値するのはリンクより、どの商品をどの記事でなぜ薦めたかの記録ではないか、という問いを立てます。
準備するもの
- Amazonアソシエイトのアカウント: 登録して、自分のトラッキングID(アソシエイトタグ)を確認しておく
- Product Advertising API(PA-API)のアクセスキーとシークレットキー: 商品情報も取りたい場合だけ必要
- Googleアカウント: GASを使うために必要
GASのエディタは、スプレッドシートのメニューの「拡張機能」から「Apps Script」を選ぶと開きます。
リンクを作るだけなら、APIは要りません
商品を特定する番号はASIN(Amazonの商品識別子)です。商品ページのURLにASINと自分のタグを組み合わせれば、アフィリエイトリンクになります。
const ASSOCIATE_TAG = 'YOUR_ASSOCIATE_TAG';
function makeAffiliateLink(asin) {
return 'https://www.amazon.co.jp/dp/' + asin + '?tag=' + ASSOCIATE_TAG;
}
保存したら、スプレッドシートのセルで =makeAffiliateLink(A2) のように呼び出します。A列にASINを並べておけば、隣の列にリンクがまとめてできあがります。最初は一つのASINで試し、生成されたリンクが正しい商品ページに飛ぶかを確かめてから表全体に広げます。
APIが要るのは、変わる情報を載せたいときです
商品名、画像、価格などもあわせて表に入れたいときは、PA-APIを使います。流れは、ASINと取りたい項目を指定したリクエストを組み立て、シークレットキーで署名し(GASでは Utilities.computeHmacSignature で計算できます)、UrlFetchApp.fetch で送って結果から必要な項目を取り出す、の三段です。
注意したいのはAPIの版です。古い解説には ItemLookup という操作を呼ぶ書き方が残っていますが、これは旧版の呼び方で、現在の版(PA-API 5.0)では、JSON形式のリクエストとAWSの署名方式(Signature Version 4)を使い、日本ならAmazon.co.jp向けの宛先を指定します。古いコードをそのまま写さず、公式ドキュメントで最新の仕様を確かめてから組んでください。
鍵はコードに直接書かず、GASのスクリプトプロパティに保存すると、スクリプトを共有するときに漏れにくくなります。利用には回数の制限があり、アカウントの紹介実績が利用の条件に関わることもあるため、始めたばかりのアカウントでは思うように使えない場合があります。価格のように日々変わる情報を記事に載せる場合は、手で写した値はすぐ古くなるので、APIで取得した最新の値を使い、規約で求められる更新の条件を確かめておく必要があります。逆に言えば、変わる情報を載せないなら、方法2の手間を負う理由はあまりありません。
自動化する価値は、薦めた理由の記録にあるかもしれません
リンクが千本あっても、どの本をどの記事で、なぜ薦めたのかが残っていなければ、あとから見直すことができません。品切れや新版が出たとき、どの記事を直せばよいか分からず、薦めた理由と記事の中身が食い違っても気づけないからです。リンクの生成より、次のような台帳の列を整えるほうが、自動化の効き目は大きいかもしれません。
| 列 | 中身 |
| ASIN | 商品の番号 |
| リンク | 上の関数で自動生成 |
| 載せた記事 | 記事のURL |
| 薦める理由 | 一文で |
| 確認日 | リンクと商品の状態を最後に確かめた日 |
ただし、この台帳が報われるかどうかは、サイトの規模によります。紹介する商品が数点なら、台帳より記事を開いて見るほうが早いでしょう。どの規模から台帳が効くのかに決まった線はなく、見直しに困った経験の有無が一番の目安になります。
この作業は、ChatGPTを自分用にカスタマイズするGPTsにも組み込めます。本の名前を渡すと、ASINの確認、タグ付きのリンク、薦める理由の下書きを、台帳の列の順で返すGPTを作る、という形です。ただし、GPTが書いた薦める理由は、自分が本当に薦める理由とは別物になりえます。理由の列だけは、自分の言葉で書くか、少なくとも自分で書き直す必要があります。
あなたは、その商品をなぜ薦めたのかを覚えているか
ご自身のサイトに当てはめるなら、一年前に貼ったリンクのうち、薦めた理由をいま一文で言えるものはいくつあるでしょうか。その商品が品切れになったら、どの記事を直せばよいかをすぐ答えられるでしょうか。
この記事の背景にある考え方は、拙著『GoogleのAI NotebookLM 意思決定の強化書』の7章3節「会議の一次記録を活用する」に書きました。要約だけの議事録では、なぜその結論になったのかという前提が抜け落ちるので、録音や文字起こしのような一次記録を残しておく、という節です。そこには「要約型の議事録で最も深刻な問題は、結論に至った前提が脱落することにあります。」とあります。題材は会議の記録ですが、この節を読むと、貼ったリンクという結論の横に、薦めた理由という前提をどう残すかを、自分のサイトに当てはめて考えられるようになります。

