這個 REST API 可用來取得每支 Shorts 的數據分析資料。Dynamic Links 在控制台或程式輔助建立中。
API 授權
向 Dynamic Link Analytics API 提出要求時,您必須加入 OAuth 用於授權存取 Firebase 專案的 2.0 存取權杖。
您可以透過 Google API 用戶端程式庫取得存取權杖:
- 將 Firebase 新增至應用程式: 。也就是說,請建立服務帳戶 以及產生私密金鑰
- 使用 Google API 用戶端程式庫從您的服務取得存取權杖
帳戶憑證:
Java
使用 適用於 Java 的 Google API 用戶端程式庫:
// Load the service account key JSON file FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); // Authenticate a Google credential with the service account GoogleCredential googleCred = GoogleCredential.fromStream(serviceAccount); // Add the required scope to the Google credential GoogleCredential scoped = googleCred.createScoped( Arrays.asList( "https://www.googleapis.com/auth/firebase" ) ); // Use the Google credential to generate an access token scoped.refreshToken(); String token = scoped.getAccessToken(); // Include the access token in the Authorization header.
Node.js
使用 Node.js 適用的 Google API 用戶端程式庫:
var { google } = require("googleapis"); // Load the service account key JSON file. var serviceAccount = require("path/to/serviceAccountKey.json"); // Specify the required scope. var scopes = [ "https://www.googleapis.com/auth/firebase" ]; // Authenticate a JWT client with the service account. var jwtClient = new google.auth.JWT( serviceAccount.client_email, null, serviceAccount.private_key, scopes ); // Use the JWT client to generate an access token. jwtClient.authorize(function(error, tokens) { if (error) { console.log("Error making request to generate access token:", error); } else if (tokens.access_token === null) { console.log("Provided service account does not have permission to generate access tokens"); } else { var accessToken = tokens.access_token; // Include the access token in the Authorization header. } });
Python
使用 Python 專用的 Google Auth 程式庫:
from google.oauth2 import service_account from google.auth.transport.requests import AuthorizedSession # Specify the required scope scopes = [ "https://www.googleapis.com/auth/firebase" ] # Authenticate a credential with the service account credentials = service_account.Credentials.from_service_account_file( "path/to/serviceAccountKey.json", scopes=scopes) # Use the credentials object to authenticate a Requests session. authed_session = AuthorizedSession(credentials) response = authed_session.get( "https://firebasedynamiclinks.googleapis.com/v1/SHORT_DYNAMIC_LINK/linkStats?durationDays=DURATION") # Or, use the token directly, as described below. request = google.auth.transport.requests.Request() credentials.refresh(request) access_token = credentials.token
取得單一Dynamic Link的統計資料
使用 linkStats
端點,取得單一 Dynamic Link 的事件統計資料。
HTTP 要求
linkStats
要求採用以下格式:
GET https://firebasedynamiclinks.googleapis.com/v1/SHORT_DYNAMIC_LINK/linkStats?durationDays=DURATION Authorization: Bearer ACCESS_TOKEN
例如,若要擷取短連結過去 7 天的統計資料
https://example.page.link/wXYz
:
GET https://firebasedynamiclinks.googleapis.com/v1/https%3A%2F%2Fexample.page.link%2FwXYz/linkStats?durationDays=7 Authorization: Bearer ya29.Abc123...
參數 | |
---|---|
SHORT_DYNAMIC_LINK | 網址編碼簡短 Dynamic Link,這是您要取得事件資料的簡短版。 |
DURATION | 要取得事件資料的天數。舉例來說,如果您在
指定 30 ,要求會擷取過去 30 天的資料。
請注意,系統可能不會納入過去 36 小時內記錄的某些事件。
|
ACCESS_TOKEN | 存取權杖有過期的。詳情請參閱 API 授權。 |
回應主體
要求的回應是 JSON 物件,如下所示:
{
"linkEventStats": [
{
"platform": "ANDROID",
"count": "123",
"event": "CLICK"
},
{
"platform": "IOS",
"count": "123",
"event": "CLICK"
},
{
"platform": "DESKTOP",
"count": "456",
"event": "CLICK"
},
{
"platform": "ANDROID",
"count": "99",
"event": "APP_INSTALL"
},
{
"platform": "ANDROID",
"count": "42",
"event": "APP_FIRST_OPEN"
},
...
]
}
linkEventStats
清單中的每個項目都包含特定平台的
部分 Dynamic Link 相關事件 (例如 Android 上的點擊次數)。請注意,
這些統計資料可能未包含系統在過去 1 天內記錄的事件
36 小時。
活動 | 說明 | Firebase 個控制台 | REST API |
---|---|---|---|
順勢按下 | 動態連結獲得的任何點擊次數 (不論其處理方式和到達網頁為何) | ||
重新導向 | 嘗試將使用者重新導向至 App Store 或 Play 商店等到達網頁的次數,或是重新導向至其他目的地的次數 | ||
應用程式安裝 | 實際安裝次數 (僅適用於 Play 商店) | ||
APP_FIRST_OPEN | 安裝後的初次開啟次數 | ||
應用程式_RE_開啟 | 動態連結導致應用程式重新開啟的次數 |