מסמך זה מסביר מושגים חשובים לגבי השימוש ב-Metadata API כדי לגשת לרשימות ולמאפיינים של עמודות ב-Google Analytics.
מבוא
Metadata API מחזיר את רשימת העמודות (כלומר מאפיינים ומדדים) שנחשפו בממשקי ה-API לדיווח של Google Analytics ואת המאפיינים שלהן. אם אתם משתמשים חדשים ב-API, קראו את הסקירה הכללית על מטא-נתונים של API כדי לקבל מבוא ל-Metadata API.
לפני שתתחיל
הגישה לכל ממשקי ה-API של Google Analytics מתבצעת באופן דומה. לפני שמתחילים עם Metadata API, צריך:
- בדף ספריות לקוח אפשר למצוא רשימה מלאה של ספריות לקוח ספציפיות לשפת תכנות שעובדות עם ה-API.
- ב מדריך העזר מפורט מידע נוסף על ממשק ה-API ועל הגישה לנתונים בלי ספריית לקוח.
כל ספריית לקוח מספקת אובייקט שירות יחיד של ניתוח נתונים כדי לגשת לכל הנתונים של Metadata API. בדרך כלל, כדי ליצור את אובייקט השירות לשימוש עם Metadata API, צריך לבצע את השלבים הבאים:
- רשום את האפליקציה שלך ב מסוף Google API.
- יוצרים אובייקט שירות של Analytics ומגדירים את מפתח ה-API.
מפתח רישום ומפתח API
האפליקציה שלכם צריכה לזהות את עצמה בכל פעם שהיא שולחת בקשה ל-API של Analytics, על ידי הוספה של מפתח API לכל בקשה.
קבלת מפתח API ושימוש בו
כך מקבלים מפתח API:
- פותחים את הדף Credentials ב-API Console.
-
ה-API הזה תומך בשני סוגים של פרטי כניסה.
יוצרים את פרטי הכניסה המתאימים לפרויקט:
-
OAuth 2.0: בכל פעם שהאפליקציה מבקשת נתונים פרטיים של משתמשים, היא צריכה לשלוח אסימון OAuth 2.0 יחד עם הבקשה. כדי לקבל אסימון, האפליקציה שלכם שולחת תחילה מזהה לקוח, ואולי גם סוד לקוח. אפשר ליצור פרטי כניסה של OAuth 2.0 לאפליקציות אינטרנט, לחשבונות שירות או לאפליקציות מותקנות.
הערה: ה-API הזה לא כולל שיטות שמחייבות הרשאה מסוג OAuth 2.0, ולכן ייתכן שתצטרכו להשיג רק מפתחות API, כפי שמתואר בהמשך. עם זאת, אם האפליקציה מפעילה ממשקי API אחרים שמחייבים הרשאת משתמש, עדיין נדרשים פרטי כניסה של OAuth 2.0.
מידע נוסף זמין במסמכי התיעוד של OAuth 2.0.
-
מפתחות API: בקשה שלא מספקת אסימון OAuth 2.0 חייבת לשלוח מפתח API. המפתח מזהה את הפרויקט ומספק גישה ל-API, מכסות ודוחות.
ה-API תומך בכמה סוגים של הגבלות על מפתחות API. אם מפתח ה-API הדרוש לכם לא קיים כבר, יוצרים מפתח API במסוף על ידי לחיצה על Create credentials > מפתח API. כדי להגביל את המפתח לפני שמשתמשים בו בסביבת הייצור, לוחצים על Restrict key ובוחרים אחת מהאפשרויות של Restrict.
-
כדי לשמור על האבטחה של מפתחות ה-API, מומלץ לפעול לפי השיטות המומלצות לשימוש מאובטח במפתחות API.
אחרי שיצרתם מפתח API, האפליקציה יכולה לצרף את פרמטר השאילתה key=yourAPIKey
לכל כתובות ה-URL של הבקשות.
מפתח ה-API בטוח להטמעה בכתובות URL; אין צורך בקידוד.
קטעי הקוד הבאים ממחישים כיצד להגדיר את מפתח ה-API עבור ספריות לקוח שונות:
Java
import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.services.analytics.Analytics; import com.google.api.services.analytics.AnalyticsRequestInitializer; public class ApiKeySample { private static final String API_KEY = "YOUR API KEY"; public static void main(String[] args) { NetHttpTransport netHttpTransport = new NetHttpTransport(); JacksonFactory jacksonFactory = new JacksonFactory(); // Set the API Key AnalyticsRequestInitializer analyticsInitializer = new AnalyticsRequestInitializer(API_KEY); // Build the Analytics Service object Analytics analytics = new Analytics.Builder(netHttpTransport, jacksonFactory, null) .setAnalyticsRequestInitializer(analyticsInitializer) .setApplicationName("ApiKeySample") .build(); // Start coding cool things. } }
Python
from apiclient.discovery import build API_KEY = 'YOUR API KEY' def main(argv): # Set the API Key and build the Analytics service object. service = build('analytics', 'v3', developerKey=API_KEY) # Start coding cool things.
PHP
require_once 'google-api-php-client/src/Google_Client.php'; require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php'; const API_KEY = 'YOUR API KEY' $client = new Google_Client(); // Set the API Key $client->setDeveloperKey($API_KEY); // Build the Analytics Service object. $analytics = new google_AnalyticsService($client); // Start coding cool things.
JavaScript
<!-- Method 1: Using the Google APIs Client Library for JavaScript --> <script> var apiKey = 'YOUR API KEY'; function handleClientLoad() { gapi.client.setApiKey(apiKey); gapi.client.load('analytics', 'v3', makeRequest); } function makeRequest() { // Start coding cool things. } </script> <script src="//apis.google.com/js/client.js?onload=handleClientLoad"></script> <!-- Method 2: Using REST and callback parameter --> <script> function render() { // Place your awesome code here. } </script> <!-- Replace RESOURCE with the path to the Google Analytics resource you're querying. --> <script src="https://www.googleapis.com/analytics/v3/RESOURCE/?key=YOUR_API_KEY&callback=render"></script>
מאפייני העמודה
התגובה של Metadata API כוללת את המאפיין attributeNames
שבו מפורטים כל המאפיינים החוקיים של העמודות. בכל עמודה יש
נכס attributes
שכולל קבוצת משנה של מאפיינים
שרלוונטיים לעמודה.
בטבלה הבאה מפורטים כל המאפיינים החוקיים:
תרחישים לדוגמה
אפשר להשתמש ב-Metadata API כדי לפתור את התרחישים הבאים:
עמודות שהוצאו משימוש
אם עמודה (כלומר מאפיין או מדד) הוצאה משימוש, המאפיין status
יוגדר כ-DEPRECATED
.
קטע הקוד הבא מראה איך להשתמש במאפיין status
כדי לבדוק אם העמודה הוצאה משימוש:
function isDeprecated(column) { return column.attributes.status == 'DEPRECATED'; }
אם משנים שם של עמודה או מסירים אותה, מאפיין status
שלה יוגדר
ל-DEPRECATED
ויכול להיות שהמאפיין replacedBy
שלה יוגדר כ-Id
של העמודה החלופית.
קטע הקוד הבא מראה איך להשתמש במאפיין replacedBy
כדי לקבל את המזהה של עמודת ההחלפה:
function getReplacementId(column) { return column.attributes.replacedBy; }
שמות העמודות
המאפיין uiName
הוא שם המאפיין או המדד שמופיע בממשקי המשתמש של Google Analytics (למשל, ממשק האינטרנט).
קטע הקוד הבא מראה איך לאחזר את שם ממשק המשתמש של עמודה:
function getColumnName(column) { return column.attributes.uiName; }
עמודות מעוצבות
עמודות מבנה כוללות מאפיינים או מדדים עם אינדקס מספרי.
לדוגמה, ga:goalXXStarts
, ga:dimensionXX
,
ga:metricXX
וכו'. לעמודה עם תבנית יהיו המאפיינים minTemplateIndex
ו-maxTemplateIndex
שמגדירים את טווח האינדקס.
קטע הקוד הבא מראה איך לבדוק אם העמודה מעוצבת בפורמט:
function isTemplatized(column) { return !!column.attributes.minTemplateIndex || !!column.attributes.maxTemplateIndex; }
קטע הקוד הבא מראה איך לאחזר רשימה של מזהים חוקיים של עמודה עם תבניות:
function getTemplatizedIdList(column) { var columnIdList = []; var columnId = column.id; if (isTemplatized(column)) { minIndex = parseInt(column.attributes.minTemplateIndex); maxIndex = parseInt(column.attributes.maxTemplateIndex); for (var i = minIndex; i <= maxIndex; i++) { columnIdList.push(columnId.replace('XX', i)); } } return columnIdList; }
עמודות מחושבים
לעמודה שנגזרת מחישוב של עמודות אחרות תהיה
מאפיין calculation
. למשל, החישוב של ga:percentNewSessions
הוא ga:newSessions / ga:sessions
.
הדוגמה הבאה מראה איך לבדוק אם עמודה מסוימת מחושבת ואיך מאחזרים את החישוב של עמודה:
function isCalculated(column) { return !!column.attributes.calculation; } function getCalculation(column) { return column.attributes.calculation; }
עמודות ופלחים
המאפיין allowedInSegments
מאפשר לבדוק אם אפשר להשתמש
בעמודה מסוימת בפרמטר של שאילתת הפלח.
הדוגמה הבאה מראה איך לקבוע אם אפשר להשתמש בעמודה לפלחים:
function isAllowedInSegments(column) { return !!column.attributes.allowedInSegments; }
נוסף בגרסת API
אפשר להשתמש במאפיין addedInApiVersion
כדי לבדוק אם אפשר להשתמש בעמודה
ב-Reporting API של גרסה מסוימת. לדוגמה, אפשר לקרוא לפונקציה הבאה כדי לוודא שניתן להשתמש בעמודה ב-Core Reporting API V3:
function isAllowedInV3(column) { return column.attributes.addedInApiVersion < 4; }
ETag
כל תגובה של Metadata API כוללת ETag. ה-ETag הוא מזהה שניתן להשתמש בו כדי לשמור במטמון תגובות של Metadata API ולעדכן אותן. זה חשוב כי הנתונים של עמודות (כמו מאפיינים ומדדים) יכולים להישאר ללא שינוי למשך תקופות זמן ארוכות, ולא עוזר לשלוח בקשות ועדכונים מיותרים כשאפשר להשתמש בנתונים שנשמרו במטמון.
אם שומרים את ה-ETag של אוסף עמודות, אפשר להשתמש בו בעיקר בשתי דרכים: לבדוק אם תגובת Metadata API ששמורה במטמון מעודכנת, ולכלול אותה כחלק מבקשת Metadata API.
בדיקת תגובה שנשמרה במטמון
אם משווים בין ערך ה-ETag שהוחזר מתגובה של Metadata API ושווה ערך ל-ETag של משאב שנשמר במטמון, הגרסה ששמורה במטמון היא הנוכחית. אם תגי ה-ETags לא זהים, מעדכנים את האפליקציה ומרעננים את המטמון עם התגובה העדכנית.
אם רוצים לאחזר רק את ערך ה-ETag מ-Metadata API, צריך להגדיר את פרמטר השאילתה fields
ל-etag
בזמן שליחת הבקשה.
להצגת דוגמה
שימוש ב-ETag עם בקשת API
אם יש לכם גרסה שנשמרה במטמון של אוסף עמודות, תוכלו לכלול את ערך ה-ETag שלה בבקשת Metadata API על ידי הגדרת שדה הכותרת If-None-Match
של ה-HTTP. Metadata API יבדוק את ערך ה-ETag ויגיב עם גרסה מעודכנת של המשאב וסטטוס HTTP של 200 OK
או תגובה ריקה עם סטטוס 304 Not
Modified
אם הגרסה ששמורה במטמון עדכנית.