How to get Meta Ads Library in Power BI
Scrape ads from Meta Ad Library across Facebook and Instagram. facebook.com is one page of it. A run reads that public list and saves one row per ad.
Set up the Apify actor
Apify is where this run is collected. An actor is the program that collects the rows. A task is that program saved with your settings, so the next section can ask for the latest rows. You need a free Apify account.
- 01Open Meta Ads Library and click Try for free. Create an Apify account if you do not have one. The Free plan does not ask for a card.
- 02You are on the input form. Keep the sample for this first run.
{ "startUrls": [ { "url": "https:// www.facebook.com/ ads/ library/ ? active_status=active& ad_type=all& country=US& search_type=keyword& q=nike" } ], "resultsLimit": 5, "onlyTotal": false, "activeStatus": "", "sorting": "", "isDetailsPerAd": false, "includeAboutPage": false, "enrichWithEcommerceData": false } - 03Leave the proxy setting as it is. Click Start and wait until the run says Succeeded.
- 04Open Storage, then Dataset. You should see
pageName,adArchiveId,isActive. - 05When you want the real list, raise the row limit on the input. The sample is only there so the first run stays small.
- 06Go back to the input and choose Save as a new task. Name it after this list.
- 07Open the task. Copy the task ID from the address bar. Excel, Sheets, Power BI, and the other guides ask for this ID.
- 08On the task, open Schedules and add a weekly run if you want fresh rows. Each run pays the start charge and the charge for the rows. The amounts are in the price list on this page.
- 09Open Settings, then API & Integrations, and copy an API token. Excel, Sheets, and the other guides put this token in a download link. Anyone with that link can download the rows, so treat it like a password.
How to set up in Power BI
Use the task ID and the API token from Set up the Apify actor, above.
- 01In Power BI Desktop, choose Home, Get data, Web.
- 02Paste this address. Replace
TASK_IDandYOUR_TOKEN. Choose Anonymous, then Connect.https:// api.apify.com/ v2/ actor-tasks/ TASK_ID/ runs/ last/ dataset/ items? format=json& clean=true& status=SUCCEEDED& token=YOUR_TOKEN - 03Load the rows.
pageName,adArchiveId,isActiveare the columns to keep. - 04After you publish, refresh against that same URL. The weekly schedule from Set up the Apify actor, above, is what puts a new dataset behind the URL.
Schema
Examples come from the actor sample, not a live result.
| Name | Description | Example |
|---|---|---|
pageName | Page name | Nike |
adArchiveId | Ad archive ID | 1234567890123456 |
isActive | Active | true |
pageNamePage nameNikeadArchiveIdAd archive ID1234567890123456isActiveActivetrue