واجهة برمجة تطبيقات إحصاءات روابط Firebase الديناميكية

يمكنك استخدام واجهة برمجة التطبيقات REST هذه للحصول على بيانات إحصاءات لكلّ فيديو قصير من فيديوهات Dynamic Links، سواء تم إنشاؤها في وحدة التحكّم أو آليًا

تفويض واجهة برمجة التطبيقات

عند إرسال طلبات إلى واجهات برمجة تطبيقات "إحصاءات Google" Dynamic Link، يجب تضمين بروتوكول OAuth. رمز وصول 2.0 يسمح بالوصول إلى مشروع Firebase.

يمكنك الحصول على رموز الدخول باستخدام مكتبة برامج واجهة Google API:

  1. إضافة Firebase إلى تطبيقك بصفة الموضحة في دليل إعداد SDK للمشرف. أي يجب إنشاء حساب خدمة. وإنشاء مفتاح خاص.
  2. استخدام مكتبة برامج واجهة Google API للحصول على رمز الدخول من خدمتك بيانات اعتماد الحساب:

    جافا

    استخدام مكتبة برامج Google API للغة Java:

    // 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

    استخدام مكتبة برامج Google API لنظام Node.js:

    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

    استخدام مكتبة Google Auth للغة Python:

    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 صفحة بترميز عنوان URL المختصر Dynamic Link الذي تريد الحصول على بيانات أحداث له.
DURATION عدد الأيام التي يجب الحصول على بيانات الأحداث لها. على سبيل المثال، إذا تحديد 30، يسترد الطلب بيانات آخر 30 يومًا. تجدر الإشارة إلى أنّه قد لا يتمّ تضمين بعض الأحداث التي تمّ تسجيلها في آخر 36 ساعة.
ACCESS_TOKEN رمز دخول غير منتهي الصلاحية. راجِع واجهة برمجة التطبيقات. التفويض.

نص الاستجابة

تكون الاستجابة للطلب هي كائن 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
نقرة عدد أي نقرات على الرابط الديناميكي، بغض النظر عن كيفية معالجتها ووجهاتها
إعادة التوجيه عدد محاولات إعادة توجيه المستخدمين، إما إلى App Store أو "متجر Play" لتثبيت التطبيق أو تحديثه أو إلى وجهة أخرى
APP_INSTALL عدد عمليات التثبيت الفعلية (متوافق مع "متجر Play" فقط)
APP_FIRST_OPEN عدد عمليات الفتح لأول مرة بعد التثبيت
APP_RE_OPEN عدد المرّات التي تسبب فيها الرابط الديناميكي في إعادة فتح تطبيق