iT邦幫忙

2026 iThome 鐵人賽

DAY 22
0
Build on Google AI

30 天用 Google ADK 打造你的「全自動 AI 虛擬團隊」系列 第 22

Day 22 | 行銷 Agent 登場:抓取爆款鉤子,產出社群文案

  • 分享至 

  • xImage
  •  

大家好!歡迎來到「Build on Google AI」工程挑戰的第 22 天。

(沒錯,大家期待的安全授權機制又被插隊了!因為在實務場景中,當 RD Agent 把精美的影片分鏡表交出來後,行銷部 (Marketing) 的主管立刻衝進戰情室大喊:「腳本很棒,但誰來寫宣傳文案?沒有爆款鉤子,這支影片根本沒人看!」)

這就是真實的企業級產品流水線。今天,我們要將工作流向外延伸,透過 Google ADK 引入一位新同事:行銷 Agent (Marketing Agent)。

在行銷領域中,社群貼文的前三行決定了生死,這被稱為「鉤子 (Hook)」。如果我們只是寫個簡單的 Prompt 叫 AI「幫我寫篇 FB 貼文」,它通常會給你充滿 Hashtag 和冗長無趣的官腔文案。

今天,我們要用「軟體工程」的方法,將行銷學的「Hook -> Body -> CTA」框架,寫死在系統的底層結構裡!

第一步:定義「高轉換率」的文案資料結構
在行銷自動化中,我們不僅需要純文字,我們需要系統將標題、鉤子、內文與 Hashtag 完全拆分。這樣前端工程師才能將鉤子放大加粗、將 CTA 做成可點擊的按鈕。

我們繼續運用 Pydantic 的強型別魔法:

from pydantic import BaseModel, Field
from typing import List

# 定義單一平台的貼文結構
class SocialMediaPost(BaseModel):
    platform: str = Field(description="目標平台,如 Facebook, Instagram, Threads")
    hook: str = Field(description="爆款鉤子 (Hook):限 2 句話,必須製造懸念、痛點共鳴或反常識,吸引讀者停下手指")
    body: str = Field(description="內文主體:根據影片內容提供價值,語氣需符合該平台調性")
    call_to_action: str = Field(description="行動呼籲 (CTA):明確指示讀者下一步該做什麼,如點擊連結、留言")
    hashtags: List[str] = Field(description="3-5 個高流量標籤")

# 定義完整的行銷活動包
class MarketingCampaign(BaseModel):
    campaign_name: str = Field(description="行銷活動內部代號")
    posts: List[SocialMediaPost] = Field(description="針對不同平台生成的貼文陣列")

第二步:打造千萬流量的行銷 Agent
有了骨架,我們需要為 Agent 注入靈魂(Persona)。在 ADK 中,給予 Agent 具體的身分設定與極度明確的規則約束,是產出高品質文案的關鍵。

from google.adk import Agent

# 初始化行銷 Agent
marketing_agent = Agent(
    name="marketing_agent",
    model="gemini-2.5-pro", # 創意發想與精準的受眾心理揣摩需要 Pro 級別
    instruction=(
        "你是一位曾操盤過多個千萬級流量產品的資深社群行銷總監。"
        "你的任務是根據收到的『影片企劃或分鏡表』,為不同社群平台撰寫宣傳文案。\n"
        "【重要守則】:\n"
        "1. Threads 的受眾喜歡簡短、真實、甚至帶點碎碎念的隨性風格。\n"
        "2. Facebook 適合完整的痛點故事鋪陳。\n"
        "3. Instagram 需要重視視覺與排版,大量使用 Emoji。\n"
        "絕不允許寫出『歡迎來到我的貼文』這種廢話,開頭的 Hook 必須一擊斃命!"
    ),
    response_schema=MarketingCampaign # 強制以我們定義的格式輸出
)

第三步:實戰程式碼:從企劃到文案的完美交接
現在,我們把前幾天產出的「短影音企劃書」直接餵給這位行銷 Agent。

import logging
from tenacity import retry, wait_exponential, stop_after_attempt
from google.api_core.exceptions import ResourceExhausted

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

@retry(retry=retry_if_exception_type(ResourceExhausted), wait=wait_exponential(multiplier=2, max=30), stop=stop_after_attempt(5))
def safe_marketing_invoke(prompt: str):
    return marketing_agent.invoke(prompt)

if __name__ == "__main__":
    # 這是前幾天 RD / Director Agent 產出的企劃內容 (模擬輸入)
    video_storyboard_content = """
    影片標題:Google ADK 解決 JSON 報錯的終極救星
    總時長:15秒
    分鏡 1:工程師看著螢幕崩潰抓頭髮,畫面上滿滿的 JSON 解析錯誤紅字。(3秒)
    分鏡 2:一個發光的 Google ADK Logo 降臨,自動把亂碼變成整齊的 Python Pydantic 物件。(5秒)
    分鏡 3:工程師準時下班,喝著咖啡看夕陽。旁白:「別再用 Regex 修 JSON 了,ADK 結構化輸出讓你準時下班。」(7秒)
    """

    print("🚀 行銷 Agent 啟動!正在針對各大平台產出專屬文案...\n")
    
    # 組合 Prompt,交接任務
    task_prompt = f"請為以下即將上線的短影音企劃,產出 Facebook, Instagram 與 Threads 的宣傳文案:\n\n{video_storyboard_content}"
    
    try:
        campaign_result = safe_marketing_invoke(task_prompt)
        
        print(f"🔥 行銷活動代號:【{campaign_result.campaign_name}】\n" + "="*40)
        
        # 遍歷不同平台的貼文,直接提取獨立的 Hook 與 CTA
        for post in campaign_result.posts:
            print(f"\n📱 平台:{post.platform}")
            print(f"🪝 鉤子 (Hook) ➡️  {post.hook}")
            print(f"📝 內文 ➡️  {post.body}")
            print(f"🎯 CTA  ➡️  {post.call_to_action}")
            print(f"🏷️ 標籤 ➡️  {' '.join(['#'+t for t in post.hashtags])}")
            print("-" * 40)
            
    except Exception as e:
        logger.error(f"行銷文案生成失敗: {e}")

驚人的執行成果
當你執行這段程式碼時,你會發現強型別控制與精準 Prompt 帶來的魔力:

  • Threads 平台的 Hook: 「工程師們說實話,這禮拜你們被 JSON Decode Error 搞死幾次了?」

  • Facebook 平台的 Hook: 「還在用 Regex 暴力破解 LLM 的輸出格式?別傻了,這招只會讓你加班到天亮。」

這就是企業級的 AI 自動化!行銷 Agent 不是只給你一坨文字,而是精準地把「鉤子」、「內文」與「按鈕文字」全部切分好,完美契合現代行銷系統的需求。

https://ithelp.ithome.com.tw/upload/images/20260923/20121643f7r8jVuBgN.png

小結
今天,我們透過 ADK 的結構化輸出,成功賦予了 Agent「行銷腦」,讓它能寫出懂人心、具備高轉換率的文案。


上一篇
Day 21 | 雲端非同步:解決 Cloud Run 產出長片腳本的超時問題 (Timeout)
系列文
30 天用 Google ADK 打造你的「全自動 AI 虛擬團隊」22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言