Skip to main content

Facebook Ads Data Source

Follow the instructions below to create a new data flow that ingests data from a Facebook Ads source in Nexla.
fb_ads_api.png

Facebook Ads

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Facebook Ads connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Facebook Ads instance, and click Next; or, create a new Facebook Ads credential for use in this flow.

  3. In Nexla, Facebook Ads data sources can be created using pre-built endpoint templates, which expedite source setup for common Facebook Ads endpoints. Each template is designed specifically for the corresponding Facebook Ads endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Facebook Ads sources can also be configured manually, allowing you to ingest data from Facebook Ads endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Facebook Ads endpoints. Each template is designed specifically for the corresponding Facebook Ads endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    Get My Ad Accounts

    This endpoint fetches all ad accounts associated with this user. This resulting dataset will contain id, account_id and name of each ad account. Use this endpoint when you need to access ad account information, account lists, or account data from your Facebook Ads account.

    • Enter the Facebook Marketing API version in the Facebook API Version field. This is the API version to use for requests (e.g., v23.0). The default value is v23.0 if not specified.

    • The endpoint uses GET requests to https://graph.facebook.com/{api_version}/me/adaccounts?fields=id,account_id,name where {api_version} is the Facebook API Version you provide. The endpoint URL is automatically constructed based on the Facebook Graph API base URL and the API version.
    • The endpoint uses URL-based pagination, automatically fetching additional pages as needed. When a response includes a paging.next value, Nexla automatically uses it as the URL for the subsequent request to fetch the next page of results.
    • The endpoint will return all ad accounts associated with the user. The response data is extracted from the data array in the API response ($.data[*]), with each ad account record processed individually.

    The Facebook API Version should match a valid Facebook Marketing API version. The endpoint uses URL-based pagination (iteration.type: paging.next.url) through the paging.next mechanism. When a response includes a paging.next value, Nexla automatically uses it as the URL for the subsequent request. The response data path is $.data[*], which extracts all items from the data array in the API response. For detailed information about listing ad accounts, see the Facebook Marketing API documentation.

    Get Custom Audiences for an Ad Account

    This endpoint retrieves the ad account's custom audiences. These help you target ads to people who already have a relationship with your business. Use this endpoint when you need to access custom audience information, audience lists, or audience data from your Facebook Ads account.

    • Select the Ad Account ID for which you want to fetch custom audiences from the Ad Account ID dropdown menu. This is the ad account ID for fetching custom audiences. You can select from ad accounts retrieved using the "Get My Ad Accounts" endpoint, or enter a custom ad account ID.

    • Enter the Facebook Marketing API version in the Facebook API Version field. This is the API version to use for requests (e.g., v23.0). The default value is v23.0 if not specified.

    • The endpoint uses GET requests to https://graph.facebook.com/{api_version}/act_{ad_account_id}/customaudiences?fields=id,name,subtype,time_created,time_updated,time_content_updated,approximate_count_upper_bound,approximate_count_lower_bound,sharing_status where {api_version} is the Facebook API Version and {ad_account_id} is the Ad Account ID you provide. The endpoint URL is automatically constructed based on the Facebook Graph API base URL, the API version, and the ad account ID.
    • The endpoint uses URL-based pagination, automatically fetching additional pages as needed. When a response includes a paging.next value, Nexla automatically uses it as the URL for the subsequent request to fetch the next page of results.
    • The endpoint will return all custom audiences for the specified ad account. The response data is extracted from the data array in the API response ($.data[*]), with each custom audience record processed individually.

    Ad Account IDs can be obtained from the "Get My Ad Accounts" endpoint, which returns all ad accounts with their corresponding IDs. The endpoint uses URL-based pagination (iteration.type: paging.next.url) through the paging.next mechanism. The response data path is $.data[*], which extracts all items from the data array in the API response. For detailed information about listing custom audiences, see the Facebook Marketing API documentation.

    Get Insights for an Ad Account

    This endpoint gets insights on your advertising performance for an ad account. Select the appropriate date preset for the relative time range. Use this endpoint when you need to access advertising performance metrics, insights data, or analytics information from your Facebook Ads account.

    • Select the Ad Account ID for which you want to fetch insights from the Ad Account ID dropdown menu. This is the ad account ID for fetching insights. You can select from ad accounts retrieved using the "Get My Ad Accounts" endpoint, or enter a custom ad account ID.

    • Select the insight time range from the Insight for Time Range dropdown menu. This represents a relative time range for fetching insights. Available options include:

      • today: Today's data
      • yesterday: Yesterday's data (default)
      • this_month: This month's data
      • last_month: Last month's data
      • this_quarter: This quarter's data
      • maximum: Maximum available data
      • last_3d: Last 3 days
      • last_7d: Last 7 days
      • last_14d: Last 14 days
      • last_28d: Last 28 days
      • last_30d: Last 30 days
      • last_90d: Last 90 days
      • And other time range options

      The default value is yesterday if not specified.

    • Enter the Facebook Marketing API version in the Facebook API Version field. This is the API version to use for requests (e.g., v23.0). The default value is v23.0 if not specified.

    • The endpoint uses GET requests to https://graph.facebook.com/{api_version}/act_{ad_account_id}/insights?date_preset={date_preset} where {api_version} is the Facebook API Version, {ad_account_id} is the Ad Account ID, and {date_preset} is the Insight for Time Range you select. The endpoint URL is automatically constructed based on the Facebook Graph API base URL, the API version, the ad account ID, and the date preset.
    • The endpoint uses URL-based pagination, automatically fetching additional pages as needed. When a response includes a paging.next value, Nexla automatically uses it as the URL for the subsequent request to fetch the next page of results.
    • The endpoint will return insights for the specified ad account and time range. The response data is extracted from the data array in the API response ($.data[*]), with each insight record processed individually.

    Ad Account IDs can be obtained from the "Get My Ad Accounts" endpoint. The date preset determines the time range for which insights are retrieved. The endpoint uses URL-based pagination (iteration.type: paging.next.url) through the paging.next mechanism. The response data path is $.data[*], which extracts all items from the data array in the API response. Click on the Facebook document link for more information about default fields returned. For detailed information about getting insights, see the Facebook Marketing API documentation.

    Get Insights for an Ad Account (Async)

    This endpoint gets insights on your advertising performance for an ad account using asynchronous processing. Check out Facebook API documentation for appropriate query format. Use this endpoint when you need to access advertising performance metrics for large datasets that require asynchronous processing.

    • Enter the Ad Account ID for which you want to fetch insights in the Ad Account ID field. This is the ad account ID for fetching insights.

    • Enter the query format for the insights request in the Query field. This should follow the Facebook API documentation format for insights queries. Check out Facebook API documentation for appropriate query format.

    • The endpoint uses a multi-step process: first, it sends a POST request to initiate an async insights report, then polls for completion, and finally retrieves the results. The endpoint URL is automatically constructed based on the Facebook Graph API base URL and the ad account ID.
    • The endpoint uses asynchronous polling to wait for report completion, then uses URL-based pagination to retrieve all results. When a response includes a paging.next value, Nexla automatically uses it as the URL for the subsequent request to fetch the next page of results.
    • The endpoint will return insights for the specified ad account. The response data is extracted from the data array in the API response ($.data[*]), with each insight record processed individually.

    This endpoint uses asynchronous processing for large insights reports. The query format should follow the Facebook API documentation format. The endpoint uses async polling (iteration.type: async.poll) to wait for report completion, then URL-based pagination (iteration.type: paging.next.url) to retrieve results. The response data path is $.data[*], which extracts all items from the data array in the API response. For detailed information about async insights and query formats, see the Facebook Marketing API documentation.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Facebook Ads data sources can be manually configured to ingest data from any valid Facebook Ads API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates or when you need custom API configurations.

With manual configuration, you can also create more complex Facebook Ads sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom authentication headers or request parameters.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Facebook Ads API from the Method pulldown menu. The most common methods are:

    • GET: For retrieving data from the API
    • POST: For sending data to the API or triggering actions
    • PUT: For updating existing data
    • PATCH: For partial updates to existing data
    • DELETE: For removing data

API Endpoint URL

  1. Enter the URL of the Facebook Ads API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the protocol (https://) and any required path parameters. Facebook Ads API endpoints typically follow the pattern https://graph.facebook.com/{api_version}/{endpoint_path} where {api_version} is the Facebook Marketing API version (e.g., v23.0).

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL. The endpoint requires System User Access Token authentication via the Authorization: Bearer {token} header, which is handled automatically by your credential configuration. For detailed information about Facebook Ads API endpoints and available APIs, see the Facebook Marketing API documentation.

Path to Data

  1. Enter the JSON path that identifies the location of the relevant data within the API response in the Path to Data field. JSON paths use dot notation to navigate through nested JSON structures.

    • For example, if your API response has the structure {"data": [...]}, you would enter $.data[*] to extract all items from the data array.
    • Use $[*] to extract all items from a root-level array.
    • Use $ to extract the entire root-level object.

JSON paths are case-sensitive and must match the exact structure of your API response. Facebook Ads API responses typically use a data array structure ($.data[*]) for list endpoints. Use the Test button to verify that your JSON path correctly extracts the desired data from the API response.

Save the Data Source

  1. Once all configuration steps have been completed, click the Save button to save your data source configuration.

  2. The data source will now be available in your data flow and will begin ingesting data according to the configured schedule and endpoint settings.