The Sisense Facebook connector is a standalone connector that allows you to import data from various Facebook APIs into the ElastiCube Manager. After you have downloaded and installed the connector, you can connect to Facebook through a connection string you provide Sisense in the ElastiCube Manager. The connection string is used to authenticate users who connect to Facebook’s APIs. To obtain a connection string, you will need to create a Facebook developers account.

Once you have connected to Facebook, you can import a variety of tables from multiple Facebook APIs.

This page describes how to install the Facebook connector, how to connect to Facebook with a connection string, and what tables you can import into the ElastiCube Manager:

Breaking Changes for the Marketing API Version 2.8

As of July 25, 2017, Facebook no longer supports their Marketing API version 2.8. Currently, all users whose Facebook app is v2.8 will receive an error. To overcome this issue, add the parameter ‘Version=2.10’ to the connection string.

For more information about the latest version of the Marketing API, see Facebook’s blog posts.

Installing the Facebook Connector

Sisense provides the Facebook connector as a standalone connector that you can download and add to your list of default Sisense connectors.

To install the Facebook connector:

  1. Download the Facebook installation file.
  2. Open the installation file and click Install.
  3. After the installation process is complete, click Close.

The Facebook connector is displayed in the ElastiCube Manager under Add Data > Web Services.

facebook1

Connecting to the Facebook REST API

To access Facebook’s data from Sisense, you must provide valid Facebook credentials in a connection string.

This section describes how to create a Facebook app to retrieve the necessary authentication parameters for the connections string and then how to construct the connection string.

Note: If you have already created a connection string for the Facebook Ads connector, you can use the same credentials in the Facebook connection string.

Creating an App

The credentials you need to connect to your data in Facebook are provided by Facebook when you create a Facebook app through the Facebook Developer site.

For more information, see Creating an App in Facebook.

Authenticating through Facebook

After setting the following connection properties, you are ready to connect:

  • OAuthClientId: Set this to the App ID in your app settings.
  • OAuthClientSecret: Set this to the App Secret in your app settings.
  • CallbackURL: Set this to the Return URL in your app settings.
  • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to avoid repeating the OAuth exchange and manually setting the OAuthAccessToken connection property.

Note: When switching accounts, you must sign out of your account and then sign it with the new account.

Adding Facebook Tables to your ElastiCube

Sisense uses connection strings to connect to Facebook and import data into the ElastiCube Manager. Each connection string contains a authentication parameters that the data source uses to verify your identity and what information you can export to Sisense. To learn more, see Connection String Parameters.

To add Facebook data:

  1. In ElastiCube Manager, click Add Data and then, Facebook. The Connect to Facebook window is displayed.
    facebook2
  2. In Datasource Connection String, enter your connection string.
  3. Click Connect to Server. Facebook is displayed in the Select Database list.
  4. Click OK. Sisense connects to Facebook and displays a list of tables available for you to import. For a list of tables you can import, see Facebook Tables.
  5. Select the relevant tables and click Add. The tables are displayed in the ElastiCube Manager.

Tip: Facebook leverages the Facebook Graph API, however, this API includes user request limitations. To overcome these limitations, try to reduce the date range or query fewer tables for a single build. For more information, see Facebook’s Graph API limitations.

Switching between Accounts

When you connect to the Facebook data source, Sisense saves your OAuth values in the file OAuthsettings.txt file located at …\Users\xxx\AppData\Roaming\CData\Facebook Data Provider on your Sisense server. To connect to the Facebook data source with another user on the same machine, you must delete the OAuthsettings.txt file. Sisense will then generate a new file for that user.

Another option to support multiple users is to define the location and file name of an OAuthsettings file for each unique user in your connection string through the OAuthSettingsLocation parameter. When each user connects to the data source, Sisense generates the OAuth file with the file name you specify in the location you define. In the examples below, two users are allowed to access the Facebook data source and for each user, Sisense generates a file that contains that user’s OAuth values in the location defined in the string.

jdbc:facebook:OAuthSettingsLocation=C:\facebook\auth\john.txt;OAuthClientId=11276856774486;OAuthClientSecret

=064c70d78567jm2b7e7e4224fad;InitiateOAuth=GETANDREFRESH;Version=2.8;CallbackURL=http://localhost/;

jdbc:facebook:OAuthSettingsLocation=C:\facebook\auth\sally.txt;OAuthClientId=11276856774486;OAuthClientSecret

=064c70d78567jm2b7e7e4224fad;InitiateOAuth=GETANDREFRESH;Version=2.8;CallbackURL=http://localhost/;

In the example above, to OAuth files are created, one for John and one for Sally in the location C:\facebook\auth\.

This is useful if you support many users who each need to access the Facebook data source.

Facebook Tables

The table below describes the tables you can import from various Facebook APIs. Facebook limits the number of calls and the amount of data that you can retrieve from their APIs. These limitations depend on which Facebook API you are using and your account type. When you reach a limit, Sisense returns the error provided by Facebook. For example, if you receive any of the following error codes, this usually indicates that you have reached one of Facebook’s limitations:

  • error code = 4, CodedException
  • error code = 32, CodedException
  • error code = 17,  User request limit reached

If you encounter one of these errors, refer to the Facebook API that exposed the table for more details regarding that API’s limitations.

Note: Some Facebook tables require custom SQL, the table below provides examples of custom SQL statements you can use to access the relevant table.

Available Tables

 

NameDescription
CommentsQuery the Comments for a Target. Comments may also be inserted based on a Target or deleted based on Id.

When querying comments, either the Target or the Id of the comment must be specified. For example, to retrieve all the comments about a specific post, your SELECT statement could look something like this:

SELECT * FROM Comments WHERE Target = '15526475270_410830705612736'

Alternatively, you can specify the Id to retrieve a specific comment. For example: SELECT * FROM Comments WHERE Id = '15526475270_410830705612736_5193593'

The following is an example in which dynamic targets have been implemented:

SELECT * FROM Comments where target in (SELECT ID FROM Posts where target in (select ID from Pages ))
LikesQuery the Likes for a Target. Alternatively, lists Pages that the specified User or Page Likes. Authentication is required to use this table.

The following is an example in which dynamic targets have been implemented:

SELECT * FROM Likes where target in (SELECT ID FROM Posts where target in (select ID from Pages ))
MilestonesQuery a list of Milestones for the given Page. Milestones may only be inserted, updated, or deleted when authenticating as the target Page. Unless you are using the option Authenticate As Page, you need to supply a Target when retrieving milestones. For instance:

SELECT * FROM Milestones WHERE Target='facebook'
PostsQuery the Posts for a Target based on either the Target or Id. Posts can also be inserted based on a Target, or deleted based on Id. This table requires authentication.

The following is an example in which dynamic targets have been implemented:

SELECT * FROM Posts where target in (SELECT ID FROM Pages)
UsersQuery Users by SearchTerms or Id.

 

Available Views

 

NameDescription
AdAccountsQuery the Ad Accounts available for a User. Accessing Ad Account information requires the ads_read permission.
AdCreativesQuery information about an Ad Creative or the Ad Creatives on a specific Ad Account, Ad Set, or Ad. Accessing Ad Creative information requires the ads_read permission.

The following is an example in which dynamic targets have been implemented:

SELECT * FROM AdCreatives where target in (select ID from AdAccounts);
AdInsightsQuery an Ad Report. Accessing Ad Report information requires the ads_read permission.

When requesting AdInsights, a Target must be specified. This indicates what element to retrieve the insights from. It can be an AdAccount, Campaign, AdSet, or an Ad. For example:

view source SELECT * FROM AdInsights WHERE Target = 'act_123456'

A date range can be specified using DateStart and DateEnd, or DatePreset must also be specified. For example:

view source SELECT DateStart, DateEnd, AdAccountId, Spend, Impressions FROM AdInsights WHERE Target = 'act_123456' AND DateStart >= '01/01/2015' AND DateEnd <= '03/31/2015'

view source SELECT DateStart, DateEnd, AdAccountId, Spend, Impressions FROM AdInsights WHERE Target = 'act_123456' AND DatePreset='last_90_days'

The available values for DatePreset are:

  • today
  • yesterday
  • this_week
  • last_week
  • last_7_days
  • last_14_days
  • last_28_days
  • last_30_days
  • last_90_days
  • this_month
  • last_month
  • this_quarter
  • last_3_months


The TimeIncrement can used to specify how many days should be included in each report row. For instance:

view source SELECT DateStart, DateEnd, AdAccountId, Age, Spend, Impressions FROM AdInsights WHERE Target = 'act_123456' AND DatePreset='last_90_days' AND TimeIncrement='7' view source SELECT DateStart, DateEnd, AdAccountId, Age, Spend, Impressions FROM AdInsights WHERE Target = 'act_123456' AND DatePreset='last_90_days' AND TimeIncrement='monthly'

The Level column can be used to specify what level insights are retrieved at. This can be set to ad,adset,campaign, or account. For example: view source SELECT DateStart, DateEnd, AdAccountId, Age, Spend, Impressions FROM AdInsights WHERE Target = 'act_123456' AND Level='campaign' The following is an example in which dynamic targets have been implemented:

SELECT Target, DateStart, DateEnd, AdAccountId, AdAccountName, CampaignId, CampaignName, AdSetId, AdSetName, AdId,AdName, Placement, Clicks, CPC, CPM, CPP, CTR, Frequency, Impressions, Reach, Spend, TotalActions, TotalUniqueActions, UniqueClicks, UniqueCTR, WebsiteClicks FROM AdInsights where target in (SELECT ID FROM AdAccounts ) and level='ad' and DatePreset='last_7_days' and TimeIncrement=1
AdInsightsActionsQuery an Ad Report. Accessing Ad Report information requires the ads_read permission.

AdInsightsActions represents a breakdown of the Actions column from the AdInsights. See AdInsights for general information on querying AdInsights.

When requesting AdInsightsActions, a Target must be specified. This indicates what element to retrieve the insights from. It can be an AdAccount, Campaign, AdSet, or an Ad. For instance:

SELECT * FROM AdInsights WHERE Target = 'act_123456'

In comparison to all of the available selection criteria from AdInsights, only the breakdowns listed below are available. Other than that, ActionAttributionWindows is available to input a comma separated list of attribution windows. For instance:

SELECT * FROM AdInsightsActions WHERE Target='act_123456' AND level='ad' AND ActionAttributionWindows='1d_view,7d_view,28d_click'

Columns

Age:  The age range for the metrics in this row. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
Country: The country for the metrics in this row. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
FrequencyValue:  The number of times an ad in your Reach and Frequency campaign was served to each person. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
Gender:  The gender for the metrics in this row. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
HStatsByAdvertiserTZ: Time period over which the stats were taken for the advertiser. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
HStatsByAudienceTZ: Time period over which the stats were taken for the audience. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
ImpressionDevice: The devices used to view the Ad. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
Placement: The placement of the Ad on the screen. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
PlatformPosition: The position on the platform.
ProductId: The product Id advertised in the Ad. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.
PublisherPlatform: The platforms the ads were published on.
Region: The region someone viewed the Ad from. This is a breakdown column and selecting this column will cause results to be further broken down by this metric.

The following is an example in which dynamic targets have been implemented:

select Target, DatePreset, DateStart, DateEnd, TimeIncrement, Level, ActionAttributionWindows, AdAccountId, AdAccountName, CampaignId, CampaignName, AdSetId, AdSetName, AdId, AdName, ActionType, ActionValue, Action1dClick, Action1dView, Action7dClick, Action7dView, Action28dClick, Action28dView, ActionCarouselCardId, ActionCarouselCardName, ActionDestination, ActionDevice, ActionReaction, ActionTargetId, ActionVideoSound, ActionVideoType FROM AdInsightsActions where target in (SELECT ID FROM AdAccounts ) and level='ad' and DatePreset='today' and TimeIncrement=1 and ActionAttributionWindows='1d_view,1d_click,7d_view,7d_click,28d_view,28d_click'
AdsQuery information about an Ad or the Ads in a specific Ad Set, Campaign, or Ad Account. Accessing Ad Information requires the ads_read permission. The following is an example in which dynamic targets have been implemented:

select * from Ads where target in (SELECT ID FROM AdAccounts ) and AdStatus='ACTIVE'
AdScheduledReportsQuery the Scheduled Reports for a given Ad Account. Accessing Scheduled Report information requires the ads_read permission.
AdSetsQuery information about an Ad Set or the Ad Sets on a specific Campaign or Ad Account. Accessing Ad Set information requires the ads_read permission.
AlbumsQuery Albums associated with a Target. Accessing Album information typically requires the user_photos permission.
ApplicationsQuery the Application specified by the Id.
BooksQuery the Books a User is interested in. Accessing Book information typically requires the user_books permissions.
CampaignsQuery information about a Campaign or the Campaigns on a specific Ad Account. Accessing Campaign information requires the ads_read permission.

For example:

SELECT * FROM Campaigns WHERE Target = 'act_123456'

The following is an example in which dynamic targets have been implemented:

SELECT * FROM Campaigns where Target in (SELECT ID FROM AdAccounts ) and Status='ACTIVE'
EventsQuery the Events for a Target based on either the Target or SearchTerms. May require the user_events permission.
FriendsQuery Friends of the authenticated User or Target User. Requires the user_friends permission. A Target may be specified to request Friend information for, but Friends may only be retrieved for the authenticated User or Friends of the authenticated User that use the same Facebook app.
GamesQuery the Games a User is interested in. Accessing Game information may require the user_likes and user_interests permissions.
GroupsQuery the Groups based on the supplied SearchTerms, Id, or Target. Groups may require the user_groups permission.
GroupMemberShipsQuery the Groups based on the supplied GroupId. Groups may require the user_groups permission. GroupMemberships in Facebook are the individual members of a given group. GroupMemberships are currently only exposed as a view.

When selecting group memberships, a GroupID must be specified. For example, to retrieve the members of a group:

SELECT * FROM GroupMemberships WHERE GroupId = 'GroupId'

SELECT * FROM GroupMemberships WHERE GroupId in (select ID from Groups)
InsightsByConsumptionTypeAllows retrieval of insights by consumption type.

SELECT *
FROM InsightsByConsumptionType
where target ='xxxxxxx' and InsightName = 'PAGE_CONSUMPTIONS_BY_CONSUMPTION_TYPE' and Period = 'day'


The following are values for the parameters InsightName:

PAGE_CONSUMPTIONS_BY_CONSUMPTION_TYPE
PAGE_CONSUMPTIONS_BY_CONSUMPTION_TYPE_UNIQUE
InsightsByFeedbackTypeAllows retrieval of insights by feedback type.

SELECT *
FROM InsightsByFeedbackType
where target ='xxxxxxx' and InsightName = 'PAGE_NEGATIVE_FEEDBACK_BY_TYPE' and Period = 'day'

The following are values for the parameters InsightName:

PAGE_NEGATIVE_FEEDBACK_BY_TYPE
PAGE_NEGATIVE_FEEDBACK_BY_TYPE_UNIQUE
PAGE_POSITIVE_FEEDBACK_BY_TYPE
PAGE_POSITIVE_FEEDBACK_BY_TYPE_UNIQUE
POST_NEGATIVE_FEEDBACK_BY_TYPE
POST_NEGATIVE_FEEDBACK_BY_TYPE_UNIQUE
InsightsByLikeSourceTypeAllows retrieval of insights by like source type.

The following are values for the parameters InsightName:

PAGE_FANS_BY_LIKE_SOURCE
PAGE_FANS_BY_LIKE_SOURCE_UNIQUE
PAGE_FANS_BY_UNLIKE_SOURCE_UNIQUE
InsightsByPaidStatusAllows retrieval of insights by paid status.

The following are values for the parameters InsightName:

PAGE_IMPRESSIONS_BY_PAID_NON_PAID
PAGE_IMPRESSIONS_BY_PAID_NON_PAID_UNIQUE
POST_IMPRESSIONS_BY_PAID_NON_PAID
POST_IMPRESSIONS_BY_PAID_NON_PAID_UNIQUE
PAGE_POSTS_IMPRESSIONS_BY_PAID_NON_PAID
PAGE_POSTS_IMPRESSIONS_BY_PAID_NON_PAID_UNIQUE

The following is an example in which dynamic targets have been implemented:

SELECT EndTime as Date, Paid, Unpaid FROM InsightsByPaidStatus where target in (SELECT ID FROM Pages) and InsightName = 'PAGE_IMPRESSIONS_BY_PAID_NON_PAID' and Period = 'day
InsightsByTabTypeAllows retrieval of insights by tab type

The following are values for the parameters InsightName:

PAGE_TAB_VIEWS_LOGIN_TOP_UNIQUE
PAGE_TAB_VIEWS_LOGIN_TOP
PAGE_TAB_VIEWS_LOGOUT_TOP
LeadValuesQuery information about a lead. Accessing Lead Information requires the ads_read permission.
MusicQuery the Music a User is interested in. Accessing Music requires the user_likes and user_interests permissions.
PagesQuery the Pages based on the supplied SearchTerms or Id.
PermissionsQuery the Permissions the User has granted the current application.
PhotosQuery Photos associated with a Target. Accessing Photo information typically requires the user_photos permission.
PlacesQuery the Places based on the supplied SearchTerms or Id. Places are stored as Pages in Facebook.
ScheduledReportRunsQuery a list of the recently completed runs of a given Scheduled Report. Accessing Scheduled Report information requires the ads_read permission.
SimpleInsightsAllows the retrieval of simple insights with a single value in the response.

The following are values for the parameters InsightName:

PAGE_STORIES
POST_STORIES
POST_STORYTELLERS
PAGE_IMPRESSIONS
PAGE_IMPRESSIONS_UNIQUE
PAGE_IMPRESSIONS_PAID
PAGE_IMPRESSIONS_PAID_UNIQUE
PAGE_IMPRESSIONS_ORGANIC
PAGE_IMPRESSIONS_ORGANIC_UNIQUE
PAGE_IMPRESSIONS_VIRAL
PAGE_IMPRESSIONS_VIRAL_UNIQUE
PAGE_IMPRESSIONS_FREQUENCY_DISTRIBUTION
PAGE_IMPRESSIONS_VIRAL_FREQUENCY_DISTRIBUTION
PAGE_ENGAGED_USERS
PAGE_CONSUMPTIONS
PAGE_CONSUMPTIONS_UNIQUE
PAGE_PLACES_CHECKIN_TOTAL
PAGE_PLACES_CHECKIN_TOTAL_UNIQUE
PAGE_PLACES_CHECKIN_MOBILE
PAGE_PLACES_CHECKIN_MOBILE_UNIQUE
PAGE_NEGATIVE_FEEDBACK
PAGE_NEGATIVE_FEEDBACK_UNIQUE
PAGE_FANS_ONLINE
PAGE_FANS_ONLINE_PER_DAY
PAGE_FANS
PAGE_FAN_ADDS
PAGE_FAN_ADDS_UNIQUE
PAGE_FAN_REMOVES
PAGE_FAN_REMOVES_UNIQUE
PAGE_VIEWS
PAGE_VIEWS_UNIQUE
PAGE_VIEWS_LOGIN
PAGE_VIEWS_LOGIN_UNIQUE
PAGE_VIEWS_LOGOUT
PAGE_VIDEO_VIEWS
PAGE_VIDEO_VIEWS_PAID
PAGE_VIDEO_VIEWS_ORGANIC
PAGE_VIDEO_VIEWS_AUTOPLAYED
PAGE_VIDEO_VIEWS_CLICK_TO_PLAY
PAGE_VIDEO_VIEWS_UNIQUE
PAGE_VIDEO_REPEAT_VIEWS
PAGE_VIDEO_COMPLETE_VIEWS_30S
PAGE_VIDEO_COMPLETE_VIEWS_30S_PAID
PAGE_VIDEO_COMPLETE_VIEWS_30S_ORGANIC
PAGE_VIDEO_COMPLETE_VIEWS_30S_AUTOPLAYED
PAGE_VIDEO_COMPLETE_VIEWS_30S_CLICK_TO_PLAY
PAGE_VIDEO_COMPLETE_VIEWS_30S_UNIQUE
PAGE_VIDEO_COMPLETE_VIEWS_30S_REPEAT_VIEWS
PAGE_POSTS_IMPRESSIONS
PAGE_POSTS_IMPRESSIONS_UNIQUE
PAGE_POSTS_IMPRESSIONS_PAID
PAGE_POSTS_IMPRESSIONS_PAID_UNIQUE
PAGE_POSTS_IMPRESSIONS_ORGANIC
PAGE_POSTS_IMPRESSIONS_ORGANIC_UNIQUE
PAGE_POSTS_IMPRESSIONS_VIRAL
PAGE_POSTS_IMPRESSIONS_VIRAL_UNIQUE
POST_IMPRESSIONS
POST_IMPRESSIONS_UNIQUE
POST_IMPRESSIONS_PAID
POST_IMPRESSIONS_PAID_UNIQUE
POST_IMPRESSIONS_FAN
POST_IMPRESSIONS_FAN_UNIQUE
POST_IMPRESSIONS_FAN_PAID
POST_IMPRESSIONS_FAN_PAID_UNIQUE
POST_IMPRESSIONS_ORGANIC
POST_IMPRESSIONS_ORGANIC_UNIQUE
POST_IMPRESSIONS_VIRAL
POST_IMPRESSIONS_VIRAL_UNIQUE
POST_CONSUMPTIONS
POST_CONSUMPTIONS_UNIQUE
POST_ENGAGED_USERS
POST_NEGATIVE_FEEDBACK
POST_NEGATIVE_FEEDBACK_UNIQUE
POST_VIDEO_AVG_TIME_WATCHED
POST_VIDEO_COMPLETE_VIEWS_ORGANIC
POST_VIDEO_COMPLETE_VIEWS_ORGANIC_UNIQUE
POST_VIDEO_COMPLETE_VIEWS_PAID
POST_VIDEO_COMPLETE_VIEWS_PAID_UNIQUE
POST_VIDEO_VIEWS_ORGANIC
POST_VIDEO_VIEWS_ORGANIC_UNIQUE
POST_VIDEO_VIEWS_PAID
POST_VIDEO_VIEWS_PAID_UNIQUE
TaggedByQuery information about Posts, Statuses, Photos, and other entities that have tagged the User or Page. This view is a derivative of the Wall connection where only entries that have tagged the Target User or Page will be returned. In general it is only available for Pages.
TelevisionQuery the TV shows a User is interested in. Accessing Television information may require the user_likes and user_interested permissions.
VideosQuery Videos from a Target. Normally requires the user_videos permission.
WallQuery Posts from the Wall of a Target.

Note: For the following tables: InsightsByConsumptionType, InsightsByFeedbackType, InsightsByLikeSourceType, InsightsByPaidStatus, InsightsByTabType, SimpleInsights, the Object Insights period {day, week, month, lifetime} lifetime is not supported for all measures. For more information, see Facebook’s API documentation.

Dynamic Targets

Some Facebook tables allow you to define a target, such as an account, to retrieve specific data. This is used for some tables, such as AdInsights, where a target can be specified.

While you can define the value of the target parameter in your connection string, if you support multiple accounts, you can use a dynamic target to retrieve data from each of those accounts.

The following is an example of the a dynamic target as the value of Target:

SELECT Target, DateStart, DateEnd, AdAccountId, AdAccountName, CampaignId, CampaignName, AdSetId, AdSetName, AdId,AdName, Placement, Clicks, CPC, CPM, CPP, CTR, Frequency, Impressions, Reach, Spend, TotalActions, TotalUniqueActions, UniqueClicks, UniqueCTR, WebsiteClicks
FROM AdInsights where target in (SELECT ID FROM AdAccounts ) and level='ad' and DatePreset='last_7_days' and TimeIncrement=1

Accumulative Builds

Sisense support accumulative builds for all numeric and dates data types. However, the data must be sorted before building the ElastiCube.

Versions

VersionRelease DateImprovements
6.6.1.113June 12, 2017New version of Graph API v2.9 Changelog
New views added: InsightsByReactionTotals, SimpleVideoInsights, VideoInsightsByActionType, VideoInsightsByDistributionType, VideoInsightsByReactionType
New insights added for the InsightsByConsumptionType view: POST_CONSUMPTIONS_BY_TYPE, POST_CONSUMPTIONS_BY_TYPE_UNIQUE
For more information about Version 6.6.1.113 including Breaking Changes, see Version 6.6.1.113 below.
6.6.0.74March 16, 2017JSON columns in the AdInsights table are available for querying in AdInsightActions by using the ActionCollection column
6.6.1.65March 9, 2017In some scenarios, getMetaData() returned unexpected results
6.6.0.52March 6, 2017Dynamic Targets
New table: GroupMemberShips

Version 6.6.1.113

Breaking Changes

In the latest version of the Facebook Graph API, permissions have been largely reworked. All of the friends* permissions have been removed. In addition, most permissions require Facebook approval if you wish to request information about other user accounts who are not an administrator of the Facebook App. Sisense recommends reviewing the new permissions listed by Facebook here:

https://developers.facebook.com/docs/facebook-login/permissions/v2.1

In addition, users may reject requested permissions in the Authorization dialog on Facebook. If this happens, the specific Permissions requested will state that they are declined under the Status column. The permission may be rerequested by executing GetOAuthAccessToken and setting AuthType to rerequest.

If you want to keep using an old version of the API, you can by simply setting the Version connection property in the connection string to the specific version you were using and also setting the Location to a folder where you have saved an older copy of the schema files (.rsd and .rsb files).

If you want to update your app to 2.9, then you don’t have to do anything

Note: Sisense removed few metrics from the AdInsights / AdInsightsActions due to their removal by Facebook in 2.9.

A number of various changes have been made across tables due to changes in Facebook. These changes are listed below:

  • Facebook no longer allows public posts to be searched. We have had to remove SearchTerms from the Posts table because of this.
  • Checkins have been removed from the Graph API. Due to this, we have removed the Checkins table.
  • Events may no longer be inserted, updated, or deleted via the Graph API. We have had to change the Events table to a view.
  • Usernames for Facebook Users may no longer be used as a target and are no longer returned. The Facebook username for Pages is unaffected.
  • User ID’s for Facebook Users will be different across different Facebook Apps. This is due to the new policy of App-scoped User ID’s.