Skip to content
AnalyzeBrowse all guides
Analyze

Upload a Meta CSV Report

Add Reach, saves, shares and other private Instagram numbers to Analyze by uploading a CSV exported from Meta Business Suite.

Instagram doesn’t make Reach, saves or shares public. To see them in Analyze, you export a posts report from Meta Business Suite and upload it here. Orsa adds the numbers to your posts.

With enough CSV data, your report switches from Public data only to full data: the Reach, Shares and Saves cards appear, and engagement rate uses Reach instead of followers. See How Metrics Are Calculated.

Uploads work for Instagram only. You’ll find the Upload CSV button at the top right of Reports.

Quick start (5 minutes)

  1. In Meta Business Suite, export your Instagram posts report as a CSV. Cover your date range and the same length of time before it.
  2. Open Reports and click Upload CSV.
  3. Under Timezone of “Publish time” column, pick the timezone your Business Suite account uses.
  4. Click Click to upload or drag and drop and choose the file, or drag it in.
  5. Wait for CSV processed! with the number of posts created and updated.
  6. Reload the page. If 90% or more of the posts now have Reach, the Public data only badge is gone.

What the file needs

Required columns

Column What it holds
Permalink The post’s link, like https://www.instagram.com/p/ABC123/
Account username The Instagram username on your channel (capitalisation doesn’t matter)
Publish time When the post went out
Post type Reel, Photo, Carousel, Story and so on

The upload window lists all four. A file without the Post type column is rejected as a whole. Rows with an empty type, or a type not in the list below, are skipped with Missing Post type.

Accepted Post type values (any capitalisation): Reel, Reels, IG reel, Video, IG video, Photo, Image, IG image, Carousel, IG carousel, Album, Story, Stories, IG story.

Optional columns

Any of these are read when present:

  • Reach, Likes, Comments, Shares, Saves, Follows, Views
  • Replies, Profile visits, Link clicks, Sticker taps, Navigation
  • Duration or Duration (sec)
  • Description: used as the caption when the post doesn’t have one yet

Column names must match these exactly. Numbers can include commas, like 1,250.

Publish time formats

  • 2025-03-14 18:30:00
  • 03/14/2025 18:30
  • 2025-03-14

Example row: Permalink https://www.instagram.com/reel/C9xYz12/, Account username sunrisebakery, Publish time 03/14/2025 18:30, Post type IG reel, Reach 3,400, Likes 120, Comments 15, Shares 10, Saves 25.

Choose the right timezone

Meta writes Publish time in your Business Suite account’s timezone, not UTC. The upload window starts on your own timezone.

  1. Check which timezone your Business Suite account uses.
  2. Pick it under Timezone of “Publish time” column.

A wrong timezone shifts every post’s time by hours. Posts near midnight can then land on the wrong day, or in the wrong date range.

Example: your Business Suite uses New York time but you’re traveling in London. Pick America/New_York, not Europe/London.

Get the file from Meta

Export your posts report from Meta Business Suite as a CSV file.

Before you upload, open the file and check:

  • It has the Permalink, Account username, Publish time and Post type columns.
  • It includes Reach, plus any other numbers you want, like Saves and Shares.
  • It covers the dates you want to report on and the comparison period before them.

Upload the file

  1. Open Reports.
  2. Click Upload CSV at the top right. The Upload Meta CSV Report window opens.
  3. Pick the timezone.
  4. Click Click to upload or drag and drop and choose your .csv file. You can also drag the file onto that box.
  5. Wait while it shows Processing CSV…. Don’t close the window.

When it’s done, a message shows CSV processed! Created: 3, Updated: 42, with Skipped for other-platform rows and Errors for rows that couldn’t be used. Up to three error messages follow. The window closes and the whole report refreshes: the Overview on Average cards, the breakdowns and the Posts Table.

If the whole file is rejected (for example a missing required column), the error says which columns are needed.

What happens to each row

  • The post is already in Orsa: its numbers are updated.
  • The post isn’t in Orsa yet (for example a Story, or a post from before your channel was added): it’s created, if the username matches an Instagram channel on your brand. It counts under Created.
  • The row is for another platform, like Facebook: it’s skipped and counted under Skipped, not as an error.

One file can cover several Instagram accounts, as long as each is a channel on this brand.

Uploading the same file again is safe. It updates the same posts.

How the CSV turns on full data

A report shows full data when at least 90% of its posts have a Reach number. That counts posts in your date range and in the comparison period before it.

Example: you look at Last 30 Days. You uploaded a CSV for the last 30 days only. The 30 days before have no Reach, so only about half the posts are covered. The report stays Public data only. Upload a CSV that covers about two months.

Hover over the Public data only badge to see how many posts are covered, for example “72% of posts in this range and the comparison period before it have Meta CSV data”.

Tips for the best results

  • Export a little more than you need. Cover your date range and the period before it, or the report stays public only.
  • Check the timezone every time. It’s easy to leave it on your own timezone when Business Suite uses another one.
  • Upload regularly. Each upload only covers the dates in the file. A monthly upload keeps your reports on full data.
  • Use the same username as your channel. If your handle changed, update the channel’s Account Handle first. See Content Channels and Schedules.

Common questions

It says “Failed to upload CSV”. What’s wrong? The whole file was rejected. Check it’s a .csv file and has the Permalink, Account username and Publish time columns, spelled exactly like that.

It says “Please upload a CSV file”. The file doesn’t end in .csv. Save or export it as CSV and try again. Excel files (.xlsx) don’t work.

Some rows say “Missing Post type”. Each row needs a Post type from the accepted list, like Reel or Photo. Add the column to your export, fill in the blanks, or change unusual values to one on the list.

Some rows say “Social media account not found for username … on this brand”. The Account username doesn’t match any Instagram channel on this brand. Check the channel’s Account Handle matches the username in the file.

A row says the post “does not belong to this brand”. That post belongs to an account on another Orsa brand. Upload it from that brand.

I uploaded the CSV but still see “Public data only”. Reload the page first. If it’s still there, fewer than 90% of the posts in your dates and the period before them have Reach. Upload a file that covers both, or pick a date range your file covers.

Saves and Shares on a recent post went back to 0. Orsa re-reads recent posts from Instagram, but it no longer overwrites Saves and Shares from your CSV when Instagram doesn’t report them. If numbers were reset before this change, upload the CSV again.

Can I upload Facebook, TikTok or other platforms? No. Only Instagram rows are used. Other rows are skipped.

Do I need to upload a CSV at all? No. Without one, Analyze still shows likes, comments, views and an engagement rate based on followers. You only miss Reach, saves, shares and the other private numbers.

Was this helpful? Tell us what worked or what was missing athello@orsa.social.