GA、GSC 報表每週手動拉到崩潰?n8n 自動報表實戰:行銷數據週報自動生成教學
前言
如果你每週要登 GA、GSC、社群後台,把數字一格格複製貼進週報——這篇就把它變成n8n 自動報表:用一把服務帳號接遍 GSC、GA4、Google Sheets,讓系統每週一早上自己生出行銷數據週報(核心是 n8n 的 HTTP Request 節點)。整條工作流也打包成免費下載送你,不會寫程式也能拿去改。
行銷人的週報,到底卡在哪裡?
會想做行銷數據週報自動化的人,通常不是不會看數據,而是被「搬數據」這件事卡住。每週的固定戲碼是這樣:先登 GSC 看關鍵字點擊和曝光,再切到 GA4 看流量來源和訪客數,接著開社群後台抄粉絲和互動,最後把這些數字一個一個貼進報表、重排格式。等整理完,時間和力氣都耗在複製貼上,真正該做的「解讀數字、調整策略」反而沒力氣做了。
更麻煩的是,這種手動流程很容易出錯:貼錯欄、抄漏一個平台、或這週忙就乾脆跳過不做。數據斷了一兩週,後面想看趨勢就接不起來。報表的價值本來在「持續看、看出變化」,一旦變成「有空才做」,就失去意義了。
先看成果:一條 n8n,每週一早上吐兩張表
先講結果再講怎麼做。這條n8n 自動報表工作流會在每週一早上自動跑一次,把 GSC、GA4、社群三邊的數字抓回來,整理成兩張我打開就能看的表。我沒有自己寫什麼後端程式,做的事是把需求講清楚、把工具接在一起、卡住的時候請 AI 一起想辦法。
整合報告:本週所有數字分區攤開來看
第一張叫行銷整合報告,把三類數據用顏色分區堆在一起:藍色區是搜尋成效(關鍵字、點擊、曝光、排名),綠色區是網站流量(流量來源、造訪次數、訪客人數、瀏覽頁數),紫色區是社群數據。每週覆蓋掉上週、只留最新一份,欄名也都換成「造訪次數」「訪客人數」這種白話詞,不是冷冰冰的英文指標名。這張是用來看「本週發生了什麼」。
趨勢表:每週往右加一欄,看的是成長
第二張叫趨勢,排法剛好相反:指標固定當左邊那一欄,每跑一週就往右邊多加一欄。這樣同一個指標一路往右看過去,就是它這幾週的變化曲線。整合報告看的是「這週的細節」,趨勢看的是「有沒有在往上走」,兩張表分工,各看各的。
為什麼拆成兩張,不擠成一張
我原本想全部塞一張表,後來發現「看細節」和「看成長」是兩種完全不同的看法,硬擠在一起兩邊都不好讀。拆成兩張之後,要對客戶報本週數字就看整合報告,自己想知道有沒有進步就看趨勢,反而清楚。這是實際用了幾週才調出來的版面。
動手前準備:一把服務帳號接遍 GSC、GA、Sheets
在接任何資料之前,要先準備一個東西:服務帳號(service account,可以理解成一組「給程式用的專屬帳號」,不是你平常登入的那個 Google 帳號)。整條流程要去讀 GSC、讀 GA4、寫 Google Sheets,都靠它去敲門。
為什麼用服務帳號,而不是每次登入授權
一般我們授權 App 用 Google 資料,是跳出來問「要不要允許」那種方式(OAuth)。但自動報表是排程時間到了自己跑,沒有人在電腦前面按「允許」,所以那種要人點頭的方式不適合。服務帳號剛好相反——它是一組固定的身分,設定好權限後就能讓排程在背景自己存取,不用每次有人授權。服務帳號怎麼建、金鑰怎麼拿,照 Google 官方說明走一次就好,這篇不重複。
一把帳號要分別去三個地方開權限
這是最容易忽略的一點:服務帳號建好不等於就能讀資料。它就像一個新員工,你得分別在 GSC、GA4、那張 Google Sheets 三個地方,把它加進去、給它檢視或編輯的權限。少加一個,那一邊就會吃閉門羹。我一開始以為設定一次就全通,結果 GA 那邊一直讀不到,回頭才發現是忘了在 GA 把它加進去。
接 GSC 和 GA4:n8n 原生節點會卡的兩件事
準備好服務帳號,接下來就是去把 GSC 和 GA4 的數字抓回來。這一段是整篇最容易出錯的地方,而且兩個問題都不是「不會」,是「以為會、結果報錯」那種。先看這條工作流實際長怎樣。
GA4 的原生節點只認 OAuth,逼你改用 HTTP Request
n8n 其實有 Google Analytics 的原生節點,照理說點一點填一填就好。但我接下去才發現,這個原生節點只支援 OAuth、沒有服務帳號這個選項,它一直要我填那種要人授權的金鑰。前面講過排程不能靠人點頭,所以這條路走不通。最後的做法是繞過原生節點,改用萬用的 HTTP Request 節點,直接打 GA4 的官方 Data API,搭配同一把服務帳號。GSC 也一樣,沒有現成又能吃服務帳號的好節點,一律用 HTTP Request 自己打。
帳戶 ID 不等於資源 ID,填錯就一直 403
這個問題我卡了最久。GA4 裡有兩個長得很像的編號:一個是帳戶 ID,一個是資源 ID(Property ID)。打 Data API 要的是資源 ID,但人很自然會去抓那個比較顯眼的帳戶 ID,一抓錯,API 就回你「沒有權限存取這個資源」——明明權限都開了,錯的其實是 ID。兩者的差別整理成一張表最清楚:
| 名稱 | 在哪裡看到 | 拿去打 API 的結果 |
|---|---|---|
| 帳戶 ID(Account ID) | GA 管理 → 帳戶設定 | ❌ 回報「沒有權限」(403) |
| 資源 ID(Property ID) | GA 管理 → 資源設定 | ⭕ 正確抓得到資料 |
所以遇到 GA4 一直回「沒有權限」,先別急著重設權限——很可能權限是對的,只是把帳戶 ID 當成資源 ID 填進去了。把 ID 換成資源設定裡那一組,通常就通了。
這些 GSC、GA4 的 HTTP 接法,還有後面負責整理、上色的 Code 節點,是整條流程最花時間搞懂的部分。我把整條行銷整合週報工作流清乾淨(金鑰、網域、試算表 ID 都換成空白欄位)打包成可下載的 JSON,你可以直接匯進自己的 n8n,對照這些難一點的節點是怎麼設定的,省下自己從零摸索的時間。檔案放在我的n8n 自動化服務頁的免費下載區。
📖 延伸閱讀:n8n + Apify 社群監控工具教學:一次追蹤 5 個平台的競品動態
社群數據也接進來:Threads 粉絲與互動
搜尋和流量接好之後,週報還缺社群這一塊。我接的是 Threads:一樣用 HTTP Request 打它的官方介面,把粉絲數、瀏覽、按讚、回覆、轉發、引用這幾個數字抓回來,整理成報表裡的「脆粉絲」「脆瀏覽」「脆互動」三個欄位(互動就是讚、回、轉、引加起來)。
社群這塊是可選的,我只是拿 Threads 示範
要先說明,社群數據不是這份週報的必要項——GSC 和 GA4 才是核心,社群想一起追就加、用不到可以完全不接。我這邊單純拿 Threads(脆)當例子,同樣的接法換成 IG、FB 或其他平台也通,差別只在各家 API 規則不一樣。
Threads token 會過期,我用一條自動續期工作流擋掉
接 Threads 抓數據要帶一張通行證(也就是 token,一串證明你有權限的代號),而這張通行證大約 60 天就會過期,過期後不會報錯、只是默默抓不到資料。我用一條獨立的工作流每月自動幫它換新,所以週報這邊永遠拿得到還沒過期的 token、不會某天突然斷掉。token 為什麼會過期、這條自動續期工作流怎麼設計、失敗時怎麼收到通知,我在另一篇〈多平台發文如何自動化?我捨棄 Buffer,用 n8n 串 API 一次發三平台〉裡寫得更完整,這裡就不重複。
報表怎麼排才看得懂:明細覆蓋 vs 趨勢橫向
抓回來的數字是一堆原始資料,要先整理成「人看得懂的排版」才有用。前面提過我用兩張表分工,這一段講它們的排法為什麼這樣設計。
整合報告:每週覆蓋,永遠只看最新一份
整合報告我設計成每週覆蓋:新的一週跑完,就把上週的內容蓋掉。因為「本週數字」這種東西,看最新的就好,舊的留著只會越疊越長、越難找。分區用顏色標、欄名用白話寫、數字靠右對齊,目的就是讓我(或客戶)打開不用想,直接看得懂哪個是哪個。
趨勢:每週往右疊一欄,自動看出有沒有成長
趨勢表剛好相反,捨不得蓋掉,要的就是累積。指標固定在最左邊那一欄,每週往右加一欄當週的數字,幾週下來橫著看就是一條成長曲線。同一週如果重跑,它會比對週期、覆蓋掉同一欄而不是重複加,所以不會越跑越亂。回頭看前面成果那張趨勢表,9 個指標一路往右遞增,橫著看就是有沒有在成長——這就是橫向加欄累積出來的價值。
設定每週一早上自動跑
所有資料接好、排版定好之後,最後一步就是讓它定時自己跑,不用我每週去按。
用排程節點設定每週一早上八點
n8n 有一個排程節點,我把它設成每週一早上八點觸發。這樣每個禮拜一進辦公室,整合報告和趨勢都已經更新好了,我打開就能看、能直接拿去對客戶報,不用再花半小時整理。要改成每天、每月或別的時間,也都是改這一個節點而已。
排程型工作流記得手動開啟「啟用」
有個小地方很多人會忘:排程型的工作流,在 n8n 裡編輯完還要記得把它切成「啟用」狀態,它才會真的按時間自己跑。沒開啟的話,你手動按執行是會動,但時間到了它不會自己觸發。我自己就有一次以為設好了,結果週一沒跑,一看才發現忘了開啟用。
📖 延伸閱讀:n8n + Claude Code 自動產生社群貼文:AI 小編生成器製作教學
常見問題 FAQ
Q1:我沒有工程師背景,這個做得到嗎?
做得到。真正要寫程式的部分幾乎沒有,主要是在 n8n 裡設定節點、填對網址和欄位,再把服務帳號的權限開好。比較需要耐心的是搞懂 GSC、GA4 各自要填什麼。我的建議是先接一個來源(例如只接 GSC)跑通,再慢慢加 GA4、社群,不要一開始就想三個一起上。
Q2:服務帳號和 OAuth,做自動報表該用哪個?
做排程自動報表,服務帳號幾乎一定比較適合。因為報表是時間到了在背景自己跑、沒有人在旁邊按「允許」,而 OAuth 那種方式是設計給「有人在操作、會點頭授權」的情境。服務帳號設定好一組固定身分和權限,之後就能讓排程安靜地自己存取,不用人介入。
Q3:為什麼我的服務帳號接 GA4 一直回「沒有權限」?
最常見的兩個原因。一是忘了在 GA4 裡把這個服務帳號加進去——它在 GSC 有權限不代表在 GA4 也有,兩邊要分別開。二是把帳戶 ID 當成資源 ID填了,這兩個編號不一樣,打 API 要用資源設定裡那一組。先檢查這兩點,通常就解決了。
Q4:社群 token 會過期,自動報表會不會某天突然斷掉?
如果不處理,會。社群的 token 大約兩個月到期、過期後默默抓不到資料,所以要另外跑一條每月自動續期的工作流先換新,永遠趕在過期之前。這條續期工作流的完整做法和會卡的地方,我在前面提到的多平台發文那篇講得更細,可以直接參考。
Q5:報表多久跑一次比較合理?
看你多常需要做決策。對多數行銷人,每週一次剛剛好——數字夠累積出變化、又不會頻繁到看不出意義。如果是大檔活動期間想盯緊一點,可以臨時改成每天跑;活動結束再調回每週。好處是改頻率只要動排程那一個節點,整條流程不用重接。
總結
n8n 自動報表的核心就三件事:一把服務帳號接遍 GSC、GA4、Google Sheets,原生節點吃不了服務帳號就改用 HTTP Request 直接打 API,再用排程每週一早上自動生出整合報告和趨勢兩張表。最花時間的不是串工具,是搞懂「帳戶 ID 不等於資源 ID」這種小細節;跑通一次,它每週都幫你省下半天搬運。
同主題文章
行銷專用
多平台發文如何自動化?我捨棄 Buffer,用 n8n 串 API 一次發三平台
多平台發文自動化怎麼做?這篇分享我為什麼捨棄 Buffer,改用 n8n 串 Meta Graph API,把一篇定稿自動發到 FB、IG、Threads 的完整流程,還有 token 會過期這個最容易被忽略的問題。
n8n 自動產生 SEO 推薦文:51 個節點打造競品分析+自動寫稿|開發工具箱 4
用 51 個 n8n 節點把 SEO 推薦文整條龍自動化:自動搜競品、分析、生成草稿。拆解整個流程怎麼組起來。
n8n + Claude Code 自動產生社群貼文:AI 小編生成器製作教學
想一鍵生出不同風格的社群貼文?用 n8n 串接 Claude Code 做一個 AI 小編生成器,輸入主題就自動產文的完整流程。