Báo cáo hiệu quả Fanpage trên Power BI với dữ liệu từ Facebook Graph API - Datapot

Báo cáo hiệu quả Fanpage trên Power BI với dữ liệu từ Facebook Graph API – Phần 1

Ngày đăng: 17/05/2023

Với tư cách là một người quản trị fanpage, việc báo cáo hiệu quả fanpage giúp chúng ta và ban giám đốc cũng như các bộ phận liên quan hiểu rõ các chỉ số về lượt xem, lượt tiếp cận, lượt tương tác, các chỉ số đánh giá hiệu quả quảng cáo,… để từ đó xây dựng chiến lược phát triển phù hợp cho fanpage.

Mặc dù Facebook đã tích hợp sẵn các công cụ quản lí fanpage và báo cáo chỉ số hiệu quả, tuy nhiên các chỉ số đo lường đều là mặc định và không thể tùy chỉnh theo nhu cầu của người dùng. Do đó, khi có nhu cầu tìm hiểu sâu hơn về các chỉ số, người dùng có thể xem xét việc sử dụng Facebook Graph API để lấy dữ liệu từ fanpage và tự xây dựng những chỉ số cần thiết theo kế hoạch của mỗi fanpage. 

Trong series này, chúng mình sẽ hướng dẫn các bạn cách sử dụng dữ liệu từ Facebook Graph API để xây dựng báo cáo các chỉ số trên fanpage. Series bao gồm hai phần:  

  1. Hướng dẫn Import data từ Facebook Graph API vào Power Query 
  1. Hướng dẫn xây dựng model và xây dựng báo cáo trong Power BI từ các dữ liệu Facebook API 

Chúng mình sẽ cùng nhau đi vào phần 1 nhé.

Phần 1: Import dữ liệu từ Facebook Graph API vào Power Query

1. Thực hiện trích xuất dữ liệu và import vào Power Query 

1.1. Các tài liệu giới thiệu có liên quan 

Để hiểu rõ các trường dữ liệu có thể trích xuất từ fanpage bằng Facebook Graph API, chúng ta tìm hiểu trong các tài liệu chính thức từ phía Facebook.

Trong ví dụ này, với mục đích xây dựng báo cáo hiệu quả fanpage bằng các dữ liệu từ Facebook Graph API, mình lựa chọn một số metrics chính như sau:

Loại metric Tên metric Sử dụng 
Page Engagement  page_engaged_users Chỉ số số lượng user tương tác với fanpage. 
 Page Engagementpage_post_engagements Số lượng tương tác với các bài viết trên fanpage 
 Page Engagementpage_consumptions_by_consumption_type Số lượt nhấp vào 1 nội dung bất kì, phân loại theo loại bài viết (bài viết có chứa link, bài viết có hình ảnh, bài viết có video,…) 
 Page Engagementpage_negative_feedback_by_type Số lượt người dùng có các hành động tiêu cực như ẩn story, ẩn bài viết từ page, report, unlike page.  
 Page Engagementpage_positive_feedback_by_type Số lượt người dùng có các hành động tích cực như trả lời câu hỏi, comment, like, share,… 
Page Impressions page_impressions Số lượt hiển thị nội dung từ Trang trên màn hình của một người.  
 Page Impressions page_impressions_unique Số người nhìn thấy nội dung từ Trang. 
Page Post Engagement post_engaged_users Số người nhấp vào 1 bài viết 
 Page Post Engagementpost_clicks Số lần mọi người nhấp vào vị trí bất kỳ trong các bài viết của bạn mà không tạo tin. 
Page Post Impressions post_impressions Số lượt hiển thị của bài viết trên màn hình của một người. 
 Page Post Impressions post_impressions_unique Số người nhìn thấy bài viết trên màn của họ. 
Page Post Reactions post_reactions_by_type_total Tổng số lượt bày tỏ cảm xúc về bài viết theo loại. 
Page User Demographics page_fans Tổng số người đã thích Trang của bạn. 
Page Views page_views_total Số lượt xem Trang từ phía những người đăng nhập và không đăng nhập. 

Ngoài ra, tùy theo mục đích của mỗi cá nhân, người dùng có thể tham khảo thêm các metrics đã được Facebook định nghĩa đầy đủ, rõ ràng trong các tài liệu trên.  

1.2. Thiết lập công cụ Facebook Graph API 

  • Bước 2: Thực hiện đăng nhập vào tài khoản quản trị fanpage 
  • Bước 3: Trên thanh header của trang web, chọn “Ứng dụng của tôi”, và chọn “Tạo ứng dụng”
  • Bước 4: Trong phần thêm trường hợp sử dụng ứng dụng, chọn “Khác”
  • Bước 5: Về chọn loại ứng dụng, trong ví dụ này, chúng ta chọn “Kinh doanh”  
  • Bước 6: Đặt tên cho ứng dụng (tùy chọn) và thêm email liên hệ (mặc định là email của facebook đã đăng nhập), sau đó nhấn “Tạo ứng dụng” 

Sau khi thực hiện xong, chúng ta sẽ được dẫn tới màn hình sau, tiếp tục nhấn vào “Công cụ” và chọn “Trình khám phá API đồ thị”

Đến bước này, chúng ta đã thiết lập xong các thông tin cơ bản của ứng dụng. Trong phần tiếp theo, chúng ta sẽ tìm hiểu kĩ hơn về cách sử dụng Facebook Graph API để truy vấn dữ liệu trên Facebook page.

1.3. Truy vấn thông tin và import vào Power query 

Chúng ta cùng quan sát màn hình của công cụ Facebook Graph API trong hình sau:  

Trong đó, các số được đánh dấu thể hiện những thông tin sau:

  • Số 1: nơi hiển thị các trường thông tin được chọn 
  • Số 2: nơi lựa chọn ứng dụng. Trong ví dụ này, chúng ta sẽ lựa chọn ứng dụng vừa tạo có tên là “day la ung dung test”. 
  • Số 3: nơi lựa chọn fanpage mà chúng ta đang cần truy vấn thông tin.  
  • Số 5: nơi lấy mã truy cập của ứng dụng. 
  • Số 6: nơi nhận mã sau khi đã hoàn thành tất cả truy vấn cần thiết. 

Sau khi lựa chọn xong Ứng dụng (số 2), chúng ta lấy mã Trang bằng cách nhấn vào “Lấy mã” (số 3), chọn “Nhận mã truy cập Trang”. 

Ứng dụng sẽ yêu cầu đăng nhập lại với tài khoản facebook quản trị page, chúng ta thực hiện đăng nhập theo các bước hướng dẫn. 

Sau khi đăng nhập, khi chúng ta nhấn chọn lấy mã, trong phần lựa chọn đã hiển thị thêm tên page của chúng ta quản trị, nhấn chọn page cần truy vấn thông tin.  

Tiếp theo chúng ta cần cấp quyền cho ứng dụng truy vấn thông tin trên Facebook page. Đối với các trường hợp cần lấy metrics về lượng tương tác, lượng hiển thị, page view,… chúng ta lựa chọn cấp quyền “read_insights”, và nhấn “Generate Access Token”. 

Tiếp theo, quay lại với thanh số 1, chúng ta thấy ở đây đã hiển thị câu truy vấn tên và ID của page như trong hình, nhấn “Gửi” và được trả về kết quả như sau:  

Trong trường hợp không hiển thị, chúng ta nhập: “me?fields=id,name“.

Sau đó, nhấn vào ID page vừa được truy vấn, chúng ta được đưa vào môi trường truy vấn của page đó như hình dưới. Cần lưu ý kiểm tra truy cập đúng môi trường page trước khi thực hiện các truy vấn tiếp theo. 

Trong phần “Tìm kiếm một trường”, chúng ta nhập “insights”, sau đó enter. Lúc này trong thanh nhập truy vấn, câu truy vấn sẽ có dạng: ID_page%fields=insights

Để truy vấn tiếp các metric, chúng ta sử dụng câu truy vấn có dạng: ID_page%fields=insights.metric(metric name) 

Ví dụ cần truy vấn metric sau:  

Nhập vào thanh truy vấn: ID_page%fields=insights.metric(page_engaged_users). Kết quả trả ra như sau: 

Trong trường hợp cần truy vấn nhiều metric, chúng ta sử dụng câu truy vấn dạng: ID_page%fields=insights.metric(metric name 1, metric name 2, metric name 3, metric name n) 

Chúng ta có thể giới hạn thời gian truy vấn theo một số ngày hoặc tuần nhất định, tuy nhiên chỉ áp dụng được với các metric có giá trị values for ‘period’ là day,week,days_28. Ví dụ cần truy vấn dữ liệu trong 90 ngày gần nhất, và giá trị của các metric được thống kê theo ngày, sử dụng câu truy vấn sau: ID_page%fields=insights.date_preset(last_90d).period(day).metric(metric name) 

Sau khi đã có kết quả truy vấn tất cả metric cần thiết, công việc tiếp theo là import tất cả dữ liệu này vào power query để xử lí và xây dựng báo cáo. Nhấn vào “Nhận mã” -> “cURL”, copy phần link hiển thị trong khung cURL này. 

Link có dạng:

curl -i -X GET \ 
“https://graph.facebook.com/v16.0/ID?access_token=abc123” 

Chúng ta chỉ copy phần link trong dấu ngoặc kép: https://graph.facebook.com/v16.0/ID?access_token=abc123 

Trong màn hình Power Query, chọn “New Source” -> “Web”.

Paste đường link vào ô URL -> “OK” 

2. Các bước transform trên power query 

Sau khi import dữ liệu vào Power Query, dữ liệu có dạng như sau:  

Chúng ta đổi tên query thành “f_page”. Tiếp theo, chúng ta cần chuyển dữ liệu này về dạng bảng, bằng thao tác như sau: chọn “Source” -> “Insert step after”

Trong khung query, chúng ta gõ câu lệnh: “= Table.FromRecords({Source})” và Enter. 

Dữ liệu lúc này đã chuyển về dạng bảng như hình:  

Bảng này tạm thời chưa hiển thị bất cứ trường, cột nào như chúng ta mong muốn. Vì vậy, cần thực hiện thêm một số bước transform để lấy được các giá trị cần thiết.  

Đối với các cột có giá trị “Record” như trong hình, chúng ta có thể mở rộng thêm dữ liệu bằng cách bấm vào nút mũi tên trong khung đỏ như trên hình và lựa chọn dữ liệu muốn mở rộng thêm trong bảng.  

Chúng ta thấy rằng sau khi mở rộng cột insights, bảng dữ liệu đã có thêm 2 cột mới. Quan sát thấy giá trị trong cột insights.data đang hiển thị “List”, chúng ta có thể nhấn vào ô có chứa giá trị này để quan sát các giá trị có trong list này. 

Để kiểm tra các record trong list này chứa giá trị nào, chúng ta có thể duplicate query f_page, đặt tên là f_page (2) (để tránh ảnh hưởng tới query đang xử lí), và nhấn vào ô chứa record để xem các giá trị của record đó.  

Quay lại với query f_page, nhấn vào mũi tên trên header cột insights.data, tiếp tục nhấn vào “Expand to New Rows”: 

Lúc này, giá trị trong cột insights.data đã chuyển thành record. Chúng ta tiếp tục thực hiện mở rộng cột. 

Chúng ta thấy rằng khi nhấn vào mũi tên trên header của cột insights.data sẽ hiển thị một bảng lựa chọn. Các cột trong bảng này chính là các cột giá trị chúng ta đã quan sát được trong query f_page (2). Chúng ta lựa chọn những cột dữ liệu cần thiết. 

Đây là kết quả sau khi đã expand tất cả các cột và remove những cột không cần thiết.  

Kiểm tra các giá trị trong bảng này, chúng ta nhận thấy:  

  • Name: là tên các trường thông tin chúng ta đã gọi trong Facebook API  
  • Value: là giá trị của các trường thông tin trên 
  • End_time: là thời điểm các giá trị trên được ghi nhận 
  • Id: là ID của fanpage 

Chúng ta nhận thấy việc hiển thị bảng như trên là chưa tối ưu. Mỗi giá trị trong cột name cần được hiển thị thành một cột riêng, có giá trị tương ứng theo từng ngày. Do đó chúng ta thực hiện pivot cột name bằng cách chọn cột name, sau đó vào “Transform” -> “Pivot Column”

Trong Values Column chọn cột “Value” và nhấn OK.

 Chúng ta có kết quả như sau: 

Cuối cùng, chúng ta chỉ cần thực hiện đổi tên và type cột để dễ quản lí dữ liệu.  

Lưu ý:

Một vài lưu ý nhỏ đối với việc đổi type của cột có chứa giá trị ngày tháng, thời gian:  

  • Đối với cột có chứa cả giá trị ngày tháng, thời gian: đầu tiên phải đổi về type date/time, sau đó mới đổi về type date. Nếu đổi trực tiếp về type date, dữ liệu sẽ bị lỗi.  
  • Khi tạo relationship với 1 bảng khác, 2 cột được nối với nhau cần có type giống nhau. Chúng ta vẫn có thể tạo relationship giữa 1 cột có dạng date và 1 cột có dạng date/time với nhau, nhưng việc này dễ gây ra lỗi khi sử dụng trong filter khi visualize báo cáo.  

Tổng kết:

Như vậy, chúng ta đã hoàn thành bước import data từ Facebook API Graph vào Power Query. Trong phần tiếp theo, chúng ta sẽ thực hành tiếp các bước trong phần mềm Power BI desktop, bao gồm xây dựng data model và tạo báo cáo.

Phần 2: Báo cáo hiệu quả fanpage trên Power BI với dữ liệu từ Facebook Graph API

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *