Impressions is a meaningless metric from the performance point of view. It tells you how many times your ad was printed (in the newsfeed, in Instagram, in iPhones), but if your ad was shown one or one million times, it doesn’t make any difference to your campaigns.
It could be a good indicator of poor traction: if your ad is not getting any impression it’s very likely you are in a crowed big-budget auction, and you need to run away scared.
Since you don’t own Facebook users, you are paying to reach them. And reach is much more meaningful because it tells you how many people your ads have touched so far.
An impression has a cost, so reaching people has a cost. The cost is calculated based on multiple factors that are outside the scope of this post.
In theory, the more money you spend, the more people you reach. Then if you divide the amount spent / people reached, you have a cost per reach.
Facebook does this calculation for you with the Cost per 1,000 People Reached metric, which is the same as (amount spent / people reached) * 1000.
This metric is a powerful indicator of performance. If you are reaching 1,000 people and no one (no one) is turning into a lead, paid customer, volunteer, or whatever is your conversion event, it is a bad sign, your audience and message are not mixing well together.
If you go to your FB Ads Reporting tool and export to CSV the following columns: Country, Reach, Results, Amount Spent (USD), Cost per Result, Cost per 1,000 People Reached, save it as country.csv, then you can run the following script in the same folder, and get a graph like this one:
It is a country-level breakdown (you could analyze this by any other dimensions), that will tell you if reaching (1,000) people in that country is costing you more than acquiring results.