GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/API / SDK
API / SDK/2026-05-17中級

Gemini API で iOS/Android アプリのメタデータを30言語自動生成した実装 — Beautiful HD Wallpapers の多言語化で気づいたこと

累計5,000万DLの壁紙アプリで実際に試した、Gemini APIを使ったApp Store/Google Playメタデータの多言語自動生成。翻訳精度を担保するプロンプト設計から文字数制限への対応まで、実装コードとともに公開します。

Gemini API191App Store6多言語6メタデータ個人開発91iOS13Android10ローカライズ2

Beautiful HD Wallpapers を App Store に登録したとき、最初に対応した言語は日本語と英語の2つだけでした。それでも十分と思っていましたが、ダウンロード数が増えるにつれてアプリのダッシュボードに変化が起きました。韓国、台湾、インドからのユーザーが増え始め、ストアページのローカライズが収益に直結することを数字で実感しはじめたのです。

2014年から個人でアプリ開発を続けてきた中で、累計5,000万DLを超えた現在も一人で5本のアプリを運営しています。App Storeのメタデータを30以上の言語に翻訳することは、以前なら翻訳代理店に外注するか諦めるかの二択でした。それが Gemini API の登場で変わりました。実際の実装コードと、3ヶ月間使い続けてわかったことを正直に書き残します。

なぜ通常の翻訳ツールでは足りないのか

Google 翻訳や DeepL で十分では、と最初は思いました。短い文章なら問題ありません。しかし App Store のキャッチコピー(30文字制限)や説明文(4,000文字制限)に求められるのは、単純な翻訳より「その言語圏のユーザーに刺さるコピー」です。

たとえば "Beautiful wallpapers that calm your mind" を直訳すれば「心を落ち着かせる美しい壁紙」になります。でも日本語の App Store で響くのは「毎日変わる、心が整う壁紙」のような表現です。翻訳ではなく、各言語圏の読者心理に合わせた意訳——これが Gemini API を選んだ理由です。

Gemini 2.5 Flash は「App Store 向けの魅力的なコピーを書く」という意図を高精度に読み取ります。system instruction でコンテキストを固定しておけば、言語が変わっても安定した品質が出ます。

実際の実装コード(Python)

google-genai SDK を使った基本的な構成です。

import google.generativeai as genai
import os
import time
 
# APIキーは環境変数から取得する
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
 
model = genai.GenerativeModel(
    model_name="gemini-2.5-flash",
    system_instruction="""あなたはApp Store/Google Playのメタデータ専門のコピーライターです。
以下の原則に従って翻訳・意訳してください:
- 直訳ではなく、対象言語のユーザーに自然に響く表現を選ぶ
- 文字数制限を厳守する(超過した場合は短縮してください)
- ブランド名(Beautiful HD Wallpapers等)は変更しない
- 検索されやすいキーワードを自然に含める
"""
)
 
def translate_app_metadata(source_text: str, target_language: str,
                            field_type: str) -> str:
    """
    アプリのメタデータを指定言語に翻訳する
 
    Args:
        source_text: 翻訳元テキスト(英語または日本語)
        target_language: 翻訳先言語(例: "Korean", "French")
        field_type: "subtitle" | "description" | "short_description" | "keywords"
 
    Returns:
        翻訳済みテキスト
    """
    # プラットフォームごとの文字数制限
    limits = {
        "subtitle": 30,           # App Store キャッチコピー
        "short_description": 80,  # Google Play ショート説明
        "description": 4000,      # 共通
        "keywords": 100           # App Store のみ
    }
    char_limit = limits.get(field_type, 4000)
 
    prompt = f"""以下のApp Storeの{field_type}{target_language}にローカライズしてください。
 
制約:
- 最大文字数: {char_limit}文字(厳守)
- 翻訳結果のみ出力(説明や注記は不要)
 
元のテキスト:
{source_text}
"""
    response = model.generate_content(prompt)
    result = response.text.strip()
    return result
 
# 使用例: 30言語に翻訳
languages = [
    "Korean", "Chinese (Traditional)", "Chinese (Simplified)",
    "French", "German", "Spanish", "Portuguese (Brazil)",
    "Italian", "Russian", "Arabic", "Hindi", "Turkish",
    "Dutch", "Swedish", "Polish", "Thai", "Vietnamese",
    "Indonesian", "Malay", "Greek", "Czech", "Romanian",
    "Hungarian", "Finnish", "Danish", "Norwegian", "Hebrew",
    "Ukrainian", "Filipino", "Bengali"
]
 
source_subtitle = "Calm your mind with beautiful wallpapers"
 
translations = {}
for lang in languages:
    translations[lang] = translate_app_metadata(
        source_subtitle, lang, "subtitle"
    )
    print(f"{lang}: {translations[lang]}")
    time.sleep(0.5)  # レート制限対策

実際の運用では asyncio を使って並列処理にすることで、30言語の変換を数分で完了させています。asyncio を使った並列処理の実装例も合わせて読んでいただくと、より実践的な構成がわかります。

プロンプト設計で品質を上げる3つのポイント

3ヶ月使い続けてわかったのは、出力品質の差がほぼプロンプトの差だということです。

1. system instruction でコンテキストを固定する

generate_content を呼ぶたびにコンテキストを渡すより、GenerativeModel の初期化時に system_instruction として設定する方が安定します。「何のアプリか」「どのストア向けか」「どんなユーザーを想定しているか」は一度 system instruction に書いておけば、個別のプロンプトはシンプルに保てます。

2.「翻訳」ではなく「ローカライズ」と指示する

プロンプトに "translate" や "翻訳" と書くと直訳が返ってくることがあります。"localize for [country] App Store users" のように書くと、現地感のある表現になりやすい傾向があります。同じ英語のキャッチコピーでも "Wallpapers for a peaceful mind"(直訳調)と "Find your calm. Beautiful wallpapers, daily."(英語App Storeのトーン)では受け取られ方が全然違います。

3. 精度が必要な言語は few-shot で例示する

アラビア語やヘブライ語など、自分では品質を確認しにくいRTL(右から左)言語には、良い例を1セット添えておくと出力が安定します。

prompt = f"""
App Storeのキャッチコピーをアラビア語にローカライズしてください。
 
良い例:
入力: "Beautiful wallpapers for your phone"
出力: "خلفيات رائعة تضيء شاشتك"(最大30文字)
 
翻訳対象(最大30文字):
{source_text}
"""

App Store の文字数制限への対処

最も苦労したのが文字数制限のハンドリングです。キャッチコピーの30文字制限は、ドイツ語やフィンランド語のように単語が長い言語では特にタイトです。

以下の関数を用意して、制限内に収まるまで再生成を試みています。

def ensure_char_limit(text: str, limit: int,
                       language: str) -> tuple[str, bool]:
    """
    文字数制限を守るまで再生成を試みる
 
    Returns:
        (テキスト, 制限内に収まったかどうか)
    """
    if len(text) <= limit:
        return text, True
 
    max_retries = 3
    current = text
 
    for attempt in range(max_retries):
        response = model.generate_content(
            f"以下のテキストを{limit}文字以内に短くしてください"
            f"({language}の意味を保ちながら):\n\n{current}"
        )
        current = response.text.strip()
        if len(current) <= limit:
            return current, True
 
    # 3回試行しても収まらない場合は警告フラグ付きで返す
    return current, False

制限内に収まらなかった言語は CSV にフラグを書き出して、後で手動確認しています。実際には30言語のうち制限超過が起きるのは2〜3言語程度で、これは許容範囲と判断しました。

Google Play と App Store の仕様の違い

Google Play と App Store ではメタデータの仕様が異なります。コードでは platform パラメータで切り替えています。

主な違いは次の通りです。タイトルは App Store が30文字、Google Play が50文字です。キャッチコピーは App Store にしかなく、Google Play には代わりに "Short description"(80文字)があります。説明文はどちらも最大4,000文字です。

なお、キーワードフィールドは App Store 専用です(100文字・コンマ区切り)。Google Play はキーワードフィールドがなく、説明文中のキーワード密度がランキングに影響するため、説明文生成時のプロンプトで自然なキーワード配置を意識しています。

3ヶ月使い続けてわかったこと

品質面では Gemini 2.5 Flash で十分なレベルが出ています。英語・韓国語・中国語(繁体字・簡体字)は、ネイティブに見せても「問題ない」と言ってもらえる水準でした。一方、アラビア語・ヒンディー語・ベンガル語は私自身が検証できないため、Google Play Console の A/B テスト(ストアの掲載情報実験)を使って翻訳前後のインストール転換率を地域別に比較しています。

Beautiful HD Wallpapers の実例として、インドのヒンディー語版を追加した後に該当地域からのインストール数が約15%増加しました。この数字だけでメタデータ翻訳の効果とは言い切れませんが、少なくとも悪影響はありませんでした。

コスト面は Gemini 2.5 Flash の安価なトークン単価が効いています。30言語 × 4フィールド(タイトル・キャッチコピー・説明文・キーワード)で1アプリあたりAPI費用は数円程度。5本のアプリを対象にしても月の費用は数百円に収まっています。どのモデルを使うかの判断基準は、モデル選定ガイドに詳しくまとめています。

メタデータの多言語化と並行してスクリーンショットのASO最適化も進めると、相乗効果が出やすいです。

個人開発を続けてきた中で実感するのは、「一人では絶対に手が届かなかった作業」が Gemini によって現実的になったということです。30言語への対応はかつてなら代理店に外注するか諦めるかの二択でした。それが今、週に1時間のメンテナンスで動き続けています。同じ状況にある個人開発者の方の参考になれば幸いです。

次のステップ

実装を試してみる場合の手順をまとめます。まず Google AI Studio でアカウントを作成し、API キーを取得してください。次に、今回紹介したコードをローカルで動かして、1〜2言語のキャッチコピーから試してみると感覚がつかみやすいです。数言語で品質に納得できたら、対応言語を段階的に増やしていく形が、失敗のリスクが少ないやり方です。

App Store Connect の「ローカライズ」タブから各言語のメタデータを登録できます。Gemini が生成したテキストをそのまま貼り付ける前に、Google 翻訳や DeepL で逆翻訳して意味がずれていないかを確認するひと手間が、品質担保の最終ステップになります。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

API / SDK2026-07-16
Gemini にスクリーンショットを採点させたら、全部78〜85点だった — 絶対スコアを捨ててペア比較に切り替えるまで
Gemini Vision に App Store スクリーンショットを100点満点で採点させると、良い案も崩した案も78〜85点に潰れます。弁別能を実測して絶対スコアを捨て、位置バイアスを除いたペア比較でランキングを作るまでの実装記録です。
API / SDK2026-05-25
Gemini API でアプリのローカリゼーションを自動QAする: 翻訳ドリフトを早期検出する構造化出力パイプライン
累計5,000万DLの個人開発アプリで多言語ローカリゼーションを運用するなかで見えた、翻訳ドリフトを早期検出する Gemini 2.5 Pro × 構造化出力の評価パイプラインを設計から実装まで整理します。
API / SDK2026-05-24
Apple Vision Framework × Gemini API のハイブリッド画像認識 ─ 壁紙アプリでクラウド推論コストを 7 割削減した設計メモ
iOS の Apple Vision Framework でオンデバイス事前フィルタを行い、Gemini Vision API への送信を半分以下に絞った壁紙アプリの実装記録。コスト・精度・レイテンシの実測値と、ハマりどころを共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →