

# 如何核對 X 公開計數值與你持有的分析匯出資料

先核實帖文、定義、時間範圍及觀測時間是否一致，再判定 2 個讀數是否不符。

讀數是某個來源在某個時間提供的 1 個數值。核對是指記錄哪些資料一致、哪些資料的範圍不同，以及哪些仍然未知。範圍是指一個數字涵蓋的內容，包括指標、帖文及時段。時段是指一段期間的開始和結束時間。

公開資料快照無法重建缺失的每月帳戶報告。快照是指在某個時間讀取一次公開計數值。請將能夠解釋的範圍差異，與無法解釋的差異分開記錄。

## 比較步驟

### 1. 說明報告需求。

公開帖文記錄表可記錄你目前能夠讀取的已知帖文。記錄表以每列記錄 1 則帖文。它無法填補私人報告中的每一欄，也無法重建你沒有儲存的過往月份資料。

用 1 行文字寫下你的需求。如果你需要過往某個月份的完整帳戶報告，請停止操作。說明公開資料快照無法提供該報告。如果你已持有匯出資料，則可以繼續。該匯出資料必須涉及已知的公開帖文。

### 2. 先讀取 1 則已知的公開帖文。

Actor 是在託管環境中執行的資料收集程式。Task 是為該 Actor 儲存的一組預設輸入設定。[X Post Metrics](https://apify.com/chronometrica/x-post-metrics) Actor 會收集公開資料列。比較工作由你負責。Actor 不會指定結果類別。已儲存的 Task 只是起始輸入設定，並不能證明比較工作會自動完成。

這些欄位規則以公開版本 Build 1.0.4 為準。該版本的 `startUrls` 接受 1 至 1,000 個已知的公開帖文網址。帖文網址是指 1 則帖文的網頁地址。本文所指的帖文，是在 X 上公開、並有獨立帖文網址的 1 則訊息。X 是位於 x.com 的公開網站。

請按以下次序檢查執行結果。先從已儲存的 Task 開始。用你的試行網址取代範例。然後讀取原生資料列欄位。接着讀取每項指標的 `postMetricStatus`。最後讀取執行摘要。不要將執行摘要放進帖文資料列。

目前已儲存的 Task 輸入是範例：

```json
{
  "startUrls": [
    "https://x.com/OpenAI/status/2074907025537224840",
    "https://x.com/OpenAI/status/2074907027378511884",
    "https://x.com/OpenAI/status/2074907031862190406"
  ]
}
```

比較步驟

這 3 個網址都是範例。請改用你已知的公開帖文。試行是指首次進行的小規模執行。試行時只用 1 個網址，讓測試維持小規模。

這個 Actor 不會搜尋個人檔案的時間軸，不會建立指定日期範圍的帳戶報告，也不會開啟私人分析資料。它無法復原你沒有儲存的歷史資料。它不會收集受保護帖文。受保護帖文並不公開。它不會使用帳戶憑證。憑證是密碼或其他登入機密資料。

每個輸入網址都會產生 1 列記錄讀取嘗試的資料。即使缺少有用資料，該列仍會包含 `status` 及 `statusReason`。`status` 表示該列的最終狀態。`statusReason` 提供簡短原因。缺失的計數值不等於零。零是實際傳回的數字。null 表示無法取得該數值。

信任試行資料列前，請檢查四項內容。檢查 `postId` 及 `postUrl` 是否與你要求讀取的帖文一致。檢查 `status`。檢查 `observedAt`。檢查你將使用的每項指標的 `postMetricStatus`。`observedAt` 是觀測時間。觀測時間是讀取計數值的時間。發佈時間是帖文發佈的時間。不要將這些時間互換。

原生資料列欄位包括 `inputUrl`、`postUrl`、`postId`、`profileId`、`views`、`likes`、`replies`、`reposts`、`quotes`、`bookmarks`、`profileFollowers`、`postMetricStatus`、`status`、`statusReason` 及 `observedAt`。

`inputUrl` 是你提交的網址。`postUrl` 是資料列上的帖文網址。`postId` 是帖文 ID。`profileId` 是帳戶 ID。計數值是為該帖文或帳戶儲存的數字。`views` 計算公開瀏覽事件的次數。資料列亦包含 `likes`、`replies`、`reposts`、`quotes` 及 `bookmarks`。讚好是有人表示喜歡該帖文的標記。回覆是對帖文的回應。轉發是分享該帖文。引用是加入文字的分享。加入書籤是儲存帖文。這裏不要將這些計數值相加。這個方法不會用它們計算比率。

`profileFollowers` 是該帳戶在 `observedAt` 的公開追蹤者人數。追蹤者是追蹤該個人檔案的帳戶。不要將 `profileFollowers` 當作帖文瀏覽次數。

精確程度表示數字是精確值、經四捨五入，還是精確程度未知。`postMetricStatus` 會提供每項已傳回指標的精確程度。請將精確程度與數字一併保留。如果某項指標缺失，請保留為缺失。不要填入 0 來補缺。

對照執行是指已檢查過的公開資料執行，用來確認會傳回哪些欄位。目前的一次公開資料對照執行，傳回了所要求的識別及時間欄位。這些欄位包括 `postId`、`postUrl`、`profileId`、發佈時間及 `observedAt`。它亦傳回了 `views`、`likes`、`replies`、`reposts`、`quotes`、`bookmarks` 及 `profileFollowers`。其 `status` 為 ok。

每項已傳回指標的 `postMetricStatus` 均為 present/exact/public_post。

| 已傳回的指標 | 對照執行的 postMetricStatus |
| --- | --- |
| views | present/exact/public_post |
| likes | present/exact/public_post |
| replies | present/exact/public_post |
| reposts | present/exact/public_post |
| quotes | present/exact/public_post |
| bookmarks | present/exact/public_post |

Present 表示該指標存在於資料列中。Exact 表示該次對照執行的數值是精確值。`public_post` 表示來源是公開帖文。該次對照執行顯示可以收集公開計數值，卻不能證明公開計數值等於私人匯出資料。你自己的執行結果可能不同。請讀取你自己的資料列。不要將對照執行的狀態套用到它沒有讀取的帖文。

執行摘要並非帖文資料列。其欄位包括 `inputCount`、`datasetRows`、`usefulRows`、`billableRows`、`failedRows`、`statusCounts` 及 `stopReason`。

`inputCount` 計算輸入網址的數量。`datasetRows` 計算已寫入的資料列數量。`usefulRows` 計算包含有用資料的列數。`billableRows` 計算該次執行標記為須計費的列數。`failedRows` 計算失敗的列數。`statusCounts` 按狀態分組計算列數。`stopReason` 說明執行停止的原因。不要將這些資料貼進帖文瀏覽次數的儲存格。本文不會虛構這些計數，也沒有列出價格。

### 3. 記錄你已持有的自有匯出資料。

匯出資料是來自你獲准使用的分析報告的檔案。已授權報告是指你獲准使用的報告。只有在獲准使用時，才可使用匯出資料。這個方法不會從 X 擷取私人匯出資料，不會免費取代儀表板，也不會繞過存取規則。

較早的公開帖文不能決定 X Analytics 現時的價格或存取條件。請參閱 [Twitter 分析工具的替代方案](https://www.reddit.com/r/Twitter/comments/1e5a688/alternatives_for_twitter_analytics/)及 [X（Twitter）分析](https://www.reddit.com/r/Twitter/comments/1abvw05/x_twitter_analytics/)。如果你尚未持有報告，請將報告一方保留為未知。

如果你持有已授權報告，請從該報告複製以下內容。複製帖文 ID。複製指標名稱。從報告本身的註解複製指標定義。複製日期範圍及時區。複製擷取時間。擷取時間是取得報告檔案的時間。如果報告列明付費或自然範圍，也請一併複製。付費範圍涵蓋經推廣的帖文。自然範圍涵蓋報告標記為未經推廣的帖文。如果報告沒有列明這種劃分，請勿自行虛構。

不要假設名為 impressions 的欄位與公開瀏覽次數相同。不要將帳戶總數當作單一帖文的總數。請使用報告的定義。如果缺少定義，比較結果便維持未知。

### 4. 按帖文 ID 配對資料列。

將 `postId` 與匯出資料中的帖文 ID 配對。不要按標題或文字配對。2 則不同的帖文可以使用相同文字。即使說明文字改變，帖文 ID 仍可能相同。ID 才是配對依據。

即使公開資料列沒有對應的報告資料列，也要保留。即使報告資料列沒有對應的公開資料列，也要保留。無法讀取的 ID 應保留為未知。不要將缺少配對當作 0。

有些報告資料列是帳戶在某段期間的彙總列。這類資料列涵蓋某個時段內的多則帖文。不要將該列連接到單一帖文。不要將帳戶數值當作該帖文的數值。請在資料列上寫明彙總層級。彙總層級表示該列代表 1 則帖文、1 天，還是 1 個帳戶。

### 5. 比較數字前，先釐清範圍。

為這對資料指定 1 個範圍標籤。

`same_metric_scope` 表示指標定義、帖文及時間範圍一致。

`different_metric_scope` 表示你能證明定義或期間不同。

`definition_unknown` 表示缺少所需的定義。

公開累計計數值表示讀取時的總數。累計是指將發佈至 `observedAt` 之間的事件加總。指定期間的報告則顯示某個時段內的事件。昨日結束的時段數值，可能與今日讀取的總數不同。這 2 個數字回答的是不同問題。

公開瀏覽次數是瀏覽事件的次數。X 表示，這可以包括重複瀏覽及作者自己的瀏覽。它並非每人只計算一次的不重複人數。使用 `views` 前，請先閱讀現行的[瀏覽次數說明](https://help.x.com/en/using-x/view-counts)。該頁面並不表示 `views` 等同每一項匯出指標。如果匯出資料使用另一個定義，請沿用匯出資料的措辭。如果無法讀取匯出資料的定義，請使用 `definition_unknown`。

更新可能有延遲。延遲是指較後的讀數仍未包含近期發生的事件。除非有證據，否則不要將延遲列為原因。猜測並非證據。

### 6. 只有在比較條件容許時，才計算差額。

如果定義及期間已足夠一致，你可以計算顯示數值的差額。使用簡單減法即可。

```text
displayed difference = public value - owned value
observed counter delta = later saved public value - earlier saved public value
```

比較步驟

在結果旁保留精確程度。如果 `postMetricStatus` 並非 exact，就不要稱結果為精確值。如果公開數值經過四捨五入，便可能無法完全吻合。只要其中一個數值缺失，就不要計算差額。

[2 份已儲存的公開資料快照](/zh-Hant/articles/facebook-%E8%B2%BC%E6%96%87%E6%8C%87%E6%A8%99%E9%9A%A8%E6%99%82%E9%96%93%E8%AE%8A%E5%8C%96/)只能顯示這 2 個儲存時間之間的變化。觀測到的計數值變化量就是這個變化。只有你已儲存的時間才有這種資料。不要虛構較早的基準值。基準值是起始讀數。你無法靠猜測起始值來復原缺失月份的資料。

X 修正計數值時，數值可能下降。負數變化可能是真實的。不要將每次下降都視為檔案讀取錯誤。

如果範圍不一致，你仍可將減法結果列作算術運算。請清楚標示這只是算術運算。不要將它標示為原因。

### 7. 將結果分類。

根據你能支持的比較結論，使用 1 個結果類別。

`explained_scope_difference` 表示你能指出已知的範圍差異。這個類別不能解釋數值差額的全部幅度。

`timing_or_precision_limit` 表示時間不同，或精確程度限制了完全吻合的可能性。只有在你能證明這項限制時，才使用這個類別。

`comparable_values` 表示帖文、定義及時間範圍已足夠一致，可以比較這 2 個數字。1 列資料吻合，並不能證明整份報告完整。

`unresolved_difference` 表示你無法提出有證據支持的原因。請將原因保留為未知。

欺詐是指數字被造假。出現差額不能證明欺詐，也不能證明多出的數量來自付費推廣。它不能證明分析工具故障，也不能證明 X 隱藏了帖文。只有在雙方憑證都支持某個原因時，才保留該原因。憑證是你持有的公開資料列或自有報告資料列。如果缺少定義，原因便維持未知。

### 8. 交付按帖文整理的表格及簡短註解。

每列記錄 1 則帖文。列出帖文 ID 及雙方來源。將發佈時間及觀測時間分別放在不同儲存格。列出指標名稱、定義、時段及精確程度。缺失的數值要標示為缺失。列出範圍標籤及結果類別。如果數值差額仍無法解釋，請在註解中說明。

如果你只有公開資料列，請報告這些資料列及上述限制。不要聲稱這些資料代表每月曝光次數、不重複觸及人數、私人互動總數或活動回報。不要將計數值轉成比率。

在註解結尾，以 1 則帖文的 1 項指標作結。該列資料要麼可比較，要麼仍未解決。不要為原因未知的差額自行指定成因。

## 虛構帖文記錄表

以下 5 則帖文均為原創虛構內容。它們並非產品結果，也不是 Actor 傳回的資料列。在這個虛構例子中，沒有取代任何儀表板，也沒有取得任何私人匯出資料。例子沒有提供發佈時間。不要將觀測時間複製到發佈時間的儲存格。不要將瀏覽次數當作不重複人數。

P1 至 P5 都是虛構的帖文 ID。這些帖文均非真實匯出資料。

| 帖文 | 發佈時間 | 公開指標 | 公開數值 | 公開資料觀測時間 | 公開資料定義 | 公開資料時段 | 公開數值精確程度 | 自有報告指標 | 自有報告數值 | 自有報告時間 | 自有報告定義 | 自有報告時段 | 範圍 | 算術運算 | 結果 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| P1 | 未提供 | views | 1,500 | 10 月 13 日 10:00 UTC | 公開瀏覽事件次數 | 累計至觀測時間 | 未列明 | impressions | 1,200 | 未提供 | 所述時段內有記錄說明的曝光次數 | 10 月 1–12 日；未提供時區 | different_metric_scope | 1,500 - 1,200 = 300 | explained_scope_difference 僅適用於範圍；300 的差額仍未完全解釋 |
| P2 | 未提供 | views | 先為 1,000，然後為 1,200 | 10 月 13 日 10:00 UTC 及 10 月 13 日 12:00 UTC | 精確的公開累計瀏覽次數 | 分別累計至每次已儲存讀數的時間 | 精確 | 沒有自有報告資料列 | 沒有自有報告資料列 | 沒有自有報告資料列 | 沒有自有報告資料列 | 沒有自有報告資料列 | 2 個已儲存時間的公開瀏覽次數定義相同 | 1,200 - 1,000 = 200 | 僅限這 2 個已儲存時間之間觀測到的計數值變化量 |
| P3 | 未提供 | views | null，並非 0 | 未提供 | 無法取得公開瀏覽次數 | 無法取得 | 不適用 | 未提供 | 500 | 未提供 | 未提供 | 未提供 | 公開數值缺失，因此未釐清範圍 | 不要計算 | 無法進行公開資料比較；並非有 -500 的差額 |
| P4 | 未提供 | 未提供 | 2,000 | 未提供 | 未提供 | 未提供 | 未知 | 未提供 | 未提供 | 未提供 | 缺少定義 | 未提供 | definition_unknown | 不要計算 | unresolved_difference |
| P5 | 未提供 | 有記錄說明的計數值 | 250 | 與自有報告讀數的時間相同；未提供確切時刻 | 與自有報告一方相同、且有記錄說明的計數值 | 與自有報告一方的時段相同；未提供日期 | 除數值 250 外，未進一步說明 | 有記錄說明的計數值 | 250 | 與公開讀數的時間相同；未提供確切時刻 | 相同且有記錄說明的計數範圍 | 與公開資料一方的時段相同；未提供日期 | same_metric_scope | 250 - 250 = 0 | comparable_values 僅適用於這個計數值 |

P1 及 P2 使用 UTC，即協調世界時。它不會隨當地夏令時間調整。

P1 存在已知的範圍差異。公開資料儲存格是於 10 月 13 日 10:00 UTC 讀取的累計瀏覽次數。自有報告儲存格則是 10 月 1–12 日的曝光次數。瀏覽次數與指定時段的曝光次數並非同一項指標。累計至 10 月 13 日的總數，與截至 10 月 12 日的時段也並非同一期間。因此，範圍標籤是 `different_metric_scope`。結果類別 `explained_scope_difference` 只涵蓋這項範圍事實。

減法 1,500 - 1,200 = 300 只是算術運算。它並非經核實缺失了 300 次曝光，也不能證明收集資料時出錯。單憑這 2 份憑證，你無法拆解這 300 的組成。你不知道有多少次瀏覽發生在 10 月 13 日，不知道有多少次屬於重複瀏覽或作者自己的瀏覽，也不知道曝光計算規則的差異如何影響這 300。請將這部分保留為未解釋。

P2 有 2 次精確的公開累計瀏覽次數讀數。在 10 月 13 日 10:00 UTC，計數值顯示 1,000。在 10 月 13 日 12:00 UTC，計數值顯示 1,200。觀測到的計數值變化量為 1,200 - 1,000 = 200。這是 2 個已儲存時間之間顯示的變化。它並非 200 名不重複的人，也不是復原的每月報告。在這個虛構例子中，P2 沒有自有報告資料列。不要虛構 10:00 之前的起始值。不要描述這 2 個時刻之間的變化過程。你沒有儲存中間的讀數。

P3 的公開瀏覽次數為 null，報告數值為 500。null 表示無法取得公開瀏覽計數值，並不表示瀏覽次數為零。由於公開數值缺失，因此不要做減法。500 - 0 是錯誤算式。0 - 500 也同樣錯誤。這裏並不存在 -500 的差額。報告數值應留在報告一方。它並非公開瀏覽總數。這個結果表示無法進行公開資料比較，並非已完成判定的不符類別。

P4 顯示公開數值為 2,000，但精確程度未知。報告沒有定義。指標名稱、時間及時段均未提供。範圍標籤是 `definition_unknown`。你無法提出有證據支持的原因。結果是 `unresolved_difference`。不要猜測是四捨五入、更新延遲，或另一個指標名稱。

P5 雙方使用相同且有記錄說明的計數值、相同範圍及相同時間。兩個數值均為 250。顯示數值的差額為 250 - 250 = 0。範圍標籤是 `same_metric_scope`。結果是 `comparable_values`。這個結果只涵蓋這 1 個計數值。它不能證明報告中的每則帖文都已檢查，也不能證明 P5 的所有其他指標都吻合，更不能證明報告完整。

## 下一步

為 1 則你已知的帖文釐清 1 項指標的比較範圍。使用相同的帖文 ID、定義及時間範圍。如果差額無法解釋，請保留為未解決。使用 [X Post Metrics Actor](https://apify.com/chronometrica/x-post-metrics) 收集公開資料一方的數據。從 [X Post Analytics Snapshot Task](https://apify.com/chronometrica/x-post-metrics/examples/x-post-analytics-snapshot) 開始。將範例網址替換為 1 個已知的公開帖文網址。

## 來源與延伸閱讀

- [X Post Metrics Actor](https://apify.com/chronometrica/x-post-metrics)
- [X Post Analytics Snapshot Task](https://apify.com/chronometrica/x-post-metrics/examples/x-post-analytics-snapshot)
- [瀏覽次數](https://help.x.com/en/using-x/view-counts)
- [Twitter 分析工具的替代方案](https://www.reddit.com/r/Twitter/comments/1e5a688/alternatives_for_twitter_analytics/)
- [X（Twitter）分析](https://www.reddit.com/r/Twitter/comments/1abvw05/x_twitter_analytics/)