Codex
2026.10.09

Codexで広告文作成を自動化!大量のテキスト生成を効率化するコード例

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をうまく組み込むことで、クリエイティブ制作のスピードと精度の両方を高めていきましょう。

この記事の内容とあわせて、以下の動画も参考にしてください。より具体的な活用イメージが掴めます。

https://youtu.be/MDKJA5lqELo?si=bX5t8NNeb_ErYWPN

ブログ一覧へ戻る

おすすめ記事

CONTACT US

公式LINEで
無料相談受付中!

専門スタッフがLINEで無料相談を承ります。
初めての方も安心してご利用ください。