Pagespeedapi: runpagespeed

對指定網址的網頁執行 PageSpeed 分析,並傳回 PageSpeed 分數、可加快網頁載入速度的建議清單,以及其他資訊。立即試用

要求

HTTP 要求

GET https://www.googleapis.com/pagespeedonline/v4/runPagespeed

參數

參數名稱 說明
必要的查詢參數
url string 用於擷取及分析的網址
自選查詢參數
filter_third_party_resources boolean 指出是否要在 PageSpeed 分析前過濾掉第三方資源。 (預設值:false)
locale string 用於將格式化結果本地化的語言代碼
rule string 要執行的 PageSpeed 規則;如果沒有,系統會執行所有規則
screenshot boolean 表示是否應包含包含螢幕截圖的二進位資料 (預設值:false)
snapshots boolean 表示是否應包含包含快照映像檔的二進位資料 (預設值:false)
strategy string 要使用的分析策略 (電腦或行動裝置) 為預設值

可接受的值如下:
  • desktop」:擷取並分析電腦版瀏覽器的網址
  • mobile」:擷取並分析行動裝置網址
utm_campaign string 用於數據分析的廣告活動名稱。
utm_source string 數據分析的廣告活動來源。

要求主體

請勿使用這個方法提供要求主體。

回應

如果成功的話,這個方法會傳回回應內文,其結構如下:

{
  "captchaResult": string,
  "kind": "pagespeedonline#result",
  "id": string,
  "responseCode": integer,
  "title": string,
  "ruleGroups": {
    (key): {
      "score": integer,
      "pass": boolean
    }
  },
  "loadingExperience": {
    "id": string,
    "metrics": {
      (key): {
        "median": integer,
        "distributions": [
          {
            "min": integer,
            "max": integer,
            "proportion": double
          }
        ],
        "category": string
      }
    },
    "overall_category": string,
    "initial_url": string
  },
  "pageStats": {
    "numberResources": integer,
    "numberHosts": integer,
    "totalRequestBytes": long,
    "numberStaticResources": integer,
    "htmlResponseBytes": long,
    "textResponseBytes": long,
    "overTheWireResponseBytes": long,
    "cssResponseBytes": long,
    "imageResponseBytes": long,
    "javascriptResponseBytes": long,
    "flashResponseBytes": long,
    "otherResponseBytes": long,
    "numberJsResources": integer,
    "numberCssResources": integer,
    "numberRobotedResources": integer,
    "numberTransientFetchFailureResources": integer,
    "numTotalRoundTrips": integer,
    "numRenderBlockingRoundTrips": integer,
    "robotedUrls": [
      string
    ],
    "transientFetchFailureUrls": [
      string
    ],
    "cms": string
  },
  "formattedResults": {
    "locale": string,
    "ruleResults": {
      (key): {
        "localizedRuleName": string,
        "ruleImpact": double,
        "beta": boolean,
        "groups": [
          string
        ],
        "summary": {
          "format": string,
          "args": [
            {
              "type": string,
              "key": string,
              "value": string,
              "rects": [
                {
                  "left": integer,
                  "top": integer,
                  "width": integer,
                  "height": integer
                }
              ],
              "secondary_rects": [
                {
                  "left": integer,
                  "top": integer,
                  "width": integer,
                  "height": integer
                }
              ]
            }
          ]
        },
        "urlBlocks": [
          {
            "header": {
              "format": string,
              "args": [
                {
                  "type": string,
                  "key": string,
                  "value": string,
                  "rects": [
                    {
                      "left": integer,
                      "top": integer,
                      "width": integer,
                      "height": integer
                    }
                  ],
                  "secondary_rects": [
                    {
                      "left": integer,
                      "top": integer,
                      "width": integer,
                      "height": integer
                    }
                  ]
                }
              ]
            },
            "urls": [
              {
                "result": {
                  "format": string,
                  "args": [
                    {
                      "type": string,
                      "key": string,
                      "value": string,
                      "rects": [
                        {
                          "left": integer,
                          "top": integer,
                          "width": integer,
                          "height": integer
                        }
                      ],
                      "secondary_rects": [
                        {
                          "left": integer,
                          "top": integer,
                          "width": integer,
                          "height": integer
                        }
                      ]
                    }
                  ]
                },
                "details": [
                  {
                    "format": string,
                    "args": [
                      {
                        "type": string,
                        "key": string,
                        "value": string,
                        "rects": [
                          {
                            "left": integer,
                            "top": integer,
                            "width": integer,
                            "height": integer
                          }
                        ],
                        "secondary_rects": [
                          {
                            "left": integer,
                            "top": integer,
                            "width": integer,
                            "height": integer
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  },
  "version": {
    "major": integer,
    "minor": integer
  },
  "invalidRules": [
    string
  ],
  "screenshot": {
    "key": string,
    "mime_type": string,
    "data": bytes,
    "width": integer,
    "height": integer,
    "page_rect": {
      "left": integer,
      "top": integer,
      "width": integer,
      "height": integer
    }
  },
  "snapshots": [
    {
      "key": string,
      "mime_type": string,
      "data": bytes,
      "width": integer,
      "height": integer,
      "page_rect": {
        "left": integer,
        "top": integer,
        "width": integer,
        "height": integer
      }
    }
  ]
}
屬性名稱 說明 附註
captchaResult string 人機驗證 (Captcha) 結果

可接受的值如下:
  • "CAPTCHA_BLOCKING"
  • "CAPTCHA_MATCHED"
  • "CAPTCHA_NEEDED"
  • "CAPTCHA_NOT_NEEDED"
  • "CAPTCHA_UNMATCHED"
kind string 結果種類。
id string 文件的標準和最終到達網址,此網址會重新導向到後續網頁重新導向 (如果有的話)。
responseCode integer 文件的回應代碼。200 表示網頁正常載入。4xx/5xx 表示錯誤。
title string 網頁的標題,如瀏覽器的標題列中顯示。
ruleGroups object 對應結果中每個規則群組都有一個項目的對應。
ruleGroups.(key) object 這個規則群組的名稱:「SPEED」、「USABILITY」或「安全性」。
ruleGroups.(key).score integer 這個規則群組的分數 (0-100),表示該類別的網頁可能提升的程度 (例如速度快了,或是可用性的高,或者安全性高)。分數高表示改善空間不足,分數越低則表示仍有改善空間。
ruleGroups.(key).pass boolean
loadingExperience object 使用者網頁載入體驗的指標。
loadingExperience.id string 指標所在的網址、模式或來源。
loadingExperience.metrics object
loadingExperience.metrics.(key) object 指標的類型。
loadingExperience.metrics.(key).median integer
loadingExperience.metrics.(key).distributions[] list
loadingExperience.metrics.(key).distributions[].min integer
loadingExperience.metrics.(key).distributions[].max integer
loadingExperience.metrics.(key).distributions[].proportion double
pageStats object 網頁的摘要統計資料,例如 JavaScript 位元組數、HTML 位元組數等。
pageStats.numberResources integer 網頁載入的 HTTP 資源數量。
pageStats.numberHosts integer 網頁參照的不重複主機數量。
pageStats.totalRequestBytes long 網頁傳送的所有要求位元組總大小。
pageStats.numberStaticResources integer 網頁上的靜態 (即可快取) 資源數量。
pageStats.htmlResponseBytes long 網頁上主要 HTML 文件和所有 iframe 的未壓縮回應位元組數。
pageStats.textResponseBytes long 網頁上其他統計資料 (即非 HTML、非指令碼、非 CSS 資源) 不在網頁中的文字資源未壓縮回應位元組數。
pageStats.overTheWireResponseBytes long 無線位元組數,系統會使用預設的 gzip 壓縮策略估算費用。
pageStats.cssResponseBytes long 網頁上 CSS 資源的未壓縮回應位元組數。
pageStats.imageResponseBytes long 網頁上圖片資源的回應位元組數。
pageStats.javascriptResponseBytes long 網頁上 JS 資源的未壓縮回應位元組數。
pageStats.flashResponseBytes long 網頁上 Flash 資源的回應位元組數。
pageStats.otherResponseBytes long 網頁上其他資源的回應位元組數。
pageStats.numberJsResources integer 網頁參照的 JavaScript 資源數量。
pageStats.numberCssResources integer 網頁參照的 CSS 資源數量。
pageStats.numberRobotedResources integer 漫遊器的資源數量。
pageStats.numberTransientFetchFailureResources integer 暫時失敗的資源數量。
pageStats.numTotalRoundTrips integer 載入完整頁面所需的來回行程
pageStats.numRenderBlockingRoundTrips integer 載入轉譯禁止資源所需的來回行程
pageStats.robotedUrls[] list 漫遊器的網址清單。
pageStats.transientFetchFailureUrls[] list 暫時擷取失敗網址清單。
pageStats.cms string 網頁使用的內容管理系統 (CMS)。

可接受的值為:
  • "BITRIX"
  • "BLOGGER"
  • "DATALIFE_ENGINE"
  • "DRUPAL"
  • "GOOGLE_SITES"
  • "JOOMLA"
  • "MAGENTO"
  • "PRESTASHOP"
  • "TUMBLR"
  • "UNKNOWN"
  • "VBULLETIN"
  • "WORDPRESS"
formattedResults object PageSpeed 的本地化結果。包含由伺服器例項化及執行的每項 PageSpeed 規則規則結果項目。
formattedResults.locale string formatResults 的語言代碼,例如「en_US」。
formattedResults.ruleResults object 格式化規則結果的字典,每個 PageSpeed 規則會有一個項目,然後由伺服器執行。
formattedResults.ruleResults.(key) object 這項規則的列舉類 ID。例如「EnableKeepAlive」或「AvoidCssImport」。未本地化。
formattedResults.ruleResults.(key).localizedRuleName string 規則的本地化名稱,目的是向使用者顯示。
formattedResults.ruleResults.(key).ruleImpact double 導入這項規則的建議之後,將對加快網頁載入速度造成什麼影響 (不設限的浮點值)。您可以比較各項規則的影響,藉此判斷哪項規則的建議動作對於加快網頁速度有何影響。舉例來說,若啟用壓縮功能可節省 1 MB,而最佳化圖片可省下 500 KB,啟用壓縮規則的效果就會是圖片最佳化規則的 2 倍,其他情況則相等。
formattedResults.ruleResults.(key).beta boolean 這項規則是否處於「Beta 版」階段。Beta 版規則是正在測試的新規則,不會影響整體分數。
formattedResults.ruleResults.(key).groups[] list 這項規則所屬的規則群組清單。清單中的每個項目都是「SPEED」、「USABILITY」或「安全性」。
formattedResults.ruleResults.(key).summary nested object 關於規則的簡要說明,用來概略說明應遵循規則應採取的行動,以及這麼做有什麼好處。
formattedResults.ruleResults.(key).summary.format string 含有 預留位置的本地化格式字串,其中「FOO」是引數值應替換的引數。如果是 HYPERLINK 引數,格式字串會改為包含 和 ,做為索引鍵為「FOO」的引數。
formattedResults.ruleResults.(key).summary.args[] list 格式字串的引數清單。
formattedResults.ruleResults.(key).summary.args[].type string 引數類型。網址、STRING_LITERAL、INT_LITERAL、BYTES、DURATION、VERBATIM_STRING、PERCENTAGE、HYPERLINK 或 SNAPSHOT_RECT 其中之一。

可接受的值為:
  • "BYTES"
  • "DISTANCE"
  • "DURATION"
  • "HYPERLINK"
  • "INT_LITERAL"
  • "PERCENTAGE"
  • "SNAPSHOT_RECT"
  • "STRING_LITERAL"
  • "URL"
  • "VERBATIM_STRING"
formattedResults.ruleResults.(key).summary.args[].key string 這個引數的預留位置鍵,為字串。
formattedResults.ruleResults.(key).summary.args[].value string 引數值,以本地化字串表示。
formattedResults.ruleResults.(key).summary.args[].rects[] list 所指的螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。如果 SNAPSHOT_RECT 引數沒有這個引數,表示該引數參照了整個快照。
formattedResults.ruleResults.(key).summary.args[].rects[].left integer
formattedResults.ruleResults.(key).summary.args[].rects[].top integer
formattedResults.ruleResults.(key).summary.args[].rects[].width integer
formattedResults.ruleResults.(key).summary.args[].rects[].height integer
formattedResults.ruleResults.(key).summary.args[].secondary_rects[] list 這是指次要螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。
formattedResults.ruleResults.(key).summary.args[].secondary_rects[].left integer
formattedResults.ruleResults.(key).summary.args[].secondary_rects[].top integer
formattedResults.ruleResults.(key).summary.args[].secondary_rects[].width integer
formattedResults.ruleResults.(key).summary.args[].secondary_rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[] list 網址區塊清單。每個區塊都包含一個標題和網址清單。每個網址都可以視需要加入其他詳細資料。
formattedResults.ruleResults.(key).urlBlocks[].header nested object 列出網址清單的標題。
formattedResults.ruleResults.(key).urlBlocks[].header.format string 含有 預留位置的本地化格式字串,其中「FOO」是引數值應替換的引數。如果是 HYPERLINK 引數,格式字串會改為包含 和 ,做為索引鍵為「FOO」的引數。
formattedResults.ruleResults.(key).urlBlocks[].header.args[] list 格式字串的引數清單。
formattedResults.ruleResults.(key).urlBlocks[].header.args[].type string 引數類型。網址、STRING_LITERAL、INT_LITERAL、BYTES、DURATION、VERBATIM_STRING、PERCENTAGE、HYPERLINK 或 SNAPSHOT_RECT 其中之一。

可接受的值為:
  • "BYTES"
  • "DISTANCE"
  • "DURATION"
  • "HYPERLINK"
  • "INT_LITERAL"
  • "PERCENTAGE"
  • "SNAPSHOT_RECT"
  • "STRING_LITERAL"
  • "URL"
  • "VERBATIM_STRING"
formattedResults.ruleResults.(key).urlBlocks[].header.args[].key string 這個引數的預留位置鍵,為字串。
formattedResults.ruleResults.(key).urlBlocks[].header.args[].value string 引數值,以本地化字串表示。
formattedResults.ruleResults.(key).urlBlocks[].header.args[].rects[] list 所指的螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。如果 SNAPSHOT_RECT 引數沒有這個引數,表示該引數參照了整個快照。
formattedResults.ruleResults.(key).urlBlocks[].header.args[].rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].secondary_rects[] list 這是指次要螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。
formattedResults.ruleResults.(key).urlBlocks[].header.args[].secondary_rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].secondary_rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].secondary_rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].header.args[].secondary_rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[].urls[] list 列出網址區塊網址相關資訊的項目清單。選用。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result nested object 格式字串,提供網址相關資訊,以及該格式字串的引數清單。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.format string 含有 預留位置的本地化格式字串,其中「FOO」是引數值應替換的引數。如果是 HYPERLINK 引數,格式字串會改為包含 和 ,做為索引鍵為「FOO」的引數。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[] list 格式字串的引數清單。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].type string 引數類型。網址、STRING_LITERAL、INT_LITERAL、BYTES、DURATION、VERBATIM_STRING、PERCENTAGE、HYPERLINK 或 SNAPSHOT_RECT 其中之一。

可接受的值為:
  • "BYTES"
  • "DISTANCE"
  • "DURATION"
  • "HYPERLINK"
  • "INT_LITERAL"
  • "PERCENTAGE"
  • "SNAPSHOT_RECT"
  • "STRING_LITERAL"
  • "URL"
  • "VERBATIM_STRING"
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].key string 這個引數的預留位置鍵,為字串。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].value string 引數值,以本地化字串表示。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].rects[] list 所指的螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。如果 SNAPSHOT_RECT 引數沒有這個引數,表示該引數參照了整個快照。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].secondary_rects[] list 這是指次要螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].secondary_rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].secondary_rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].secondary_rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].result.args[].secondary_rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[] list 項目清單,提供單一網址的其他詳細資料。選用。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].format string 含有 預留位置的本地化格式字串,其中「FOO」是引數值應替換的引數。如果是 HYPERLINK 引數,格式字串會改為包含 和 ,做為索引鍵為「FOO」的引數。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[] list 格式字串的引數清單。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].type string 引數類型。網址、STRING_LITERAL、INT_LITERAL、BYTES、DURATION、VERBATIM_STRING、PERCENTAGE、HYPERLINK 或 SNAPSHOT_RECT 其中之一。

可接受的值為:
  • "BYTES"
  • "DISTANCE"
  • "DURATION"
  • "HYPERLINK"
  • "INT_LITERAL"
  • "PERCENTAGE"
  • "SNAPSHOT_RECT"
  • "STRING_LITERAL"
  • "URL"
  • "VERBATIM_STRING"
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].key string 這個引數的預留位置鍵,為字串。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].value string 引數值,以本地化字串表示。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].rects[] list 所指的螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。如果 SNAPSHOT_RECT 引數沒有這個引數,表示該引數參照了整個快照。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].rects[].height integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].secondary_rects[] list 這是指次要螢幕矩形,尺寸以 CSS 像素為單位。這只會用於 SNAPSHOT_RECT 引數。
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].secondary_rects[].left integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].secondary_rects[].top integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].secondary_rects[].width integer
formattedResults.ruleResults.(key).urlBlocks[].urls[].details[].args[].secondary_rects[].height integer
version object 用來產生這些結果的 PageSpeed 版本。
version.major integer 產生這些結果時所用的 PageSpeed 主要版本號碼。
version.minor integer 用來產生這些結果的 PageSpeed 子版本編號。
invalidRules[] list 要求中指定的規則清單,但伺服器不知道如何執行個體化。
screenshot nested object 所分析網頁的 Base64 編碼螢幕截圖。
screenshot.key string 不重複的字串鍵 (如有),用於識別這張圖片。
screenshot.mime_type string MIME 類型的圖片資料 (例如「image/jpeg」)。
screenshot.data bytes 圖片資料採用 Base64 編碼。
screenshot.width integer 螢幕截圖的寬度 (以像素為單位)。
screenshot.height integer 螢幕截圖的高度 (以像素為單位)。
screenshot.page_rect object
screenshot.page_rect.left integer
screenshot.page_rect.top integer
screenshot.page_rect.width integer
screenshot.page_rect.height integer
snapshots[] list 網頁的其他 Base64 編碼螢幕截圖,各種部分轉譯狀態。
snapshots[].key string 不重複的字串鍵 (如有),用於識別這張圖片。
snapshots[].mime_type string MIME 類型的圖片資料 (例如「image/jpeg」)。
snapshots[].data bytes 圖片資料採用 Base64 編碼。
snapshots[].width integer 螢幕截圖的寬度 (以像素為單位)。
snapshots[].height integer 螢幕截圖的高度 (以像素為單位)。
snapshots[].page_rect object
snapshots[].page_rect.left integer
snapshots[].page_rect.top integer
snapshots[].page_rect.width integer
snapshots[].page_rect.height integer
loadingExperience.metrics.(key).category string

可接受的值為:
  • "AVERAGE"
  • "FAST"
  • "NONE"
  • "SLOW"
loadingExperience.overall_category string

可接受的值為:
  • "AVERAGE"
  • "FAST"
  • "NONE"
  • "SLOW"
loadingExperience.initial_url string

試試看!

您可以使用下方的 APIs Explorer,針對即時資料呼叫這個方法,然後查看回應。