Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

DTS facebook ads to bigquery - table AdInsightsActions UNUSEFUL

Hello,
I’ve started using the native Facebook Ads to BigQuery data transfer.

The transfer populates 3 tables:

AdAccounts
AdInsights
AdInsightsActions

The AdInsightsActions table, as it is currently structured, is completely useless.

Although it provides "ActionValue" data for various attribution windows (1dClick, 7dClick, 1dView, and so on), it lacks a field that specifies which conversion action the value refers to — whether it's the primary campaign goal or other secondary actions.

Facebook campaigns can receive multiple types of conversion actions.

Therefore, performing joins or other SQL operations with this table is essentially pointless.

Is there anything that can be done?

From the official documentation, I don’t see any additional information.

When querying the traditional Facebook Ads API, I receive not only the value of each action (e.g., action1.value), but also — and crucially — what the action is (action1.type).

Would it be possible for your engineers and developers to step in and address what I believe is a serious gap in the current implementation?

In shorts, the AdInsightsActions table from the native Facebook Ads to BigQuery transfer does not include any information about the type of action, making it extremely difficult — if not impossible — to use the data meaningfully in analysis or join it reliably with other tables.

This limitation significantly reduces the usefulness of the dataset for advertisers and analysts.

0 2 156
2 REPLIES 2

Hi giobreccia,

Welcome to the Google Cloud Community!

Currently, based on the BigQuery Data Transfer Service for Facebook Ads, it appears that the AdInsightsActions table is explicitly designed to include only the ActionValue for predefined attribution windows, without the action_type breakdown you're looking for. The specifications outline the exact fields transferred, and action_type is not listed as a mapped field for AdInsightsActions.

Here are some potential workarounds that might help:

  • Leverage the AdInsights table by parsing its JSON fields. You can utilize BigQuery's JSON functions (e.g., JSON_EXTRACT_SCALAR, JSON_EXTRACT_ARRAY) to extract the specific action_type and associated values. You'll likely need to experiment to determine the exact JSON structure and write appropriate queries for extraction.
  • I suggest filing a feature request on the issue tracker so that our engineers can look into it as they can provide more insights into the issue. Please provide as much information as possible. Please note that I can't provide any details or timelines at this moment. However, you may keep an eye on the release notes for any latest updates or new features related to BigQuery.

Was this helpful? If so, please accept this answer as “Solution”. If you need additional assistance, reply here within 2 business days and I’ll be happy to help.

Thank you!

You mentioned JSON fields in the AdInsights table, but I actually don’t see any.

Here is the actual schema of the table created by the DTS service



field name mode type description

TargetNULLABLESTRING 
DatePresetNULLABLESTRING 
DateStartNULLABLEDATE 
DateEndNULLABLEDATE 
TimeIncrementNULLABLESTRING 
LevelNULLABLESTRING 
AccountCurrencyNULLABLESTRING 
ActionAttributionWindowsNULLABLESTRING 
AdAccountIdNULLABLESTRING 
AdAccountNameNULLABLESTRING 
CampaignIdNULLABLESTRING 
CampaignNameNULLABLESTRING 
AdSetIdNULLABLESTRING 
AdSetNameNULLABLESTRING 
AdIdNULLABLESTRING 
AdNameNULLABLESTRING 
BuyingTypeNULLABLESTRING 
ClicksNULLABLEBIGNUMERIC 
ConversionRateRankingNULLABLESTRING 
CostPerEstimatedAdRecallersNULLABLEBIGNUMERIC 
CostPerInlineLinkClickNULLABLEBIGNUMERIC 
CostPerInlinePostEngagementNULLABLEBIGNUMERIC 
CostPerUniqueClickNULLABLEBIGNUMERIC 
CostPerUniqueInlineLinkClickNULLABLEBIGNUMERIC 
CPCNULLABLEBIGNUMERIC 
CPMNULLABLEBIGNUMERIC 
CPPNULLABLEBIGNUMERIC 
CTRNULLABLEFLOAT 
EstimatedAdRecallRateNULLABLEFLOAT 
EstimatedAdRecallersNULLABLEFLOAT 
FrequencyNULLABLEFLOAT 
ImpressionsNULLABLEBIGNUMERIC 
InlineLinkClicksNULLABLEBIGNUMERIC 
InlineLinkClicksCounterNULLABLEFLOAT 
InlinePostEngagementNULLABLEBIGNUMERIC 
InstantExperienceClicksToOpenNULLABLEBIGNUMERIC 
InstantExperienceClicksToStartNULLABLEBIGNUMERIC 
InstantExperienceOutboundClicksNULLABLEBIGNUMERIC 
ObjectiveNULLABLESTRING 
QualityRankingNULLABLESTRING 
ReachNULLABLEBIGNUMERIC 
SpendNULLABLEBIGNUMERIC 
UniqueClicksNULLABLEBIGNUMERIC 
UniqueCTRNULLABLEFLOAT 
UniqueInlineLinkClicksNULLABLEBIGNUMERIC 
UniqueInlineLinkClickCounterNULLABLEFLOAT 
UniqueLinkClicksCounterNULLABLEFLOAT 
CheckinsNULLABLEINTEGER 
EventResponsesNULLABLEINTEGER 
LinkClicksNULLABLEINTEGER 
OfferSavesNULLABLEINTEGER 
OutboundClicksNULLABLEINTEGER 
PageEngagementsNULLABLEINTEGER 
PageLikesNULLABLEINTEGER 
PageMentionsNULLABLEINTEGER 
PagePhotoViewsNULLABLEINTEGER 
PostCommentsNULLABLEINTEGER 
PostEngagementsNULLABLEINTEGER 
PostSharesNULLABLEINTEGER 
PostReactionsNULLABLEINTEGER 
PageTabViewsNULLABLEINTEGER 
Video3SecondViewsNULLABLEINTEGER 
RegionNULLABLESTRING 
AdEffectiveStatusNULLABLESTRING 
UseAsyncNULLABLEBOOLEAN 
DefaultSummaryNULLABLEBOOLEAN 

By the way I will open a request on the issue tracker.

Thanks a lot!