On Facebook Insights UI there is a section called "Reach".
Using page_impressions_unique of Insights API (which is supposed to carry the "Reach" value) I get a value which is 1/3 of the one appearing on UI. It seems they add some other metrics but it's not clear how to get that very same value using page metrics from Insights API.
https://developers.facebook.com/docs/graph-api/reference/v2.8/insights
Does anyone have any clue about it?
Reach in Facebook Ads Manager does not equal page_impressions_unique or even contain it. page_impressions_unique is a form of non-advertising, organic reach for your page; namely people who visited your page based on non-ads activity on Facebook.
Reach in Ads Manager is the number of unique ad impressions that Facebook delivered to people.
To see a full list of insights-related fields in our UIs as they map to the API, see "Metrics Names and API Fields" here https://developers.facebook.com/docs/marketing-api/insights
Related
I am working on facebook api. I can get total impression and clicks etc. data from facebook campaigns stats report. But my requirement is to get each impression in individual line. For example if campaign stats report shows 100 impression than I want to know 100 impression individually where they shown. Can anybody help me how I achieve this functionality of facebook marketing api.
Thanks
Hej,
You can breakdown the data by platform, device and such (check Facebook API Documentation about Breakdowns ) but as far as I am aware the API always aggregates Views that come from the same source or occurred in the same timeframe.
I'm trying to get reach using the graph api for the previous 7 days.
For this I used
me/insights?metric=page_impressions_unique&period=day&since=1462924800&until=1463529600
The problem is that the total reach returned by the above url is not equal with the reach displayed on the facebook website/ insights tab(please see the fig1 for more details).
Using the api I get Reach 2293, BUT facebook displays 494 people reached, for the same period of time.
I'm thinking that maybe i'm not using the same metric as facebook does, maybe they are displaying the reach per post and not per page, but this is only my theory.
Can you please help me out to determine the same value as facebook does?
Thanks,
Catalin
The issue is with you query. You're querying for the metrics on yourself. Replace 'me' with the page id.
<page_id>/insights?metric=page_impressions_unique&period=day&since=1462924800&until=1463529600
I'm trying to fetch the endpoint /me/home from the Facebook graph API v2.1.
Using the Graph API Explorer tool, I get good results that look like what the facebook mobile app displays. But when I switch to my app and simulate the exact same call with the exact same permissions, the results are different and include a lot of non relevant posts (such as "ARandomFriend liked a link").
The only difference beetween the two calls is the access token (same scope, same permissions, same user). My guess is that facebook voluntarily returns a less relevant feed to third party apps so that people can't build apps that can compete with them.
But maybe I'm wrong, does anyone know something about this ?
This is similar to
Some posts not visible on the feed through Graph API /me/home
and
Facebook SDK for .NET and Graph API Explorer news feed mismatch
The reason is Facebook "scores" nodes to derive the most "Top Story". Low scoring nodes are by default not visible. You can force all nodes with
/me/home.filter(owner)<some_filters like fields requests>
There is no documentation on WHY this actually works, but it does. You can also force all nodes that are Likes or Comments by doing the following
me/posts?fields=likes.filter(stream),comments.filter(stream)
I'm trying to figure out how to get the total number of comments, posts, likes and fans for any given Facebook fan page and date range using the Facebook API's. I need to be able to do this without the user having to log into Facebook to give the app permissions. This does seem to be possible, as this site is able to do it https://app.conversocial.com/profiler/ .But I don't know how they are doing it.
I've looked into the 'insights' fql table, but this always seems to return empty results. And I've also looked into the 'link_stats' fql table but this doesn't allow a date range to be set.
Does anyone have any idea on how to do this?
You are right. What they are doing is not possible by using the normal Graph API or/and the FQL.
However, Facebook also provides support for two other APIs:
Public Feed API
Keyword Insights API
Access to these APIs is restricted to a limited set of media publishers and usage requires prior approval by Facebook.
I think that they are using the Public Feed API. The documentation of the Public Feed API lists some of the publishers that have been using this API and the site you've mentioned in the question is not in the list. The documentation also doesn't mention anything about getting the Page Insights, but I think it might support this feature (as I see no other way of doing it).
Or, they might be using any other such restricted API which is not yet available to the public and not even documented on the developers website, but is currently in beta/testing phase.
To get the number of fans and the talkabout count, just query the appropriate Open graph ID for the relevant page. For example, for Coca Cola (https://www.facebook.com/cocacola) this is done via
https://graph.facebook.com/40796308305
To get all public infos (Posts etc) use the following request
https://graph.facebook.com/40796308305/feed?access_token={ACCESS_TOKEN}
where {ACCESS_TOKEN} can either be an App Access Token or a personal one. Consider that you can only see public entries.
The ability to query the date ranges is not provided via Facebook ad far as I know. I guess the https://app.conversocial.com/profiler/ application queries each page that is in its index once a day, and saves the results. That's how they're able to provide historical data.
You can try with the following FQL queries or graph API requests for facebook pages,
Graph API
http://graph.facebook.com/nb4cinema
FQL
SELECT name,about,description, fan_count,talking_about_count FROM page WHERE username= 'stackoverflowpage'
In case of FQL tables:
To read the page table you need
no access_token to get public information, or information about public pages that are not demographically restricted.
any valid access_token to get all information about a page that the current session user is able to see.
We have a test fan page. This has poor figures (<10 fans). Statistics are not available due to the lack of fans and likes on that page.
Allthough, conversocial spits out some statistics. They mixed fans and likes to some extent and so my impression is, that they simply parse the page code in order to get what you see.
I have a page that links to my app. and this page has an increasing number of "likes".
We want to know how many of the FB users who have "liked" our page have authorized our app.
Per Querying Users who 'like' my Facebook Page, it doesn't appear that I can get the list of "likers" of my page in order to correlate the FB ids against my user base for the app.
Two questions:
1) Is there an existing Insights metric that I should be using to get this information? This does seem like a special kind of "conversion" (from page - liker to app - user).
2) The only other option I see is scraping the output of
https://www.facebook.com/browse?type=page_fans&page_id=PAGE_ID
which some have suggested violates the FB TOS (why is that, btw?). Does anyone have any other suggestions?
3) Upon further reflection, it occurs to me that I can come at this problem from the app instead. I should be able to get likes for my app users and see if my page is among them. Can anyone verify if this will work?
Many thanks,
Wes
No, you'd need to manually calculate this by using the user's access token when they're using your app to see if they like the page - Facebook's API will not give you a list of users of your app or a list of likers of a page