Codexで広告文作成を自動化!大量テキストを効率生成する実践コード例とプロンプト設計
結論:Codexを使えば広告文作成は「半自動化」できる
Codex(コード生成に特化したOpenAIモデル)を活用すると、広告文作成の多くをコードで自動化できます。とくに「大量のバリエーション生成」「フォーマット統一」「出し分け条件の明文化」など、人がやると大変な作業を一気に効率化できます。
この記事では、Codexを使って広告文を大量生成するための考え方と、実際に動くコード例をわかりやすく解説します。Pythonを前提にしていますが、JavaScriptなどに置き換えても応用可能です。
Codexで広告自動生成を行う全体像
広告文自動生成のワークフロー
Codexで広告文作成を自動化する際の全体像は、以下の流れです。
- ① 広告の要件を洗い出す(媒体・文字数・トーン・禁止表現など)
- ② プロンプト(指示文)のテンプレートを作る
- ③ 商品データやターゲット情報をコードから渡す
- ④ Codex APIを呼び出して、広告文パターンを一括生成する
- ⑤ 生成された広告文を人がチェックし、ABテストなどに利用する
Codexとは何か:定義と特徴
Codexとは、OpenAIが提供する「コード生成に特化した言語モデル」の総称であり、自然言語とプログラミング言語の両方を理解して、コードやテキストを生成できるAIモデルです。ChatGPTのベースとなっているGPTシリーズの一種で、以下のような特徴があります。
- 自然言語(日本語・英語など)とコード(Python、JavaScriptなど)を同時に扱える
- 「仕様の説明」から「動くコード」を自動で生成できる
- コード中に自然文を含む処理(テンプレート生成など)との相性がよい
広告文自動化では「テキスト生成」が主目的ですが、「コードで回す」「テンプレート管理」「CSVやDBとの連携」が必要になるため、Codex系モデルが非常に扱いやすいのが特徴です。
Codexで広告文を自動生成する基本コード例
ここでは、Pythonを使って「商品リストからGoogle広告の見出しと説明文を一括生成する」ケースを例に、シンプルな実装を紹介します。
前提:APIキーとライブラリの準備
まずはOpenAIのPythonライブラリをインストールし、環境変数にAPIキーを設定します。
pip install openai
# macOS / Linux の例
export OPENAI_API_KEY="your-api-key"
# Windows PowerShell の例
$env:OPENAI_API_KEY="your-api-key"
商品ごとに広告文を生成するシンプルなPythonコード例
以下は、商品名と特徴から広告見出しと説明文を生成する基本的なコード例です。
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
PROMPT_TEMPLATE = """
あなたはプロの日本語コピーライターです。
以下の条件で、ネット広告用のテキストを作成してください。
# 出力フォーマット
JSON形式で出力してください。キーは次の3つです。
- headline: 30文字以内の魅力的な見出し(全角ベース)
- description: 90文字以内の説明文
- call_to_action: 15文字以内の行動喚起メッセージ
# 条件
- 誇大広告や断定表現(「絶対」「必ず」など)は避ける
- ターゲットに合わせた自然なトーンにする
- 記号「!」「?」の多用は避ける
# 商品情報
商品名: {name}
特徴: {features}
ターゲット: {target}
媒体: {media}
"""
def generate_ad_text(product):
prompt = PROMPT_TEMPLATE.format(
name=product["name"],
features=product["features"],
target=product["target"],
media=product["media"],
)
response = client.responses.create(
model="gpt-4.1-mini", # Codex相当のコード生成も得意な軽量モデル
input=prompt,
max_output_tokens=300,
temperature=0.7,
)
return response.output[0].content[0].text
if __name__ == "__main__":
products = [
{
"name": "プログラミングスクールA",
"features": "未経験から6ヶ月でWebエンジニアを目指せるオンライン完結のスクール。現役エンジニアがマンツーマンでサポート。",
"target": "20〜30代のキャリアチェンジを考えている社会人",
"media": "Google検索広告",
},
{
"name": "時短家事代行サービスB",
"features": "共働き世帯向けの定期清掃サービス。水回りとリビングの掃除を週1回プロが担当。",
"target": "小さな子どもがいる共働き家庭",
"media": "Instagram広告",
},
]
for p in products:
ad_json = generate_ad_text(p)
print(p["name"], ad_json)
上記コードでは、商品情報を辞書で渡し、プロンプトテンプレートに埋め込んでからAPIを呼び出しています。返却されたテキストはJSON形式にしているため、そのままシステム側でパースしやすい形になっています。
大量の広告テキストを効率的に生成するポイント
1. プロンプトテンプレート設計が最重要
広告文自動生成の精度は、ほぼ「プロンプト設計」で決まります。以下の観点でプロンプトテンプレートを設計しましょう。
- 媒体ごとの制約(文字数・禁止表現・改行ルールなど)を明記する
- 口調・トーン(ですます調 / フランク / ビジネスライク)を指定する
- ターゲット情報(年齢層、課題、状況)をできるだけ具体的に書く
- 出力フォーマット(JSON / TSV / Markdownなど)を厳密に指定する
- 良い例・悪い例を1〜2セット書いて、期待するニュアンスを伝える
2. バリエーション生成用のパラメータ設計
Codex(およびGPTモデル)は、同じプロンプトでもパラメータを変えることで、出力のバリエーションを増やせます。主に調整すべきは以下です。
- temperature:0.2〜0.4なら安定寄り、0.7〜0.9なら多様性重視
- max_output_tokens:媒体の文字数制限に合わせて設定
- top_p:0.8〜1.0で調整し、極端な表現を避ける
また、同じ商品に対して複数パターンを一度に生成したい場合は、プロンプト側で「3パターン生成してください」「patterns: [ … ] の配列で返してください」と指定しておくと、後処理も楽になります。
3. CSVやスプレッドシートとの連携
現場で大量の広告文を作る場合、多くは「商品マスタ」「キーワードリスト」「ターゲット一覧」がCSVやスプレッドシートで管理されています。Codexを使った自動生成でも、この形式に合わせて入出力を設計するとスムーズです。
| 項目 | 入力(プロンプトに渡す) | 出力(生成結果の保存) |
|---|---|---|
| 商品名 | ◎(必須) | そのまま反映 |
| 特徴・ベネフィット | ◎(できるだけ長め) | 見出し・説明文に要約される |
| ターゲット | ◎(ペルソナ情報) | トーンや訴求ポイントに反映 |
| 媒体種別 | ◎(Google / Meta など) | 文字数・構成に反映 |
| 生成された見出し | – | Codex出力を格納 |
| 生成された説明文 | – | Codex出力を格納 |
4. 大量バッチ生成のコード例
次に、「CSVから商品情報を読み込み、広告文を大量に生成して、別CSVに書き出す」コードのイメージを示します。
import csv
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
PROMPT_TEMPLATE = """
あなたは日本語コピーライターです。
以下の情報から、{media}向けの広告テキストを3パターン作成してください。
# 出力フォーマット
JSON形式で次のキーを含む配列として出力してください。
[
{{ "headline": "...", "description": "..." }},
...
]
制約条件:
- 見出しは30文字以内
- 説明文は全角90文字以内
- 誇大表現は避ける
- ターゲットに刺さるベネフィットを優先的に訴求する
# 商品情報
商品名: {name}
特徴: {features}
ターゲット: {target}
"""
def generate_ads_for_row(row):
prompt = PROMPT_TEMPLATE.format(
name=row["product_name"],
features=row["features"],
target=row["target"],
media=row["media"],
)
response = client.responses.create(
model="gpt-4.1-mini",
input=prompt,
max_output_tokens=600,
temperature=0.7,
)
return response.output[0].content[0].text
input_file = "products.csv"
output_file = "ad_texts.csv"
with open(input_file, newline="", encoding="utf-8") as f_in, \
open(output_file, "w", newline="", encoding="utf-8") as f_out:
reader = csv.DictReader(f_in)
fieldnames = reader.fieldnames + ["ad_variations_json"]
writer = csv.DictWriter(f_out, fieldnames=fieldnames)
writer.writeheader()
for row in reader:
ads_json = generate_ads_for_row(row)
row["ad_variations_json"] = ads_json
writer.writerow(row)
このように、「入力CSV → Codexで生成 → 出力CSV」というパイプラインを作っておけば、商品数が数百件あってもコード1本で一括生成できます。
広告運用で使える実践的なプロンプト設計例
Google検索広告向けプロンプト例
あなたはGoogle広告の専門コピーライターです。
次の条件で検索連動型広告の見出しと説明文を3パターンずつ作成してください。
# 媒体
- Google検索広告
# 制約
- 見出し: 全角30文字以内
- 説明文: 全角90文字以内
- 誇大広告表現は使用しない
- 商標や比較広告に関するNG表現は避ける
- ユーザーの検索意図を満たす自然な表現にする
# ターゲットユーザー
- {target}
# 商品・サービス概要
- 商品名: {name}
- 特徴: {features}
- 主なベネフィット: {benefits}
# 出力フォーマット
以下のJSON形式で出力してください。
[
{
"headline": "...",
"description": "..."
},
{
"headline": "...",
"description": "..."
},
{
"headline": "...",
"description": "..."
}
]
Facebook / Instagram広告向けプロンプト例
あなたはFacebook / Instagram広告のコピーライターです。
フィード広告用のテキストを、以下の条件で3パターン作成してください。
# 媒体
- Facebook / Instagram フィード広告
# 制約
- メインテキスト: 最大120文字
- 見出し: 最大25文字
- カジュアルだが丁寧な口調
- 絵文字は使いすぎない(0〜2個程度)
# ターゲットユーザー
- {target}
# 商品・サービス概要
- 商品名: {name}
- 特徴: {features}
- 利用シーン: {use_case}
# 出力フォーマット
JSON形式で、次のキーを持つオブジェクトの配列として出力してください。
[
{
"primary_text": "...",
"headline": "..."
},
...
]
運用上の注意点:AI生成広告の品質とリスク管理
AI広告生成で押さえるべきポイント
- 薬機法・景表法など、業界ごとの法規制に抵触しないか人間が必ずチェックする
- 媒体ポリシー(Google / Meta / Yahoo! など)の最新ルールに沿っているか確認する
- ブランドトーンに合っているか、ブランドガイドラインと突き合わせる
- 成果指標(CTR、CVRなど)を見ながら、効果の高いパターンの特徴をプロンプトへフィードバックする
Codexで広告を自動生成するメリット・デメリット比較
| 項目 | メリット | デメリット / 注意点 |
|---|---|---|
| スピード | 数百〜数千パターンを短時間で生成できる | レビュー工数が追いつかない場合がある |
| 品質のばらつき | テンプレ設計次第で一定レベルを保ちやすい | 微妙なニュアンスやブランドらしさは人の調整が必要 |
| コスト | ライター工数を大幅に削減できる | API利用料と管理の設計が必要 |
| 運用工数 | 一度パイプラインを作れば増やすのは容易 | 初期設計とメンテナンスにはエンジニアが必要 |
よくある質問(FAQ)
Codexで広告文を作るとき、どのモデルを選べばいいですか?
最新では、従来のCodex専用モデルよりも、gpt-4.1 や gpt-4.1-mini のような汎用モデルの方が、コードとテキスト両方に強く、広告コピー生成にも向いています。軽量でコストを抑えたい場合は gpt-4.1-mini を、品質重視なら gpt-4.1 を選ぶとよいでしょう。
広告文の品質を安定させるコツは?
プロンプト内で「良い例・悪い例」を示し、媒体ごとの文字数や禁止事項を細かく指定することが重要です。また、temperatureを0.3〜0.5程度に抑え、生成された広告の中から成果の良かったパターンの特徴をプロンプトに反映していくと、徐々に品質が安定してきます。
大量生成した広告の中から、どれを使うかどう選べばいいですか?
まずは、媒体ポリシーと法規制をクリアしているものを人間がフィルタリングし、その上でクリック率(CTR)、コンバージョン率(CVR)などの指標を見ながらABテストを行うのが現実的です。成果上位のパターンを分析し、「どんな訴求が効いたか」を次の生成プロンプトに戻して改善します。
ノンエンジニアでもCodexを使った広告自動生成はできますか?
簡単なスクリプトレベルであれば、テンプレートとサンプルコードを用意しておくことで、ノンエンジニアでも十分に扱えます。スプレッドシート連携やGUIツールを併用すれば、裏側のAPIコールはすべて隠した状態で運用することも可能です。
社内の固有ルール(NGワード集など)も反映できますか?
はい、プロンプト内に「禁止表現リスト」を記載し、「これらの語句は一切使用しないこと」と明示することで、かなりの程度は反映できます。また、生成後にNGワードチェックを行うスクリプトを挟めば、二重の安全策となります。
まとめ:Codexで広告制作を「仕組み化」する
CodexとGPT系モデルを使えば、広告文作成は「属人的な作業」から「仕組み化されたプロセス」に変えることができます。ポイントは以下の通りです。
- 媒体ルール・法規制・ブランドトーンをプロンプトに落とし込む
- CSVやスプレッドシートと連携し、大量生成を前提としたパイプラインを作る
- ABテストの結果を元にプロンプトを継続的に改善する
最初は小さな商品群から試し、徐々に対象範囲を広げていくのがおすすめです。広告運用の現場にCodexをうまく組み込むことで、クリエイティブ制作のスピードと精度の両方を高めていきましょう。
この記事の内容とあわせて、以下の動画も参考にしてください。より具体的な活用イメージが掴めます。