Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
電商上架最耗時的往往不是拍照,而是「每個品項都要寫一段描述」。這篇會帶你把產品名稱、規格、賣點列在試算表,讓 Gemini 依這些資料為每個品項生成一段吸引人的商品文案,再自動寫回表格,讓上百個品項的文案一次搞定。
完成後,你只要把產品的基本資料填進試算表、按一下執行,每一列旁邊就會出現一段可直接用於商品頁的描述。原本要一個下午的手寫工作,變成幾分鐘的自動產出加上快速潤飾。
商品描述是很典型的「格式固定、但量很大」的工作:每段結構其實差不多,難的是品項一多,人就寫到麻木、品質也開始飄。趕上架時更容易草草了事,反而傷了轉換率。
Gemini 最擅長這種「給素材、產文案」的任務,只要餵它規格與賣點,就能生出結構完整、語氣一致的描述;試算表則是整理產品資料最自然的地方,一欄素材、一欄成品。兩者結合,等於把文案生產線接進你的商品清單,量再大也能穩定產出。
動作建立欄位,例如 A 欄名稱、B 欄特色賣點、C 欄規格、D 欄生成文案、E 欄狀態,第一列放標題。
常見地雷程式以欄位位置抓資料,調整欄序後要同步改程式裡的欄號。
動作在試算表點「擴充功能 > Apps Script」,讓程式綁定這份表。
常見地雷第一次執行會要求授權存取試算表,請用擁有這份表的帳號授權。
動作在「專案設定 > 指令碼屬性」新增 GEMINI_API_KEY,值填你的金鑰。
常見地雷別把金鑰寫死在程式碼,避免分享或匯出時外洩。
動作把下方第一段共用函式貼進編輯器,負責呼叫 Gemini 取回文字。
常見地雷確認模型名稱是 gemini-2.5-flash,打錯會回 404。
動作把名稱、特色、規格組進提示詞,指定風格、字數與結構(例如開頭情境+賣點+規格重點)。
常見地雷素材缺漏會讓文案空泛,盡量把關鍵賣點填齊再生成,效果差很多。
動作讀出所有產品列,跳過已完成的,逐筆送 Gemini 並把文案寫回 D 欄、標記狀態。
常見地雷只處理狀態為空的列,避免每次都重跑整張表、浪費額度。
動作先填 3 到 5 個品項執行 generateDescriptions,檢查文案是否準確、沒誇大不實。
常見地雷AI 可能自行腦補規格,務必核對數字與功能是否與實際產品相符。
動作風格對了就把整張表填滿素材、清空狀態後執行,一次產出全部文案。
常見地雷改提示詞後先小量驗證,滿意再放大量,才不會整批都要重生成。
下面第一段是共用的 askGemini 函式,把提示詞送給 Gemini 並回傳純文字,直接照抄即可。
function askGemini(prompt) {
const key = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=' + key;
const payload = { contents: [{ parts: [{ text: prompt }] }] };
const res = UrlFetchApp.fetch(url, { method:'post', contentType:'application/json', payload: JSON.stringify(payload), muteHttpExceptions:true });
return JSON.parse(res.getContentText()).candidates[0].content.parts[0].text.trim();
}
接著是主流程 generateDescriptions:讀取產品名稱、特色與規格,用 Gemini 生成商品描述,寫回 D 欄並標記狀態。STYLE 可依你的品牌調整。
function generateDescriptions() {
const STYLE = '專業但親切,強調使用情境與好處,避免浮誇不實的形容';
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
const name = data[i][0]; // A 欄:名稱
const feature = data[i][1]; // B 欄:特色賣點
const spec = data[i][2]; // C 欄:規格
const status = data[i][4]; // E 欄:狀態
if (!name || status === '已生成') continue;
const prompt = '請為以下產品撰寫一段商品描述文案。\n'
+ '產品名稱:' + name + '\n'
+ '特色賣點:' + feature + '\n'
+ '規格:' + spec + '\n'
+ '風格:' + STYLE + '\n'
+ '要求:200 字以內、開頭營造使用情境、中段帶出賣點、結尾一句行動呼籲。\n'
+ '只能根據上面提供的資料撰寫,不要杜撰未提供的規格或功能。\n'
+ '請只回傳文案本身,不要加標題或說明。';
const desc = askGemini(prompt);
const row = i + 1;
sheet.getRange(row, 4).setValue(desc); // D 欄:文案
sheet.getRange(row, 5).setValue('已生成'); // E 欄:狀態
}
}
把產品清單和文案收在同一張表,素材進、成品出,一目了然。你不必再對著空白編輯器逐項想句子,只要負責核對數字與最後的語感把關。
建議先核對再上架,尤其是規格數字與功能敘述。Gemini 產出的描述通常結構完整、語感也好,但仍可能把賣點講得比實際誇張,或不小心腦補沒提供的功能。把它當初稿,你負責事實查核與微調,就能兼顧速度與正確性,避免誇大不實的風險。
有可能,這是 AI 的通病。降低風險的關鍵,是在提示詞明確要求「只能依提供的資料撰寫、不要杜撰未提供的規格」,教學裡已經加了這句。即便如此,上架前仍建議人工核對一次數字與功能,特別是尺寸、容量、成分這類客戶很在意的細節。
邏輯上沒問題,程式會逐列處理整張表。但實務上建議分批,一來避免撞到 API 速率限制,二來一次產太多也不好一次審完。常見做法是每次跑一批、審一批、上架一批,穩紮穩打,品質比較有保障,也比較不會漏看錯誤。
可以,關鍵在提示詞的風格描述。你可以指定語氣(專業、活潑、質感)、句型偏好,甚至貼一兩個你滿意的範例讓它模仿。不同品類還能用不同工作表配不同提示詞。描述得越清楚,成品就越貼近你的品牌調性,減少後續大改的機會。
可以,在提示詞裡列出想帶入的關鍵字並要求自然融入即可。不過提醒別過度堆砌關鍵字,那樣不但讀起來生硬,對搜尋排名也未必加分。理想是讓關鍵字順順地出現在情境與賣點裡,兼顧可讀性與搜尋友善,這正是 Gemini 擅長的地方。
每個品項只是一次短呼叫,成本很低,中小型商品目錄通常在免費額度內就能跑完。若你有上千個品項要一次生成,建議分批處理、避開速率限制;長期大量需求再評估付費方案即可,屆時沿用同一組金鑰、程式不用改。
若素材相近、提示又籠統,確實可能有點模板感。改善方法是把每個產品的獨特賣點填清楚,並在提示詞要求「依產品特性調整開頭與角度」。素材差異夠、提示夠具體,文案自然就有變化,不會像套版一樣千篇一律。
可以,在提示詞寫明字數上限即可,例如「200 字以內」。Gemini 大致會遵守,偶爾略有出入,所以審稿時順手確認。如果你的商品頁對長度有嚴格要求,把上限抓保守一點、留點緩衝,貼上去就不會爆版或被截斷。
不太需要。日常維護主要是改提示詞的風格、字數這些文字,屬於複製貼上等級。核心邏輯已寫好並附註解,看懂中文說明就能微調。若要做較大改造,例如串接商品資料庫或匯出格式,再找懂 GAS 的人或參考官方文件即可。
不用全部,你可以只挑要重生成的列,把它們的「狀態」欄清空,再執行一次程式就只重跑那幾列。已經滿意的文案保持狀態為已生成就不會被動到。這樣能針對性地優化,既省額度、也不會把原本好的成品覆蓋掉。
把「逐項寫描述」交給 Gemini、把「素材與成品管理」交給試算表,上架團隊就能把心力放在選品與轉換優化上。如果想把這條文案生產線完整導入、甚至串接商品系統,可以找專人帶著團隊一起做。
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels