קישור והצגה חזותית של כל הנתונים ב-Looker Studio

1. מבוא

Looker Studio מאפשר לכם ליצור מרכזי בקרה אינטראקטיביים בזמן אמת עם תצוגות חזותיות יפהפיות של הנתונים, בחינם. מאחזרים את הנתונים ממגוון מקורות ויוצרים דוחות ללא הגבלה ב-Looker Studio, עם יכולות עריכה ושיתוף מלאות. צילום המסך הבא הוא דוגמה למרכז בקרה ב-Looker Studio:

2f296fddf6af7393.png

( אפשר ללחוץ כאן כדי לצפות בדוח לדוגמה ב-Looker Studio)

מחברי קהילה היא תכונה ב-Looker Studio שמאפשרת להשתמש ב-Apps Script כדי ליצור מחברים לכל מקור נתונים שנגיש באינטרנט. מחברים של קהילות בונים על ידי קהילת Looker Studio. המשמעות היא שכל אחד יכול ליצור מחברים קהילות. אתם יכולים גם לשתף מחברים של קהילות עם אנשים אחרים כדי שהם יוכלו לגשת לנתונים שלהם מתוך Looker Studio.

אפשר להשתמש במחברים של קהילות בתרחישים שונים לדוגמה:

  • הצגה חזותית של נתונים מפלטפורמה מסחרית (למשל: מדיה חברתית, שיווק, ניתוח נתונים וכו')
  • אתם מציגים באופן חזותי נתונים ארגוניים בארגון (למשל נתוני מכירות ממסד נתונים מקומי של MySQL)
  • העסק שלך מאפשר ללקוחות לראות באופן חזותי את הנתונים שלהם מהשירות
  • בחרת ליצור פלטפורמת דיווח על לחצנים
  • אתה ממחיש באופן חזותי את הנתונים שלך ממקור אינטרנט (למשל, יוצר מרכז שליטה של Google Fit)

מה תלמדו

  • איך עובד מחבר הקהילה של Looker Studio
  • איך להשתמש ב-Google Apps Script כדי לבנות מחבר קהילה
  • איך משתמשים במחברים של קהילות ב-Looker Studio

למה תזדקק?

  • גישה לאינטרנט ולדפדפן אינטרנט
  • חשבון Google
  • היכרות עם JavaScript וממשקי API בסיסיים

2. סקר קצר

למה בחרת ב-Codelab הזה?

אני רוצה לקבל תצוגות חזותיות של נתונים באופן כללי. אני רוצה לקבל מידע נוסף על Looker Studio אני רוצה ליצור מחבר קהילה משלי. אני מנסה לשלב את Looker Studio בפלטפורמה אחרת. אני רוצה לקבל פתרונות של Google Cloud.

איך בכוונתך להשתמש ב-Codelab/במדריך הזה?

דילוג בלבד לקרוא אותו ולבצע את התרגילים

איזה דירוג מגיע לדעתך להיכרות שלך עם Looker Studio?

אף פעם לא שמעתי עליו אני יודע מה זה, אבל אני לא משתמש בו. אני משתמש/ת בה באופן קבוע. אני משתמש מומחה.

מה האפשרות שמתארת את הרקע שלך בצורה הטובה ביותר?

מפתח מנתחי נתונים, עסקים או כספים מדעני נתונים או מהנדסי מערכות מידע מומחה שיווק / מדיה חברתית / ניתוח נתונים בדיגיטל מעצב אחר

אפשר לעבור לדף הבא כדי לשלוח את פרטי הסקר.

3. סקירה כללית של מחברים קהילתיים

מחברי הקהילה של Looker Studio מאפשרים חיבורים ישירים מ-Looker Studio לכל מקור נתונים שאפשר לגשת אליו באינטרנט. תוכלו להתחבר לפלטפורמות מסחריות, למערכי נתונים ציבוריים או לנתונים פרטיים בארגון שלכם. מחברים של קהילות אפשר לאחזר נתונים באמצעות ממשקי API לאינטרנט, ממשקי API של JDBC, קבצים שטוחים (CSV, JSON, XML) ושירותי Apps Script.

b25b8d6bea6da54b.png

נבחן תרחיש שבו פרסמתם חבילה ב-npm ואתם רוצים לעקוב אחר מספר ההורדות של החבילה לאורך זמן לפי יום. ב-Codelab הזה תצרו מחבר קהילה שמאחזר נתונים באמצעות API לספירת הורדות של חבילת NPM. לאחר מכן תוכלו להשתמש במחבר של הקהילה ב-Looker Studio כדי ליצור מרכז בקרה שממחיש באופן חזותי את ספירת ההורדות.

4. תהליך עבודה של מחבר הקהילה

במחבר קהילה בסיסי תגדירו ארבע פונקציות:

  • getAuthType()
  • getConfig()
  • getSchema()
  • getData()

בהתאם לשלב הנוכחי בתהליך העבודה, Looker Studio מפעיל את פונקציות המחברים האלה ומשתמש בתגובה בשלבים הבאים. הסרטון הבא מספק סקירה כללית של:

  • איך פועל מחבר הקהילה
  • שלבים שונים בתהליך העבודה
  • כשקוראים לפונקציות שונות
  • כש-Looker Studio מציג ממשקי משתמש שונים
  • הפעולות הצפויות של המשתמשים בשלבים שונים

אפשר להמשיך את ה-Codelab אחרי הצפייה בסרטון.

אין צורך לשנן את תהליך העבודה הזה, אלא רק להעיף מבט כדי להבין מה קורה במחבר. תמיד אפשר לחזור לתרשים הזה.

cc6688bf38749e5.png

בשלב הבא, תתחיל ליצור את המחבר ב-Google Apps Script. תצטרכו לעבור בין ממשק המשתמש של Apps Script לבין ה-Codelab הזה.

5. הגדרת פרויקט ב-Apps Script

שלב 1: מעבר אל Google Apps Script.

שלב 2: כדי ליצור פרויקט חדש של סקריפט אפליקציות, לוחצים על + פרויקט חדש. בקטע הימני העליון.

fb12d7318d0946cf.png

בקובץ Code.gs יופיע פרויקט מעטפת עם פונקציית myFunction ריקה.

b245ce5eb3dd2ee2.png

שלב 3: מוחקים את הפונקציה myFunction.

שלב 4:נותנים שם לפרויקט:

  1. לוחצים על הסמל Untitled project בפינה הימנית העליונה של הדף.
  2. מזינים שם לפרויקט.

7172aebc181c91d4.png

מתחילים לכתוב את קוד המחבר בקובץ Code.gs.

6. הגדרת getAuthType()

Looker Studio יפעיל את הפונקציה getAuthType() כשהוא יצטרך לדעת את שיטת האימות שבה משתמש המחבר. פונקציה זו צריכה להחזיר את שיטת האימות הדרושה על ידי המחבר כדי לאשר את השירות של הצד השלישי.

אין צורך לאמת את המחבר להורדות של NPM שאתם יוצרים, כי ה-API שבו אתם משתמשים לא מחייב אימות כלשהו. מעתיקים את הקוד הבא ומוסיפים אותו לקובץ Code.gs:

Code.gs

var cc = DataStudioApp.createCommunityConnector();

function getAuthType() {
  var AuthTypes = cc.AuthType;
  return cc
    .newAuthTypeResponse()
    .setAuthType(AuthTypes.NONE)
    .build();
}

כאן מציינים שהמחבר לא דורש אימות כלשהו של צד שלישי (AuthTypes.NONE). כדי לראות את כל שיטות האימות הנתמכות, אפשר לעיין בחומר העזר בנושא AuthType().

7. הגדרת getConfig()

המשתמשים במחבר יצטרכו להגדיר את המחבר לפני שיוכלו להתחיל להשתמש בו. התגובה של הפונקציה getConfig() מגדירה את אפשרויות התצורה שיוצגו למשתמשים. מערכת Looker Studio מפעילה את הפונקציה getConfig() כדי לקבל את פרטי ההגדרות של המחבר. על סמך התשובה של getConfig(), מערכת Looker Studio תעבד את מסך ההגדרה של המחבר וישנה התנהגויות מסוימות של המחבר.

במסך ההגדרות האישיות, אפשר לספק מידע או לקבל קלט ממשתמשים באמצעות רכיבי הטופס הבאים:

TEXTINPUT

רכיב קלט

תיבת טקסט עם שורה אחת.

TEXTAREA

רכיב קלט

תיבת טקסט עם אזור טקסט מרובה שורות.

SELECT_SINGLE

רכיב קלט

תפריט נפתח לאפשרויות לבחירה יחידה.

SELECT_MULTIPLE

רכיב קלט

תפריט נפתח לאפשרויות לבחירה מרובה.

CHECKBOX

רכיב קלט

תיבת סימון יחידה שבה ניתן להשתמש כדי לתעד ערכים בוליאניים.

INFO

רכיב תצוגה

תיבה סטטית של טקסט פשוט שבה ניתן לספק הוראות או מידע למשתמש.

צריך להשתמש ברכיב INFO כדי לספק הוראות למשתמש וברכיב TEXTINPUT כדי לקבל מהמשתמש את שם חבילת הקלט. בתשובה getConfig(), נקבץ את רכיבי הטופס האלה באמצעות המפתח configParams.

מכיוון שה-API שאליו אתם מתחברים דורש תאריך כפרמטר, צריך להגדיר את dateRangeRequired ל-true בתשובה getConfig(). זה מנחה את Looker Studio לספק טווחי תאריכים עם כל הבקשות לנתונים. אם מקור הנתונים לא מחייב תאריך בתור פרמטר, אפשר להשמיט אותו.

צריך להוסיף את getConfig()הקוד הבא לקובץ Code.gs, מתחת לקוד הקיים של getAuthType():

Code.gs

function getConfig(request) {
  var config = cc.getConfig();
  
  config.newInfo()
    .setId('instructions')
    .setText('Enter npm package names to fetch their download count.');
  
  config.newTextInput()
    .setId('package')
    .setName('Enter a single package name')
    .setHelpText('e.g. googleapis or lighthouse')
    .setPlaceholder('googleapis');
  
  config.setDateRangeRequired(true);
  
  return config.build();
}

על סמך ה-configParams האלה, כשמשתמשים במחבר ב-Looker Studio, צפוי לראות מסך הגדרות כמו בדוגמה הבאה. אבל נרחיב על כך בהמשך.

7de872f17e59e92.png

בואו נעבור לפונקציה הבאה - getSchema().

8. הגדרת getSchema()

Looker Studio מפעיל את הפונקציה getSchema() כדי לקבל את הסכימה שמשויכת להגדרות האישיות שנבחרו על ידי המשתמש עבור המחבר. על סמך התשובה של getSchema(), Looker Studio יציג את מסך השדות למשתמש עם פירוט של כל השדות במחבר.

עבור כל תצורה ספציפית של המחבר, הסכימה היא רשימה של כל השדות שעבורם המחבר יכול לספק נתונים. מחבר עשוי להחזיר סכימה שונה עם שדות שונים, על סמך תצורות שונות. הסכימה יכולה להכיל שדות שמאחזרים ממקור ה-API, שדות שמחושבים ב-Apps Script ושדות שמחושבים ב-Looker Studio באמצעות נוסחת שדות מחושבת. המחבר שלך מספק את המטא-נתונים לגבי כל שדה בסכימה, כולל:

  • שם השדה
  • סוג הנתונים בשדה
  • מידע סמנטי

לקבלת מידע נוסף, אפשר לעיין במאמרי העזרה getSchema() ו-Field בהמשך.

בהתאם לאופן שבו המחבר מאחזר, יכול להיות שהסכימה תהיה קבועה או תחושב באופן דינמי כשתתבצע קריאה ל-getSchema(). פרמטרים של הגדרה מ-getConfig() שמוגדרים על ידי המשתמש יסופקו בארגומנט request עבור הפונקציה getSchema().

בשביל ה-Codelab הזה, אין צורך לגשת לארגומנט request. מידע נוסף על הארגומנט request יעזור לך לכתוב קוד בשביל הפונקציה getData() בקטע הבא.

במחבר, הסכימה קבועה ומכילה את 3 השדות הבאים:

packageName

השם של חבילת ה-NPM שהמשתמש מספק

downloads

מספר ההורדות של חבילת ה-NPM

day

תאריך הספירה של ההורדות

בהמשך מופיע הקוד של getSchema() עבור המחבר. פונקציית העזרה getFields() מפשטת את יצירת השדות, כי הפונקציונליות הזו נדרשת גם ב-getSchema() וגם ב-getData(). מוסיפים את הקוד הבא לקובץ Code.gs:

Code.gs

function getFields(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var fields = cc.getFields();
  var types = cc.FieldType;
  var aggregations = cc.AggregationType;
  
  fields.newDimension()
    .setId('packageName')
    .setType(types.TEXT);
  
  fields.newMetric()
    .setId('downloads')
    .setType(types.NUMBER)
    .setAggregation(aggregations.SUM);
  
  fields.newDimension()
    .setId('day')
    .setType(types.YEAR_MONTH_DAY);
  
  return fields;
}

function getSchema(request) {
  var fields = getFields(request).build();
  return { schema: fields };
}

בהתאם לסכימה הזו, ניתן לראות את השדות הבאים במסך השדות של Looker Studio כשמשתמשים במחבר ב-Looker Studio. אבל על כך מאוחר יותר כשתבדוק את המחבר.

c7cd7057b202be59.png

נעבור לפונקציה האחרונה שלנו - getData().

9. הגדרת getData() : חלק 1

Looker Studio מפעיל את הפונקציה getData() בכל פעם שצריך לאחזר נתונים. על סמך התשובה של getData(), מערכת Looker Studio תעבד ותעדכן תרשימים במרכז הבקרה. ייתכן שיתקשרו אל getData()באירועים הבאים:

  • המשתמש מוסיף תרשים ללוח הבקרה
  • משתמש עורך תרשים
  • המשתמש צופה במרכז הבקרה
  • משתמש עורך מסנן או פקד נתונים משויך
  • ל-Looker Studio נדרשת דגימה של נתונים

אין צורך להעתיק קוד מהדף הזה כי תעתיק את הקוד שהושלם

getData()

בשלב מאוחר יותר.

הסבר על האובייקט request

Looker Studio מעביר את האובייקט request בכל קריאה של getData(). בודקים את המבנה של האובייקט request למטה. כך אפשר לכתוב את הקוד של הפונקציה getData().

מבנה אובייקט של request

{
  configParams: object,
  scriptParams: object,
  dateRange: {
    startDate: string,
    endDate: string
  },
  fields: [
    {
      name: Field.name
    }
  ]
}
  • האובייקט configParams יכיל ערכי הגדרות לפרמטרים שהוגדרו ב-getConfig() והוגדרו על ידי המשתמש.
  • האובייקט scriptParams יכיל מידע שרלוונטי לביצוע המחבר. אתם לא צריכים להשתמש באפשרות הזו ב-Codelab הזה.
  • הפרמטר dateRange יכיל את טווח התאריכים המבוקש אם תתקבל בקשה כזו getConfig()בתשובה.
  • השדה fields יכיל את רשימת השמות של השדות שיישלחו אליהם נתונים.

עבור המחבר, דוגמה request מהפונקציה getData() עשויה להיראות כך:

{
  configParams: {
    package: 'jquery'
  },
  dateRange: {
    startDate: '2017-07-16',
    endDate: '2017-07-18'
  },
  fields: [
    {
      name: 'day',
    },
    {
      name: 'downloads',
    }
  ]
}

בgetData()קריאה שלמעלה ב-request, נשלחות רק בקשות לשני שדות למרות שסכימת המחבר כוללת שדות נוספים. הדף הבא מכיל את התשובה לדוגמה עבור הקריאה הזו getData()ואת המבנה הכללי של התשובות getData().

10. הגדרת getData() : חלק 2

בתשובה getData(), תצטרכו לספק גם סכימה וגם נתונים לשדות המבוקשים. הקוד יפוצל לשלושה קטעים:

  • יצירת סכימה לשדות המבוקשים.
  • אחזור וניתוח של נתונים מה-API.
  • אפשר לבצע טרנספורמציה של נתונים מנותחים וסינון לפי השדות המבוקשים.

אין צורך להעתיק קוד מהדף הזה כי תעתיק את הקוד שהושלם

getData()

בדף הבא.

זה המבנה של getData() למחבר שלך.

function getData(request) {

  // TODO: Create schema for requested fields.
  
  // TODO: Fetch and parse data from API.
  
  // TODO: Transform parsed data and filter for requested fields.

  return {
    schema: <filtered schema>,
    rows: <transformed and filtered data>
  };
}

יצירת סכימה לשדות המבוקשים

// Create schema for requested fields
  var requestedFieldIds = request.fields.map(function(field) {
    return field.name;
  });
  var requestedFields = getFields().forIds(requestedFieldIds);

אחזור וניתוח של נתונים מ-API

כתובת ה-URL של npm API תהיה בפורמט הזה:

https://api.npmjs.org/downloads/point/{start_date}:{end_date}/{package}

יוצרים את כתובת ה-URL של ה-API באמצעות השדות request.dateRange.startDate, request.dateRange.endDate ו-request.configParams.package שסופקו על ידי Looker Studio. לאחר מכן שליפת הנתונים מה-API באמצעות UrlFetchApp(סיווג Apps Script: הפניה). לאחר מכן לנתח את התגובה שאוחזרה.

  // Fetch and parse data from API
  var url = [
    'https://api.npmjs.org/downloads/range/',
    request.dateRange.startDate,
    ':',
    request.dateRange.endDate,
    '/',
    request.configParams.package
  ];
  var response = UrlFetchApp.fetch(url.join(''));
  var parsedResponse = JSON.parse(response).downloads;

לבצע טרנספורמציה של נתונים מנותחים וסינון של השדות המבוקשים

התשובה מ-npm API תהיה בפורמט הבא:

{
  downloads: [
    {
    day: '2014-02-27',
    downloads: 1904088
    },
    ..
    {
    day: '2014-03-04',
    downloads: 7904294
    }
  ],
  start: '2014-02-25',
  end: '2014-03-04',
  package: 'somepackage'
}

משנים את התשובה מה-API של npm ושולחים את התשובה getData() בפורמט הבא. אם הפורמט הזה לא ברור, כדאי לעיין בתשובה לדוגמה בפסקה הבאה.

{
  schema: [
    {
      object(Field)
    }
  ],
  rows: [
    {
      values: [string]
    }
  ]
}

בתשובה, תוחזר הסכימה רק לשדות המבוקשים באמצעות המאפיין schema. המערכת תחזיר את הנתונים באמצעות המאפיין rows כרשימת שורות. בכל שורה, רצף השדות ב-values חייב להתאים לרצף השדות ב-schema. על סמך הדוגמה הקודמת שלנו לגבי request, כך תיראה התשובה עבור getData():

{
  schema: requestedFields.build(),
  rows: [
    {
      values: [ 38949, '20170716']
    },
    {
      values: [ 165314, '20170717']
    },
    {
      values: [ 180124, '20170718']
    },
  ]
}

כבר יצרתם את קבוצת המשנה של הסכימה. אפשר להשתמש בפונקציה הבאה כדי לשנות את הנתונים שנותחו ולסנן אותם לפי השדות המבוקשים.

function responseToRows(requestedFields, response, packageName) {
  // Transform parsed data and filter for requested fields
  return response.map(function(dailyDownload) {
    var row = [];
    requestedFields.asArray().forEach(function (field) {
      switch (field.getId()) {
        case 'day':
          return row.push(dailyDownload.day.replace(/-/g, ''));
        case 'downloads':
          return row.push(dailyDownload.downloads);
        case 'packageName':
          return row.push(packageName);
        default:
          return row.push('');
      }
    });
    return { values: row };
  });
}

11. הגדרת getData() : חלק 3

הקוד המשולב getData() ייראה כמו הקוד שבהמשך. מוסיפים את הקוד הבא לקובץ Code.gs:

Code.gs

function responseToRows(requestedFields, response, packageName) {
  // Transform parsed data and filter for requested fields
  return response.map(function(dailyDownload) {
    var row = [];
    requestedFields.asArray().forEach(function (field) {
      switch (field.getId()) {
        case 'day':
          return row.push(dailyDownload.day.replace(/-/g, ''));
        case 'downloads':
          return row.push(dailyDownload.downloads);
        case 'packageName':
          return row.push(packageName);
        default:
          return row.push('');
      }
    });
    return { values: row };
  });
}

function getData(request) {
  var requestedFieldIds = request.fields.map(function(field) {
    return field.name;
  });
  var requestedFields = getFields().forIds(requestedFieldIds);

  // Fetch and parse data from API
  var url = [
    'https://api.npmjs.org/downloads/range/',
    request.dateRange.startDate,
    ':',
    request.dateRange.endDate,
    '/',
    request.configParams.package
  ];
  var response = UrlFetchApp.fetch(url.join(''));
  var parsedResponse = JSON.parse(response).downloads;
  var rows = responseToRows(requestedFields, parsedResponse, request.configParams.package);

  return {
    schema: requestedFields.build(),
    rows: rows
  };
}

סיימת עם הקובץ Code.gs! לאחר מכן מעדכנים את המניפסט.

12. עדכון המניפסט

בעורך Apps Script, בוחרים באפשרות Project Settings > (הגדרות הפרויקט >) הצגת 'appsscript.json' בקובץ מניפסט בעורך.

90a68a58bbbb63c4.png

הפעולה הזו תיצור קובץ מניפסט חדש appsscript.json.

1081c738d5d577a6.png

מחליפים את קובץ appscript.json כך:

appsscript.json

{
  "timeZone": "America/Los_Angeles",
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",

  "dataStudio": {
    "name": "npm Downloads - From Codelab",
    "logoUrl": "https://raw.githubusercontent.com/npm/logos/master/npm%20logo/npm-logo-red.png",
    "company": "Codelab user",
    "companyUrl": "https://developers.google.com/looker-studio/",
    "addonUrl": "https://github.com/googledatastudio/example-connectors/tree/master/npm-downloads",
    "supportUrl": "https://github.com/googledatastudio/community-connectors/issues",
    "description": "Get npm package download counts.",
    "sources": ["npm"]
  }
}

שומרים את פרויקט Apps Script.

5701ece1c89415c.png

מעולה! יצרת את מחבר הקהילה הראשון שלך והוא מוכן לנסיעת מבחן!

13. בדיקת המחבר ב-Looker Studio

שימוש בפריסה

שלב 1: בסביבת הפיתוח של Apps Script, לוחצים על Deploy (פריסה) > בדיקת פריסות כדי לפתוח את תיבת הדו-שיח 'בדיקת פריסות'.

3f57ea0feceb2596.png

פריסת ברירת המחדל, Head Deployment, תופיע.

שלב 2: לוחצים על Copy כדי להעתיק את Head Deployment ID.

שלב 3: כדי לטעון את המחבר ב-Looker Studio, מחליפים את <HEAD_DEPLOYMENT_ID> מציין את המיקום בקישור הבא עם מזהה הפריסה הראשית של המחבר שלך ולוחצים על הקישור בדפדפן:

https://lookerstudio.google.com/datasources/create?connectorId=<HEAD_DEPLOYMENT_ID>

אישור המחבר

משתמשים חדשים ב-Looker Studio: אם לא השתמשתם ב-Looker Studio בעבר, תתבקשו לאשר את Looker Studio ולהסכים לתנאים ולהגבלות. משלימים את תהליך ההרשאה. בפעם הראשונה שתשתמשו ב-Looker Studio, יכול להיות שתופיע גם תיבת דו-שיח לעדכון העדפות השיווק שלכם. כדי לקבל עדכונים באימייל על תכונות חדשות, עדכונים והודעות בקשר למוצרים, אפשר להירשם לקבלת הודעות על מוצרים.

לאחר הטעינה, תופיע בקשה לאישור המחבר.

d7e66726a1e64c05.png

לוחצים על 'הרשאה' ומעניקים למחבר את ההרשאה הנדרשת.

הגדרת המחבר

לאחר השלמת ההרשאה, יוצג מסך ההגדרה. מקלידים "מגדלור" באזור קלט הטקסט, ולוחצים על Connect (התחברות) בפינה הימנית העליונה.

ec7416d6dbeabc8f.png

אישור הסכימה

יוצג מסך השדות. לוחצים על יצירת דוח בפינה השמאלית העליונה.

4a9084bd51d2fbb8.png

יצירת מרכז השליטה שלך

אתם תהיו בסביבת מרכז הבקרה של Looker Studio. לוחצים על הוספה לדוח.

1ca21e327308237c.png

ב-Looker Studio, בכל פעם שמשתמש ניגש למחבר ומוסיף הגדרות אישיות חדשות, נוצר מקור נתונים חדש בחשבון Looker Studio של המשתמש. ניתן לחשוב על מקור נתונים כיצירת מופע של המחבר על סמך הגדרה ספציפית. על סמך המחבר וההגדרות שהמשתמש בחר, מקור נתונים יחזיר טבלת נתונים עם קבוצת שדות ספציפית. המשתמשים יכולים ליצור כמה מקורות נתונים מאותו מחבר. אפשר להשתמש במקור נתונים בכמה דוחות, ובאותו דוח אפשר להשתמש בכמה מקורות נתונים.

עכשיו כדאי להוסיף תרשים של סדרת זמנים. בתפריט, לוחצים על הוספה > פעולות על ציר הזמן. לאחר מכן, מניחים את סדרת הזמנים באזור העריכה. אמור להופיע תרשים של סדרת זמנים של מספר ההורדות של ה-NPM עבור החבילה שנבחרה. מוסיפים פקד של מסנן תאריכים וצופים במרכז הבקרה כפי שמוצג בהמשך.

4c076e07665f57aa.gif

זהו! יצרת עכשיו את מחבר הקהילה הראשון שלך! כאן מסתיים ה-Codelab הזה. עכשיו נראה מהם השלבים הבאים שאפשר לבצע.

14. השלבים הבאים

שיפור המחבר שבפיתוח

מבצעים שיפורים במחבר שיצרתם:

  • אם לא תציינו שם חבילה במסך ההגדרה של המחבר ב-Looker Studio, תופיע הודעת שגיאה כשתציירו את התרשים של סדרת הזמנים. כדאי לנסות להוסיף אימות קלט או אפשרות ברירת מחדל להגדרות המחבר.
  • אפשר לנסות להוסיף תמיכה לשליחת שאילתות לגבי מספר שמות חבילות בו-זמנית בהגדרות המחבר. רמז: ממשק ה-API של ספירת הורדות של חבילות NPM תומך בקלט של מספר שמות חבילות שמופרדים בפסיקים.
  • אפשר למצוא פתרונות לשני המצבים האלה בקוד של מחבר ה-npm.

פעולות נוספות שאפשר לבצע עם מחברים קהילתיים

מקורות מידע נוספים

בהמשך ריכזנו מקורות מידע שונים שיעזרו לכם להתעמק בתוכן שנלמד ב-Codelab הזה.

סוג המשאב

תכונות משתמש

תכונות למפתחים

מסמכי תיעוד

מרכז העזרה

תיעוד למפתחים

חדשות ו עדכונים

נרשמים ב-Looker Studio > הגדרות משתמש

רשימת דיוור למפתחים

איך שואלים שאלות

פורום המשתמשים

Stack Overflow [looker-studio]

סרטונים

DataVis DevTalk

דוגמאות

מאגר קוד פתוח