Firebase Dynamic Links Analytics API

您可以使用此 REST API 获取每个短 Dynamic Links、 无论是在控制台中创建,还是以编程方式创建

API 授权

当您向 Dynamic Link Analytics API 发出请求时,必须包含 OAuth 2.0 访问令牌,用于授予对 Firebase 项目的访问权限。

您可以使用 Google API 客户端库获取访问令牌:

  1. 将 Firebase 添加到您的应用,如下所示: 请参阅 Admin SDK 设置指南。也就是说,创建一个服务账号 并生成私钥。
  2. 使用 Google API 客户端库从您的服务获取访问令牌 账号凭据:

    Java

    使用 <ph type="x-smartling-placeholder"></ph> 适用于 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

    使用 <ph type="x-smartling-placeholder"></ph> 适用于 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 上的点击次数)。请注意, 这些统计信息可能不包含最近 36 小时。

事件 说明 Firebase控制台 REST API
CLICK(点击) 动态链接的点击次数,不论点击后的处理方式和目标位置
REDIRECT(重定向) 尝试重定向用户的次数,无论是重定向到 App Store 或 Play 商店以安装或更新应用,还是重定向到其他目标位置
APP_INSTALL(应用安装) 实际安装次数(仅包含通过 Play 商店安装的次数)
APP_FIRST_OPEN(应用首次打开) 应用安装后首次打开的次数
APP_RE_OPEN(应用重新打开) 动态链接导致应用被重新打开的次数