Measuring your Facebook and Instagram posts' performance

Learn how to build a report to measure your Facebook/Instagram posts' performance

Intro

With almost 2B daily active users, Facebook is the place to be to conduct your Social Media activity. After the acquisition by Facebook, Instagram's active users ramped up to 500M per day, making it the go-to destination for highly visual communication.

If you have a business or a creator account, Facebook and Instagram offer you a quite complete dashboard to monitor your posts’ performances. But whenever you need to compare, consolidate or simply analyze your latest data, chances are, you need to export a .csv and import it on a spreadsheet.

In this short guide, we’ll walk you through everything you need to create a dynamic report that pulls data directly from Facebook into your Rows spreadsheet. Here’s a sneak peek at what you will get:

fb post report intro

Facebook engagement glossary

Before getting started, let's go briefly through some definitions. Facebook offers its members a broad range of analytics to understand how their posts are performing.

  • Impressions are the total number of exposures to your content. This can include the same person seeing your content multiple times.

  • Likes are the total number of like your post has received

  • Clicks are the total number of clicks generated by your post on any external link present in the text, such as mentions or URLs, including profile visis

  • Shares are the total number of times a post is shared, within or outside the LinkedIn platform.

  • Engagement is the sum of all interactions with the post, divided by total impressions.

Get a Facebook posts report

Check this out

To enable the Facebook or Instagram integration in Rows, you must have respectively:

  • a Facebook page
  • an Instagram Business or Creator account, linked to a Facebook Page

See here how to set up a Creator account on Instagram.


First of all, use our template at the following link Facebook post report and save it in one of your workspace's folders.

To deeply understand how it's been built, let's reverse-engineer it together.

First of all, you need to enable the data connection and connect your Facebook Page to Rows. Click on the top modal (or this link) then follow the instructions. The typical Auth page will open: enter your Facebook credentials and authorize Rows to retrieve your data.

Now you are back on the spreadsheet, ready to set it up. In cell B1 of the Setup table, input the name of the account you want to track, for example, Rows. Cell B2 contains LASTXDAYS(90), a function that creates a dynamic date range starting from today and going 90 days backward.

Screenshot 2022-09-05 at 22.48.49-2

B4 is a data cell. In Rows, a data cell stores more than a string or a number, the typical content of standard spreadsheets' cells. Here, it has been generated by our GET_ACCOUNT_POSTS_FACEBOOK() function, that uses cells B1 and B2 as arguments to retrieve data, and stores all posts details from your Facebook account.

1              =GET_ACCOUNT_POSTS_FACEBOOK(B1,,B2)

To see how Rows turned this data cell into a readable table, click on the ... icon to the right of cell B1 and hit Create a table. The wizard will open on the right-hand side.

Screenshot 2022-09-05 at 22.51.30

Here we chose the following table headers, which are the metrics we want to display in the table columns: id, permalink_url, message, and created_time. The post_id will then be used as the argument to retrieve further details about the post.

The output table is the following:

Screenshot 2022-09-14 at 17.53.05

As you may see, column E includes a further data cell. Specifically, we used Rows GET_POST_INSIGHTS_FACEBOOK() to pull post-specific performance details for any post, using the post_id as the only argument.

To understand how we configured it, click on the ... menu in cell E2 and hit Edit function. You need only to fill the the post id field, here with the reference =A2 and trigger the function.

Here, we chose to trigger it through AUTOFILL(), a proprietary Rows function that must be always placed in the column header and include the following mandatory arguments: the column title in quotation marks and the formula to be filled in the column itself - in this case, the GET_POST_INSIGHTS_FACEBOOK().

Screenshot 2022-09-05 at 23.34.29

Like all other data cells in Rows, column E needs to be expanded to be properly read. To do this, we clicked on the ... icon in cell E2 and hit View data: a right end side panel will open, showing a structured document (in JSON format).

Screenshot 2022-09-05 at 23.00.46

Next to each level of the JSON, there is a COPY button. To pick the right one we need to understand how the JSON is structured: at the highest level, each metric is identified by a number (0 {6}, 1 {6}, 2 {6}, and so on). Each metric has some sub-properties, including the name, period, description, and value. We hit COPY() on the sub-property 'value' and paste the content in cell F2: you will obtain a formula similar to the following, that uses our PARSE() function to read and extract specific data points from any JSON document. The first argument is the data cell E2, and the second includes the path to follow to retrieve that specific data point.

1    =AUTOFILL("Engaged users",PARSE(E2,"[0].values[0].value",""))

To automate the data retrievement for all posts, without having to drag down the formula, we enclosed it in the AUTOFILL() function and did the same for all the following metrics: Engaged users Clicks, Unique clicks, Impressions, Unique impressions, Total like. The final result is a comprehensive view of all your Facebook posts with all the main engagement KPIs.

Get an Instagram posts report

Check this out

To enable the Facebook or Instagram integration in Rows, you must have respectively:

  • a Facebook page
  • an Instagram Business or Creator account, linked to a Facebook Page

See here how to set up a Creator account on Instagram.


First of all, use our template at the following link Instagram post report and save it in one of your workspace's folders.

The logic of this template is pretty much identical to the previous one. Let's reverse-engineer it together.

First of all, you need to enable the data integration and connect your Instagram account to Rows. Click on the top modal (or this link) then follow the instructions. The typical Auth page will open: enter your Instagram credentials and authorize Rows to retrieve your data.

Now you are back on the spreadsheet, ready to set it up. In cell B1 of the Setup table, input the name of the account you want to track, for example, "RowsHq".

Screenshot 2022-09-20 at 18.35.33

B4 is a data cell. In Rows, a data cell stores more than a string or a number, the typical content of standard spreadsheets' cells. Here, it has been generated by our GET_ACCOUNT_POSTS_INSTAGRAM() function, that uses cells B1 and B2 as arguments to retrieve data, and stores all posts details from your Facebook account.

1              =GET_ACCOUNT_POSTS_INSTAGRAM(B1)

To see how Rows turned this data cell into a readable table, click on the ... icon to the right of cell B1 and hit Create a table. The wizard will open on the right-hand side.

Screenshot 2022-09-20 at 18.36.13

Here we chose the following table headers, which are the metrics we want to display in the table columns: id, permalink_url, message, and created_time. The post_id will then be used as the argument to retrieve further details about the post.

The output table is the following:

Screenshot 2022-09-20 at 18.36.39

As you may see, column E includes a further data cell. Specifically, we used Rows GET_POST_INSIGHTS_INSTAGRAM() to pull post-specific performance details for any post, using the post_id as the only argument.

To understand how we configured it, click on the ... menu in cell E2 and hit Edit function. You need only to fill the the post id field, here with the reference =A2 and trigger the function.

Screenshot 2022-09-20 at 18.47.52

Here, we chose to trigger it through AUTOFILL(), a proprietary Rows function that must be always placed in the column header and include the following mandatory arguments: the column title in quotation marks and the formula to be filled in the column itself - in this case, the GET_POST_INSIGHTS_INSTAGRAM(A2).

1                   =GET_POST_INSIGHTS_INSTAGRAM(A2)

Like all other data cells in Rows, column E needs to be expanded to be properly read. To do this, we clicked on the ... icon in cell E2 and hit View data: a right end side panel will open, showing a structured document (in JSON format).

Screenshot 2022-09-20 at 18.37.34

Next to each level of the JSON, there is a COPY button. To pick the right one we need to understand how the JSON is structured: at the highest level, each metric is identified by a number (0 {6}, 1 {6}, 2 {6}, and so on). Each metric has some sub-properties, including the name, period, description, and value. We hit COPY() on the sub-property 'value' and paste the content in cell F2: you will obtain a formula similar to the following, that uses our PARSE() function to read and extract specific data points from any JSON document. The first argument is the data cell E2, and the second includes the path to follow to retrieve that specific data point.

1        =AUTOFILL("Impresions",PARSE(G2,"[0].['value']"))

To automate the data retrievement for all posts, without having to drag down the formula, we enclosed it in the AUTOFILL() function and did the same for all the following metrics: Engaged users Clicks, Unique clicks, Impressions, Unique impressions, Total like. The final result is a comprehensive view of all your Facebook posts with all the main engagement KPIs.

Schedule automation

Instead of coming back to the spreadsheet and triggering the function manually, you can also use Rows proprietary SCHEDULE() function to fetch posts automatically based on your target frequency, i.e. weekly.

Add SCHEDULE() function to cell B5 of the Setup table: use B3 - our GET_ACCOUNT_POSTS_FACEBOOK() - as the first argument and pick a refresh schedule as a second, i.e. "every monday 08:00". To make sure your date range will update too, add SCHEDULE() function to cell B6, having as argument the cell B2 and the same schedule as above.

1    =SCHEDULE(GET_ACCOUNT_POSTS_FACEBOOK(B1,,B2),"every monday 08:00")

In so doing, Rows will refresh the data for you at the defined schedule and update the 'Post insights' table accordingly.

You might also like