生成AIで商品説明文を作るときは、「事実を元にした商品情報マスタを準備する」「使えない表現を先に禁止する」の2点に留意したプロンプトを用いると、手直しの量が大きく減ります。
この記事で紹介するプロンプトと、その使いどころは以下のとおりです(この記事では便宜的に、「商品名」「キャッチコピー」などの生成AIで生成しうる商品カタログ周りの情報に加え、同じく定型的な業務になりがちな「レビュー返信文」を含めて紹介します)。
| プロンプト | 何を作るか | 渡すもの | 規約で特に注意する点 |
|---|---|---|---|
| 1. 商品名 | モールのルールに沿った商品名(楽天用・Amazon用) | 商品マスタ(ブランド・種類・容量など) | 宣伝文句や検索用のキーワードを詰め込まない |
| 2. キャッチコピー | 短い訴求文・検索用の関連キーワード | 商品の特徴3つ・想定する買い手 | 最上級表現・根拠のないNo.1 |
| 3. 商品説明文 | 本文(特徴・使い方・注意) | 商品マスタ+特徴 | 効能効果(薬機法)、誇大表現(景品表示法) |
| 4. スペック表 | 仕様のHTML表 | 商品マスタ | 機種依存文字・使えるHTMLタグ |
| 5. レビュー返信 | お礼・お詫びの返信文 | レビュー本文・評価 | 第三者が読んでも筋の通った内容にする |
弊社は足掛け11年間、楽天市場・Amazon・Yahoo!ショッピングなどの多数の店舗様の運営支援に携わってきた中で数多くの商品情報を取扱ってきました。お客様が準備された商品情報のうち、モール規約との兼合いから差し戻しが多く発生するのは、大きく2種類だと言えます。
- 使ってはいけない言葉が入っていた:「アンチエイジング」「美肌」「美白」「痩せる」といった薬機法に関わる言葉や、「最高」「絶対」といった景品表示法に関わる言葉
- 事実が違っていた:成分・内容量・原産国の誤入力
今や生成AIはなくてはならないツールになっています。商品説明文の作成に生成AIを用いているという方も多いのではないでしょうか。しかし、生成AIはあくまで「確率的にワードを抽出しているだけ」なので、適切な説明文を作るためには、手動入力するとき以上に慎重に気を付ける必要があります。
この記事では、プロンプトの段階でこの2つを抑止する方法を中心に解説します。紹介するプロンプトは、ChatGPT・Claude・Geminiのどれにもそのまま貼り付けて使えます。プロンプトの基本的な書き方はChatGPTのプロンプト作成ルールとテンプレートにまとめています。
1. なぜAIの商品説明文はそのまま使えないのか
生成AIは「売れそうな文章」を書くように作られているため、指示がなければモールの規約や法律で使えない表現を選び、さらに商品の事実を推測で埋めてしまう可能性があります。
使えない表現を選んでしまう
使えない表現で混ざりやすいのは、次の3種類です。
- 効能効果の表現:化粧品に「美白」「アンチエイジング」、雑貨や食品に「痩せる」「疲れが取れる」など、薬機法で認められた範囲を超える言葉
- 最上級・比較の表現:「最高」「絶対」「業界No.1」など、客観的な根拠を示せない言葉
- 期間・価格をあおる表現:「今だけ」「残りわずか」など、事実と違えば景品表示法の問題になる言葉
事実を推測で埋めてしまう
もう1つの問題は、AIが商品の性質を理解しないまま、さも真実であるかのように回答することです。商品名だけを渡して「説明文を書いて」と頼むと、AIはインターネット上の情報や推測で仕様を補います。
弊社でも、AIに書かせた説明文を確認すると、別の商品の情報が混ざっていたり、成分や内容量が実物と違っていたりすることがしばしばありました。 型番違いの旧商品や、似た名前の他社商品の情報を拾ってしまうためです。成分・内容量・原産国の誤りは、表現の問題以前に、表示そのものが事実と違うという問題になります。
生成AIで説明文を作る以上、ミスをゼロにすることは出来ません。しかし、ミスを限りなく抑制することは可能です。
以下では、プロンプトの設計でミスを防ぐ方法を深堀していきます。
2. 品質を安定させるプロンプトの設計(商品マスタを渡す)
説明文の品質を安定させるには、商品の事実を文章ではなく「項目名」と「値」が対応した明示的な形でデータを渡し、AIにはその範囲だけで書かせるのが効果的です。
商品マスタとは
商品マスタとは、商品ごとの型番・成分・内容量・原産国・価格などを1行ずつまとめた管理表のことです(1「列」でも良いですが、「行」の方が一般的)。次のような手元の情報が元になります。
- 仕入れ先やメーカーのカタログ・仕様書
- モールへ商品を登録するときのCSV
- 社内の在庫管理表や商品一覧のスプレッドシート
自社が責任を持てる確実な情報だけを、AIが分かりやすい形で渡すというのがのがポイントです。
渡す項目の例
架空の保湿化粧水で例を示します。
| 項目 | 例 |
|---|---|
| 商品名(社内) | モイストローション 200 |
| ブランド | ○○コスメ |
| 区分 | 化粧品(医薬部外品ではない) |
| 内容量 | 200mL |
| 主な成分 | ヒアルロン酸Na(保湿成分)、セラミドNP(保湿成分)、グリセリン |
| 原産国 | 日本 |
| 特徴(3つまで) | さっぱりした使用感/無香料・無着色/詰め替え用あり |
| 使い方 | 洗顔後、適量を手のひらにとり、顔全体になじませる |
| 注意事項(全文) | パッケージに記載された注意事項を、一字一句そのまま全文貼る(例は4-3の出力例を参照) |
| 想定する買い手 | 季節の変わり目に肌の乾燥が気になる20〜40代 |
プロンプトに盛り込むべきポイント以下です。
- 「渡した項目にないことは書かない」と明記する:仕様の作り話を防ぐ
- 商品区分(化粧品/医薬部外品/雑貨/食品)を必ず渡す:商品区分によって使える表現の範囲が変わるため
- 特徴は自分で数点に絞る(目安としては3点):AIに自動で特徴を考えさせると、根拠のない長所が増える
化粧品の場合には以下の内容に言及しておくと良いでしょう。
- 成分には配合目的を添える:「ヒアルロン酸配合」とだけ書くと効能をうたうように読めるため、「保湿成分」のように目的を併記する
商品マスタがあると何が変わるか
商品マスタを渡すと、出力の品質は大きく上がります。弊社の実感では、事実の誤りがほぼなくなり、手直しは言い回しの調整が中心になります。
ただ、現実的には商品説明文を生成AIに依頼する最大のハードルがここかもしれません。
というのは、取り扱っている商品が少ない場合は、定型的な書式だけ考慮すればよいかもしれないですが、商品、ブランド、メーカーが多岐にわたる場合、CSVでデータ所持しているケースもあれば、紙のマニュアルしか共有してもらっていないというケースもあると思うので、特に新商品を多く取り扱う店舗様に関しては、画一的な書式で情報を保持しておくというのが現実的には難しいからです。
ただ、生成AIはインターネットに掲載されていない最新の商品情報をデータとして取得出来ないので、ここの橋渡しは人間がしてやる必要があります。
商品説明自体は自動生成されるといっても、その事前準備などは少なからず発生するという事ですね。
3. 規約NG表現をプロンプトに組み込む方法
NG表現は「出力後に人がチェックする」だけでは心もとないため、プロンプトに禁止リストとして渡し、さらに出力の最後にAI自身に自己チェックさせると良いでしょう。
生成AIでフィルタリングを行うことで、人の確認は「AIが判断に迷った箇所」に限られます。
NG表現リスト(抜粋)
弊社が実務で使っているリストから、カテゴリ・観点ごとに一部を紹介します(2026年10月1日確認)。
| カテゴリ | NG表現の例 | 言い換えの方向 |
|---|---|---|
| 化粧品の効能効果 | 美白、アンチエイジング、シミが消える、肌が若返る | 化粧品で認められた効能の範囲で書く(「肌にうるおいを与える」「肌を整える」など)。「エイジングケア」は「年齢に応じたうるおいケア」のように意味を注記して使う |
| 雑貨・食品の効能効果 | 痩せる、美肌になる、免疫力アップ、疲れが取れる | 使用感・仕様・使う場面に置き換える(「さらっとした手触り」「朝の準備に」) |
| 最上級・比較 | 最高、最強、絶対、日本一、No.1(根拠なし) | 客観的な調査や実績で裏づけられる場合だけ、根拠と一緒に示す(「楽天ランキング○○部門1位(2026年○月○日付)」のように、何の・いつの・どの範囲の1位かを明記する) |
| 価格・期間 | 今だけ、在庫限り、通常価格の半額(比較対象が不明) | 実際の期間・条件を書く(「10月31日23:59まで」)。比較対照価格は実際に販売していた価格に限る |
| 商品名への詰め込み | 送料無料、セール、ベストセラー、同じ意味の言い換えや用途の羅列 | 商品名には入れない。楽天ではキャッチコピー欄へ(4-1参照) |
| 表記 | 丸数字・ローマ数字などの機種依存文字 | 通常の数字・記号に置き換える |
例えば、化粧品が広告でうたえる効能は、薬機法の運用上、56項目の範囲に限られています。「美白」はそもそも薬機法上の効能効果ではなく、56項目にも含まれません。業界の自主基準(日本化粧品工業会「化粧品等の適正広告ガイドライン」)では、「美白」と書けるのは次の場合に限られています。
- 美白の効能で承認を受けた医薬部外品(薬用化粧品)が、承認された効能「メラニンの生成を抑え、しみ・そばかすを防ぐ」などを併記する場合
- ファンデーションなどのメーキャップ効果で、肌を白く「見せる」ことを明示する場合
一般の化粧水で「美白」と書ける場面は、ほぼないという訳です。区分を商品マスタで渡すのはこのためですね。
No.1表示も、出典と時期をつければよいわけではありません。比較した範囲や調査の方法が公正で、表示と調査結果が一致していることを、表示する側が確認できている必要があります。特に「顧客満足度No.1」のようなアンケート型のNo.1は、消費者庁が実態調査で問題を指摘しています。AIには作らせず、根拠資料が手元にある実績だけを商品マスタで渡します。
機種依存文字がなぜ問題になるかは機種依存文字を使うとどうなるか、楽天市場の違反と点数の関係は下の記事にまとめているので、これらの記事も参考になってください。

NG表現リストの完全版(言い換え案つき)は、LINE友だち限定の「商品説明文AI作成キット」に入っています。 記事末尾から受け取れます。
禁止リストを入れたプロンプトの骨組み
# 役割
あなたは楽天市場・Amazonの商品ページを担当する、薬機法・景品表示法とモールの規約に詳しい編集者です。
# 守ること
- 下の「商品情報」に書かれた事実だけを使う。書かれていない仕様・成分・数値・実績は書かない
- インターネットで調べた情報は使わない
- 下の「使わない表現」は、言い換えを含めて使わない
- 商品情報の「区分」で認められた範囲を超える効能効果は書かない。使用感・仕様で表現する
# 使わない表現
{NG表現リストをここに貼る}
# 商品情報
{商品マスタの「項目名:値」をここに貼る}
# 出力の最後に
本文を書き終えたら、「使わない表現」に当たりそうな箇所と、判断に迷った箇所を箇条書きで挙げてください。なければ「なし」と書いてください。最後の自己チェックが「なし」でも、公開前には必ず人が読みます。AIに任せるのは下書きと一次チェックまで、と決めておくのが安全です。
4. 実践プロンプト集(5本)と出力例
以下は、上の骨組みの「役割」「守ること」「使わない表現」「商品情報」を共通部分とし、「作るもの」だけを差し替える形です。共通部分は省略して、差し替える部分だけ載せます。
出力例は、2章の架空の保湿化粧水を使い、弊社で整えたイメージです。実際の出力は使うAIやその日の状態で変わります。
4-1. 商品名
商品名は、検索に引っかかりそうな語を詰め込みたくなる欄です。しかし楽天市場の「商品名登録ガイドライン」では、販促文言(「雑誌掲載商品」「○○賞受賞」など)や、検索ヒット用の関連キーワード(同じ意味の言い換えや用途など)は商品名に入れず、キャッチコピー欄に入れるよう案内しています。このガイドラインに沿わなくても違反点数の対象にはなりません。ただし楽天は、ガイドラインに沿った商品は露出が上がる可能性があるとしています。
Amazonはさらに厳しく、2026年7月27日から、メディア以外の商品名はスペースを含めて75文字以下になりました。楽天用の商品名をそのまま流用できないため、プロンプトを分けます。
楽天市場用
# 作るもの
楽天市場の商品名を3案。全角127文字以内。
- 「ブランド名 商品名称 商品の種類 容量」を基本に、その商品を特定できる情報だけで組み立てる
- 他の商品と区別する特徴(無香料など)は、必要な場合だけ加える
- スマホの検索結果では先頭の25文字ほどしか表示されないため、大事な語を前に置く
- 「送料無料」「最安」「人気」などの宣伝文句や、同じ意味の言い換え・用途の羅列は入れない(キャッチコピー欄に回す)Amazon用
# 作るもの
Amazonの商品名を3案。スペースを含めて75文字以内。
- 「ブランド名 商品名称 商品の種類 容量」を基本にする
- 「送料無料」「セール」「ベストセラー」などの販促文言や、同じ語の繰り返しは入れない出力例(イメージ・楽天市場用)
1. ○○コスメ モイストローション 化粧水 200mL
2. ○○コスメ モイストローション 化粧水 無香料 無着色 200mL
3. ○○コスメ モイストローション 化粧水 さっぱりタイプ 200mL 日本製
【確認してほしい箇所】
- 「保湿」「乾燥対策」「ヒアルロン酸」などの検索用の語は、商品名に入れずキャッチコピー欄に回しました4-2. キャッチコピー
楽天市場では、4-1で商品名から外した関連キーワードの入れ先もこの欄です。
# 作るもの
楽天市場のキャッチコピー欄(全角87文字以内)に入れる文を3案。
- 想定する買い手の場面(いつ・どんなときに使うか)が浮かぶ言葉にする
- 商品に関係する検索用の語(同じ意味の言い換え・用途)を入れてよい。商品と関係のない語や他社のブランド名は入れない
- 最上級・比較の表現は使わない出力例(イメージ)
1. 季節の変わり目の乾燥が気になる肌に。さっぱりした使用感の無香料・無着色の化粧水。たっぷり使える200mL、詰め替え用もあります
2. 保湿 化粧水 ローション 保湿成分ヒアルロン酸Na・セラミドNP配合 無香料 無着色 さっぱり 日本製 詰め替え用あり
3. 香りが苦手な方にも。無香料・無着色で、毎日のお手入れに取り入れやすい保湿化粧水
【確認してほしい箇所】
なし4-3. 商品説明文
# 作るもの
商品説明文。400〜600文字。
- 構成:①どんな人の・どんな場面に向くか ②特徴(商品情報の特徴3つを1段落ずつ)③使い方 ④注意事項
- 注意事項は商品情報の「注意事項(全文)」を一字一句そのまま載せ、要約・省略しない。商品情報に注意事項がなければ、自分で作らず【確認してほしい箇所】で指摘する
- 成分に触れるときは、商品情報に書かれた配合目的と一緒に書く出力例(イメージ)
季節の変わり目に肌の乾燥が気になる方へ。洗顔後の肌にすっとなじみ、うるおいを与える化粧水です。
■さっぱりした使用感
べたつきが少なく、朝のメイク前にも使いやすい使用感です。保湿成分としてヒアルロン酸Na、セラミドNPを配合しています。
■無香料・無着色
香りや色をつけていないため、香りが苦手な方にも取り入れやすい処方です。
■詰め替え用あり
200mLのボトルに加えて、詰め替え用もご用意しています。
■使い方
洗顔後、適量を手のひらにとり、顔全体になじませてください。
■ご注意
お肌に異常が生じていないかよく注意して使用してください。使用中、または使用後日光にあたって、赤み、はれ、かゆみ、刺激、色抜け(白斑等)や黒ずみ等の異常があらわれた場合は、使用を中止し、皮膚科専門医等にご相談ください。そのまま使用を続けますと症状が悪化することがあります。傷やはれもの、しっしん等、異常のある部位にはお使いにならないでください。目に入ったときは、直ちに洗い流してください。
【確認してほしい箇所】
- 「香りが苦手な方にも取り入れやすい」は、すべての方に合うと読まれないか確認してください4-4. スペック表(HTML)
# 作るもの
商品仕様の表をHTMLで。使ってよいタグは table, tr, th, td, br のみ。
- 項目名は th、値は td に入れる
- 項目は「商品名・内容量・区分・成分・原産国・使い方・注意事項・販売元」の順
- 機種依存文字(丸数字・ローマ数字・単位記号の合字)は使わない。「ml」は半角英字で書く成分は全成分をメーカーの表示どおりに入れるのが原則です。AIに要約させず、商品マスタの全成分をそのまま貼って表にさせてください。楽天市場・Yahoo!ショッピングで使えるHTMLタグの基本は商品説明文のHTMLタグのキホンを参照してください。
4-5. レビュー返信
レビュー返信で大事なのは、読み手がレビューを書いた本人だけではないことです。購入を検討している人や、モールの運営者も読みます。基本は低姿勢でありながら、第三者が読んでも客観的で筋道の通った回答にします。
# 作るもの
レビューへの返信文。200文字以内。
- 読み手は、レビュー投稿者・購入を検討している人・モールの運営者の三者と考える
- 基本は低姿勢。ただし事実と違う内容に同意したり、根拠のない約束をしたりしない
- 星4〜5:お礼と、レビューで触れられた点への一言
- 星1〜3:お詫びと、事実関係を確認したいのでショップへ連絡してほしい旨。言い訳や反論はしない
- 返信の中でクーポン・ポイントなどの特典には触れない
- 商品情報にない使い方のアドバイスや、別の商品の紹介・併用の提案はしない
# レビュー
評価:{星の数}
本文:{レビュー本文}出力例(イメージ・星2「思ったより乾燥する気がした」へのレビュー返信)
このたびはご購入いただき、ありがとうございます。ご期待に沿えず申し訳ございません。
本品はさっぱりした使用感に仕上げております。お使いの状況を詳しく伺いたく存じますので、お手数ですがショップまでご連絡いただけますと幸いです。AIは返信の中で、使い方のアドバイスや別の商品との併用を勧めがちです。しかし、商品情報にない使い方を店が勧めるのは、「渡した事実だけを使う」というルールから外れます。楽天市場では、別の商品につながる記載が広告・宣伝とみなされることもあります。メーカーが案内している使い方を伝えたい場合は、その文言を商品情報に入れてから返信を作らせます(こちらから提案した「商品の使い方」に誤りがあって、言質を取られることによる、二次的な対応コストを防ぐため)。
楽天市場では、レビューの内容や評価によって特典を変えることや、高評価のレビューを促すことは禁止されています。特典まわりのルールは楽天「レビューのお礼」で損することにまとめています。
5. スプレッドシートで一括生成する前に知っておきたいこと
スプレッドシートを使えば、1行=1商品として説明文を一括で作れます。ただし、一括生成の結果をそのまま使えるのは、商品マスタが揃っているときだけです。
先述の商品情報マスタの準備が必要なため、現実に商品の大量一括生成を行うことは少ないかもしれませんが、2章の商品マスタが揃っていて、AIにはその情報だけを使わせる設定にできれば、一括生成は現実的な選択肢になります。方法は2つあります。
| 方法 | 向いている場面 | 必要なもの |
|---|---|---|
| A. スプレッドシートのAI関数(Gemini) | 数十商品まで。まず試したい | Google Workspace(Business Standard以上)、または個人向けのGoogle AI Pro/Ultra |
| B. Google Apps Script(GAS)からGemini APIを呼ぶ | 数百商品以上。プロンプトを固定して回したい | Gemini APIキー |
A. AI関数で生成する
Googleスプレッドシートでは、セルに=AI("プロンプト", 範囲)(=GEMINI()でも可)と入力すると、Geminiの生成結果がセルに返ります(2026年10月1日確認)。
- 1行目に商品マスタの列名(区分・内容量・主な成分…)を並べる
- 別のセルに、共通部分のプロンプト(役割・守ること・使わない表現)をまとめて置く
- 説明文の列に、共通プロンプトとその行の商品情報を渡す式を入れる
- 下の行へコピーして生成する
注意点が3つあります。
- 1つのAI関数で生成されるのは、選んだ範囲の最初の350セルまでです。それ以上は分けて実行します
- AI関数にはウェブから最新情報を取ってくる使い方もありますが、説明文づくりでは使わせないでください。1章の「別の商品の情報が混ざる」原因になります
- 生成結果は元に戻す操作ができず、再生成になります。確定した説明文は値として別の列に貼り付けておきます(ショートカット「Ctrl(MacはCmd)+Z」による元に戻す処理が使えない)
B. GASで生成する(骨組み)
GASで動かすには、Gemini APIキーの発行と、コードの設定が必要です。どちらも最初に1回だけ行います(2026年10月5日確認)。
準備1:Gemini APIキーを発行する
- Google AI StudioのAPIキーの画面を開き、Googleアカウントでログインする
- 初めての場合は、利用規約に同意する
- 「Create API key」(日本語表示では「APIキーを作成」)を押し、表示されたキーをコピーする
- APIキーはパスワードと同じです。人に見せたり、シートやコードに書いたりしないでください
- 無料枠では、入力した内容がGoogleのサービス改善に使われます。発売前の商品情報などを入れたくない場合は、AI Studioで請求先を設定し、有料枠で使ってください
準備2:コードを設定して実行する
- 商品マスタのスプレッドシートを開き、メニュー「拡張機能」→「Apps Script」を開く
- 下のコードをすべて貼り付けて保存する(シート名「商品マスタ」「プロンプト」と、列名「説明文」を前提にしています)
- 左の歯車「プロジェクトの設定」→「スクリプト プロパティ」に、プロパティ名
GEMINI_API_KEY、値に準備1のキーを登録する。APIキーはコードに直接書かず、ここに保存します - エディタ上部で関数
generateDescriptionsを選び、「実行」を押す - 初回は権限の許可を求められる。「このアプリは Google で確認されていません」と表示された場合は、「詳細」→「(プロジェクト名)(安全ではないページ)に移動」→「許可」を押す(自分で作ったプログラムを、自分のアカウントで動かすときに出る表示です)
// 商品マスタの各行から説明文を生成し、「説明文」列に書き込む
function generateDescriptions() {
const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const model = 'gemini-3.8-flash'; // 2026年10月時点の安定版。費用を抑えるなら gemini-3.5-flash-lite
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('商品マスタ');
const promptSheet = ss.getSheetByName('プロンプト');
// 前提が揃っていなければ、APIを呼ぶ前に止める
if (!apiKey) throw new Error('スクリプトのプロパティに GEMINI_API_KEY がありません');
if (!sheet || !promptSheet) throw new Error('「商品マスタ」または「プロンプト」シートがありません');
const basePrompt = promptSheet.getRange('A1').getValue();
if (!basePrompt) throw new Error('「プロンプト」シートのA1が空です');
const rows = sheet.getDataRange().getValues();
const header = rows[0];
const outCol = header.indexOf('説明文');
if (outCol === -1) throw new Error('「商品マスタ」に「説明文」列がありません');
const startedAt = Date.now();
for (let i = 1; i < rows.length; i++) {
// 実行時間の上限(6分)に近づいたら止める。もう一度実行すると続きから再開する
if (Date.now() - startedAt > 5 * 60 * 1000) {
console.log(`${i + 1}行目の手前で中断しました。もう一度実行してください`);
return;
}
if (rows[i][outCol]) continue; // 生成済みの行は飛ばす
// 「項目名:値」の形にして渡す(空の項目は渡さない)
const info = header
.map((h, j) => (j === outCol || rows[i][j] === '' ? null : `${h}:${rows[i][j]}`))
.filter(Boolean)
.join('n');
if (!info) continue; // 空の行は飛ばす
const cell = sheet.getRange(i + 1, outCol + 1);
try {
cell.setValue(callGemini(apiKey, model, `${basePrompt}nn# 商品情報n${info}`));
cell.clearNote();
} catch (e) {
// 失敗した行はセルを空のままメモに理由を残し、次の行へ進む
cell.setNote(`生成に失敗:${e.message}`);
}
}
}
// Gemini APIを呼び出して生成文を返す。混雑(429)やサーバー側の一時的なエラー(5xx)は2回まで再試行する
function callGemini(apiKey, model, prompt) {
for (let attempt = 0; attempt < 3; attempt++) {
const res = UrlFetchApp.fetch(
`https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent`,
{
method: 'post',
contentType: 'application/json',
headers: { 'x-goog-api-key': apiKey },
payload: JSON.stringify({ contents: [{ parts: [{ text: prompt }] }] }),
muteHttpExceptions: true, // エラー時も例外にせず、ステータスコードで判定する
}
);
const code = res.getResponseCode();
if (code === 429 || code >= 500) {
Utilities.sleep(2000 * (attempt + 1));
continue;
}
if (code !== 200) throw new Error(`HTTP ${code}:${res.getContentText().slice(0, 200)}`);
const parts = JSON.parse(res.getContentText()).candidates?.[0]?.content?.parts;
if (!parts) throw new Error('生成結果がありません(安全性のフィルタで止められた可能性があります)');
return parts.map((p) => p.text || '').join('');
}
throw new Error('再試行しても混雑・エラーが続きました');
}GASには1回の実行時間の上限(通常6分)があるため、このコードは5分を過ぎたら止まり、もう一度実行すると「生成済みの行は飛ばす」仕組みで続きから再開します。生成に失敗した行はセルを空のまま、理由をセルのメモに残して次の行へ進みます。GASで売上を自動集計する記事でも、同じ考え方で処理を分けています。
プロンプト集のスプレッドシート版と、そのまま使える一括生成シートも、LINE友だち限定の「商品説明文AI作成キット」に入っています。一括生成シートはコードを設定済みで、メニューからAPIキーの登録と生成ができます(準備2の手順は不要です)。
6. 公開前の品質チェック手順
AIの出力は「事実」「規約」「表記」「読みやすさ」の順に確認します。 事実が違えば規約以前の問題なので、最初に見ます。
- 事実:成分・内容量・原産国・注意事項が商品マスタと一致しているか(AIが足した仕様がないか)
- 規約:AIの自己チェック欄に挙がった箇所を確認し、NG表現リストで全文を検索する
- 表記:機種依存文字、使えないHTMLタグがないか
- 読みやすさ:想定する買い手が読んで、使う場面が浮かぶか
チェックで見つかったNG表現は、NG表現リストに追記します。リストが育つほど、次のAIの出力が良くなります。これが「仕組み化」の中身です。
よくある質問
Q. ChatGPT・Claude・Gemini、どれを使えばよいですか?
A. この記事のプロンプトはどれでも使えます。スプレッドシートで一括生成するならGoogleのサービスと連携しやすいGemini、1商品ずつ対話しながら作るなら使い慣れたもので構いません。料金やセキュリティも含めた選び方は後日、ChatGPT・Gemini・Claudeを中小企業がどう選ぶかという観点の比較記事を出します。
Q. AIが書いた商品説明文は、楽天市場やAmazonで使ってもよいですか?
A. AIで作ったかどうかにかかわらず、商品ページの表示内容の責任は出店者が負います。事実と規約のチェックは、必ず人が行ってください。
Q. 他社の商品ページを参考に渡してもよいですか?
A. 構成の参考にとどめ、文章そのものを渡して書き換えさせるのは避けてください。似た文章になり、著作権の問題になりえます。成分や内容量も、他社ページではなく自社の商品マスタから渡します。
Q. NG表現リストはどのくらいの頻度で見直すべきですか?
A. モールの規約改定の告知があったとき、差し戻しや違反の指摘を受けたとき、新しいカテゴリの商品を扱い始めたときが見直しのタイミングです。
まとめ:AIに任せるのは下書きと一次チェックまで
- 商品の事実は、ネットの情報ではなく自社の商品マスタから「項目名:値」で渡す
- 区分(化粧品・医薬部外品・雑貨・食品)を渡し、使える表現の範囲をAIに伝える
- NG表現はプロンプトで禁止し、出力の最後にAI自身にもチェックさせる
- 一括生成は商品マスタが揃っているときだけ。揃っていなければ、まず商品マスタを整える
- 公開前は「事実→規約→表記→読みやすさ」の順に人が確認し、見つかったNG表現はリストに足す
説明文の次に自動化しやすいのは、レビュー返信の下書きや、問い合わせの一次対応です。どの業務からAIに任せるかの考え方はEC事業者の生成AI導入ロードマップで解説しています。
自社で回したい方へ
NG表現リストの完全版(言い換え案つき)・プロンプト集・一括生成シートの3点を、「商品説明文AI作成キット」としてLINE友だち限定で配布しています。Claudeを商品説明や問い合わせ対応など日々のEC業務に活かす方法をまとめた実践ガイド「ECに活かすClaudeの使い方」も、あわせて受け取れます。
仕組みづくりから任せたい方へ
メーカーごとにばらばらな商品情報を揃えた商品マスタの設計、自社の商品カテゴリに合わせたNG表現リストの作成、生成とチェックの仕組みの導入まで、弊社で作って納めます。
※この記事の規約・法令に関する記載は2026年10月1日時点の情報です。個別の表現の可否は、各モールのガイドラインや専門家にご確認ください。


