במדריך הזה מפורטים השלבים הנדרשים כדי לגשת לחשבון Google Analytics, ליצור שאילתות בממשקי API של Analytics, לטפל בתשובות ל-API ולפלט את התוצאות. במדריך הזה נעשה שימוש ב-Core Reporting API v3.0, ב-Management API v3.0 וב-OAuth2.0.
שלב 1: מפעילים את Analytics API
כדי להתחיל להשתמש ב-Google Analytics API, צריך קודם להשתמש בכלי ההגדרה, שכולל הנחיות ליצירת פרויקט ב-Google API Console, להפעלת ה-API וליצירת פרטי כניסה.
יצירת מזהה לקוח
- פותחים את דף חשבונות השירות. אם תתבקשו, עליכם לבחור פרויקט.
- לוחצים על יצירת חשבון שירות, מזינים שם ותיאור לחשבון השירות. אפשר להשתמש במספר ברירת המחדל של חשבון השירות, או לבחור מספר ייחודי וייחודי. כשמסיימים, לוחצים על יצירה.
- הקטע הרשאות חשבון שירות (אופציונלי) שבהמשך לא נדרש. לוחצים על המשך.
- במסך הענקת גישה למשתמשים בחשבון השירות הזה, גוללים למטה לקטע יצירת מפתח. לוחצים על יצירת מפתח.
- בחלונית הצדדית שמופיעה, בוחרים את הפורמט של המפתח: מומלץ להשתמש בקובץ JSON.
- לוחצים על Create. זוג המפתחות הציבורי/הפרטי החדש נוצר ומוריד למחשב שלך. הוא משמש כעותק היחיד של המפתח הזה. מידע נוסף על אחסון מאובטח לניהול מפתחות בחשבון שירות.
- לוחצים על סגירה בתיבת הדו-שיח מפתח פרטי שנשמר במחשב, ואז לוחצים על סיום כדי לחזור לטבלה של חשבונות השירות.
הוספה של חשבון שירות לחשבון Google Analytics
לחשבון השירות החדש תהיה כתובת אימייל,
<projectId>-<uniqueId>@developer.gserviceaccount.com
;
יש להשתמש בכתובת האימייל הזו
כדי להוסיף
משתמש לחשבון Google Analytics שאליו רוצים לגשת דרך ה-API.
למדריך הזה בלבד נדרשות
קריאת
& ניתוח.
שלב 2: מתקינים את ספריית הלקוחות של Google
כדי להתקין את לקוח ה-Java API של Google Analytics API, יש להוריד קובץ ZIP שמכיל את כל הצנצנות שצריך לחלץ ולהעתיק אל class class של Java.
- מורידים את ספריית הלקוחות של Google Analytics Java, שמקובצת כקובץ ZIP עם כל יחסי התלות הנדרשים.
- חילוץ קובץ ה-ZIP
- הוספה של כל קובצי ה-JAR בספרייה
libs
לנתיב הכיתה. - מוסיפים את הצנצנת
google-api-services-analytics-v3-[version].jar
לנתיב הכיתה.
שלב 3: הגדרת הדוגמה
צריך ליצור קובץ יחיד בשם HelloAnalytics.java
, שיכיל את קוד הדוגמה הנתון.
- מעתיקים או
מורידים את קוד המקור הבא אל
HelloAnalytics.java
. - מעבירים את
client_secrets.JSON
שהורדתם בעבר באותה ספרייה שבה נמצא הקוד לדוגמה. - יש להחליף את הערכים של
KEY_FILE_LOCATION
בערכים המתאימים מ-Play Console.
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.analytics.Analytics; import com.google.api.services.analytics.AnalyticsScopes; import com.google.api.services.analytics.model.Accounts; import com.google.api.services.analytics.model.GaData; import com.google.api.services.analytics.model.Profiles; import com.google.api.services.analytics.model.Webproperties; import java.io.FileInputStream; import java.io.IOException; import java.security.GeneralSecurityException; import java.io.IOException; /** * A simple example of how to access the Google Analytics API using a service * account. */ public class HelloAnalytics { private static final String APPLICATION_NAME = "Hello Analytics"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); private static final String KEY_FILE_LOCATION = "<REPLACE_WITH_JSON_FILE>"; public static void main(String[] args) { try { Analytics analytics = initializeAnalytics(); String profile = getFirstProfileId(analytics); System.out.println("First Profile Id: "+ profile); printResults(getResults(analytics, profile)); } catch (Exception e) { e.printStackTrace(); } } /** * Initializes an Analytics service object. * * @return An authorized Analytics service object. * @throws IOException * @throws GeneralSecurityException */ private static AnalyticsReporting initializeAnalytic() throws GeneralSecurityException, IOException { HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = GoogleCredential .fromStream(new FileInputStream(KEY_FILE_LOCATION)) .createScoped(AnalyticsScopes.all()); // Construct the Analytics service object. return new Analytics.Builder(httpTransport, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); } private static String getFirstProfileId(Analytics analytics) throws IOException { // Get the first view (profile) ID for the authorized user. String profileId = null; // Query for the list of all accounts associated with the service account. Accounts accounts = analytics.management().accounts().list().execute(); if (accounts.getItems().isEmpty()) { System.err.println("No accounts found"); } else { String firstAccountId = accounts.getItems().get(0).getId(); // Query for the list of properties associated with the first account. Webproperties properties = analytics.management().webproperties() .list(firstAccountId).execute(); if (properties.getItems().isEmpty()) { System.err.println("No Webproperties found"); } else { String firstWebpropertyId = properties.getItems().get(0).getId(); // Query for the list views (profiles) associated with the property. Profiles profiles = analytics.management().profiles() .list(firstAccountId, firstWebpropertyId).execute(); if (profiles.getItems().isEmpty()) { System.err.println("No views (profiles) found"); } else { // Return the first (view) profile associated with the property. profileId = profiles.getItems().get(0).getId(); } } } return profileId; } private static GaData getResults(Analytics analytics, String profileId) throws IOException { // Query the Core Reporting API for the number of sessions // in the past seven days. return analytics.data().ga() .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions") .execute(); } private static void printResults(GaData results) { // Parse the response from the Core Reporting API for // the profile name and number of sessions. if (results != null && !results.getRows().isEmpty()) { System.out.println("View (Profile) Name: " + results.getProfileInfo().getProfileName()); System.out.println("Total Sessions: " + results.getRows().get(0).get(0)); } else { System.out.println("No results found"); } } }
שלב 4: הרצת הדגימה
לאחר הפעלת ה-API של Analytics, התקנת ספריית הלקוחות של Google APIs ב-Java, והגדרת קוד המקור לדוגמה עבור הדגימה.
אם נעשה שימוש ב-IDE, יש לוודא שהוגדר יעד ברירת מחדל למחלקה HelloAnalytics
.
אחרת, אפשר להדר ולהפעיל את האפליקציה משורת הפקודה:
- יוצרים את הדוגמה באמצעות:
javac -classpath /path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics.java
- הרצת הדגימה באמצעות:
java -classpath ./:/path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics
לאחר סיום השלבים האלה, הדגימה מפיקה את השם של התצוגה המפורטת (הפרופיל) הראשונה של המשתמש המורשה ב-Google Analytics ואת מספר הביקורים בשבעת הימים האחרונים.
באמצעות אובייקט השירות המורשה של Analytics אפשר עכשיו להריץ דוגמאות קוד שנמצאות במסמכי התיעוד של Management API. לדוגמה, אפשר לנסות לשנות את הקוד כדי להשתמש בשיטה accountSummaries.list.