

一位社群行銷專員的例行工作,需要每周整理 Facebook 與 Instagram 等多個平台的數據並製作詳細的周報,各平台的數據格式略有不同,只能一一到後台下載後,再手動複製貼上整合成周報。有沒有更聰明的方法?
透過 ChatGPT 與 Google Sheets 裡的 App Script 整合工作流程,讓自動化輕鬆解決,需點擊幾下按鈕,就可以將所有平台的數據自動彙整、統計出正在觀測的指標。
這個自動化工具特別適合以下人群
- 固定頻率需要下載數據進行觀測的人
- 需要匯總數據、整理報表的工作者
從 0 到 1 的自動化建構方式
先拆解工作情境,建立底層邏輯
以下用舉辦一個行銷活動的概念來舉例:
先確定最終想產出什麼東西
就像開始行銷活動前會先確認目標(例如提升品牌知名度或增加銷售量),展開自動化流程前,你同樣需要想清楚要達成的具體結果是什麼,希望自動生成一份完整的周報?還是只需要自動計算幾個關鍵指標就好?思考這個目標如何被達成
確定目標後,你會思考需要用哪些行銷手法來實現。同理,在自動化過程中,這一步相當於確認好需要哪些原始數據才能做出一份周報(例如:貼文觸及數、貼文點擊數與平均觸及等指標),如果日常你會固定從某後台下載數據做整理,也可以直接參考其格式,因為這些項目就是後續在 Google Sheets 上建立的標題欄位。
透過 ChatGPT 協助完成自動整理數據報表
如何搭建自動化環境:
1. 建立一個 Google Sheets ,填入上一階段盤點出來的項目作為標題欄位。將標題對應的測試資料一起填入,確保後續能夠順利進行測試。
打開 ChatGPT ,將你的自動化需求告訴它,請它撰寫 App Script 需要用到的程式碼。
【以下為 ChatGPT 詢問舉例】
我已在 Google Sheet 裡創建一個工作表,名稱為「 FB 原始資料」,有以下欄位和他們代表的定義:
- Date:每篇貼文發布的日期
- Type:貼文發布的類型
- Content:貼文內容
- Link:貼文連結
- Impression:貼文曝光數
- Reach:貼文觸及數
我希望透過 App Script 將「 FB 原始資料」的數據整理到另一個名稱為「 FB 數據整理測試」的工作表,裡面會有以下欄位與相對應的資料:
A 欄位
○ 名稱為時間:一周為一個單位(上周六到本周五為一個區間)
○ 舉例:日期顯示「6/29、6/30、7/1 、7/2、7/3、7/4、7/5、7/6、7/7、7/8、7/9、7/10、7/11、7/12」,A2 儲存格就填寫 6/29-7/5,以及 A3 填寫 7/6-7/12B 欄位
○ 名稱為貼文觸及數
○ 請抓取該日期區間的觸及數並加總,格式範例: 111,111C 欄位
○ 名稱為貼文篇數
○ 請算出總共有幾篇貼文,以貼文內容的儲存格數來算,格式範例: 111,111D 欄位
○ 名稱為平均觸及
○ 請算出平均觸及,用 C 欄位數字除以 B 欄位,格式範例: 111,111E 欄位
○ 名稱為觸及成長率
○ 請算出成長率(本周-前周)/前周,如果是負成長標淺粉色底色,如果是正成長標淺綠色底色,以百分比呈現
小提醒:
1.如果要算比例、平均等等,請將算式直接告訴他,或者舉例給 ChatGPT ,較不容易因為兩邊理解落差而出錯!
【你會收到像下圖的程式碼】
- 將 ChatGPT 提供的程式碼貼回 Google Sheets 並執行任務
a. 打開 Google Sheets 中的「擴充功能」並選擇 App Script
b. 將 ChatGPT 提供的程式碼貼上
備註:圖片僅為示意,非完整程式碼
c. 儲存完後即可按下執行並授權權限,測試有沒有成功
小提醒:自動化工具是基於「固定格式」來幫你整理數據。如果資料發生以下變化,就需要修改程式碼。舉例來說:
欄位名稱變更
a. 假設 Facebook 報表中的「 Impression 」欄位突然改名為「曝光次數」,自動化工具就無法正確識別和處理這個欄位。數據格式改變
a. 如果 Instagram 將日期格式從「 DD/MM/YYYY 」改為「 YYYY-MM-DD 」,自動化工具可能會錯誤解讀日期,導致出錯。
因此,在使用自動化工具時,定期檢查原始數據格式和自動化工具是否一致非常重要,這樣才能確保你的報表始終能正常運作。
複雜需求難以一次到位,簡化是關鍵!
情境一:在單一 Google Sheets 中處理多平台數據
你成功處理了 Facebook 的數據,並想在相同檔案中處理 Instagram 的數據。然而,當數據彙整需求變得複雜,或者兩個平台的數據格式有差異時,會容易導致程式錯誤。
為了避免這種情況,建議採取逐步推進的方法:
1. 確保現有的 Facebook 數據處理流程運行無誤 = 剛剛下指令的邏輯是正確的
2. 接續在剛剛的段話串下,提出專門處理 Instagram 數據需求
【以下為 ChatGPT 詢問舉例】
資料源原本只有「 FB 原始資料」,現在要新增一張工作表名稱是 「 IG 原始資料」,
裡面的欄位及相對應的值如下:
- Date:每篇貼文發布的日期
- Type:貼文發布的類型
- Link:貼文連結
- Share:貼文分享數
- Click:貼文點擊數
我希望 App Script 能將「IG 原始資料」整理到一個新的工作表「IG 數據整理測試」中,處理方式類似之前的 Facebook 數據。新工作表應包含以下欄位:
A 欄位
○ 名稱為時間:一周為一個單位(上周六到本周五為一個區間)
○ 舉例:日期顯示「6/29、6/30、7/1 、7/2、7/3、7/4、7/5、7/6、7/7、7/8、7/9、7/10、7/11、7/12」,A2 儲存格就填寫 6/29-7/5,以及 A3 填寫 7/6-7/12B 欄位
○ 名稱為貼文篇數
○ 請算出總共有幾篇貼文,以 Link 的儲存格數來算C 欄位
○ 名稱為貼文分享數
○ 請抓取該日期區間的分享數並加總D 欄位
○ 名稱為貼文點擊數
○ 請抓取該日期區間的分享數並加總E 欄位
○ 名稱為貼文互動數
○ 請抓取該日期區間的分享數與點擊數並加總
接著,你就可以重複剛剛的動作,將指令貼回 App Script 中。
這邊有個小提醒!你可能會想把所有新指令往下新增到 App Script 中剛剛的程式碼下方,一次搞定所有平台的數據。
先別急,這樣做雖然看似方便,但整體程式碼會變得很長,未來某個平台的數據出問題了,你就得在這堆龐大的程式中排除問題,更聰明的做法是把每個平台的處理邏輯分開,在 App Script 編輯介面中找到「檔案」旁的加號,點擊後選擇程式碼,就可以新增處理 Instagram 數據的程式碼,並依照處理的平台去命名(如下圖),未來有問題,就能快速定位到對應的程式,節省除錯時間。
情境二:數據跑不出來,看不懂程式碼哪邊出錯
如果發現 ChatGPT 提供的程式碼不斷出錯,可以試著拆解需求,在代碼中加入排查訊息幫助你了解問題出在哪!
以下為範例:
試跑流程後發現程式吐出以下訊息 「Exception: The number of rows in the range must be at least 1. summarizeFbData @ Facebook 數據處理.gs:65」。
可以將這個錯誤訊息提供給 ChatGPT,並請它在原有的程式碼中加入錯誤排查指令。ChatGPT 會給你一個更新版的程式碼,你只需用此版本替換掉舊的即可。
如果執行後仍然出現錯誤,將新的錯誤訊息再次提供給 ChatGPT,請它根據錯誤提示協助修復,持續這個來回對話的過程,直到程式成功運行為止。
最後一步:新增 Google Sheets 前台執行選單
雖然自動化流程已經建立,但每次執行任務都需要打開 App Script 並手動執行程式,增加了不必要的操作步驟。
我們可以在 Google Sheets 的介面上直接添加執行按鈕。這樣只需點擊按鈕就能啟動整個自動化流程,大大簡化了操作過程。以下是新增步驟:
【ChatGPT 詢問舉例】
請幫我用 App Script 在 Google 試算表的前台直接新增自訂選單。目的是避免每次執行任務時都要開啟 App Script 編輯器。具體需求如下:
在 Google Sheets 上方的功能列中新增一個名為「執行數據處理」的自訂選單
在這個選單中加入三個子選項
○ a. 執行 Facebook 數據處理
○ b. 執行 Instagram 數據處理
○ c. 執行所有平台數據處理當點擊選單中的任一選項時:
○ 「執行 Facebook 數據處理」應只處理 Facebook 相關的數據
○ 「執行 Instagram 數據處理」應只處理 Instagram 相關的數據
○ 「執行所有平台數據處理」應同時處理 Facebook 和 Instagram 的數據點擊選項後,直接執行對應的 App Script 函式,不需要手動開啟指令碼編輯器
【你會收到像下圖的程式碼】
備註:圖片僅為示意,非完整程式碼
【將新版程式碼貼回 App Script】
小提醒!需要注意 function 後的程式碼顯示函示,「新增 Google Sheets 選單」的函式為 「onOpen() 」,確認為正確函式後再按下執行,否則會無法新增成功!
執行完任務後,只需重整試算表,若在上方欄位看到新選項,就表示操作成功了!
還想學習其他自動化情境來優化工作流程嗎?
如果你有定期寄 Email 的任務,推薦你看這篇文章,不用程式背景即可一次處理全部信件,所有流程在 Google Sheets 上就能搞定!