RankfinityDocs Open the app

DocsReference

Looker Studio dashboard

Connect Rankfinity to Looker Studio through Google Sheets. One feed per dataset, step by step, plus a downloadable sample dashboard spec.

5 min read·Markdown

Ask an AI about this page

ChatGPT and Claude open with the question copied — paste it with Ctrl+V (⌘V).

What you need#

  • A Rankfinity project with data: rank checks, a map scan, an AI Visibility run, a site audit and a saved backlink profile. A dataset with no data yet says so in its status column.
  • A Google account for Google Sheets and Looker Studio. Both are free.
  • Edit access to the project in Rankfinity, so you can create feeds.

Looker Studio has no built-in source that reads a CSV from a web address. The path below uses Google Sheets as the bridge: Sheets reads each feed with IMPORTDATA, and Looker Studio reads the sheet. Nothing here spends credits.

Step 1 · Create one feed per dataset#

  1. In Rankfinity open My account › API & feeds. Choose the project at the top of the Feeds card.
  2. For each dataset, pick it in the list, give it a name such as looker rankings, and click Create feed. Use No expiry, or a long expiry such as 365 days.
  3. Copy the link now. It is shown once. Repeat until you have one link per dataset you want.
DatasetWhat it holdsUsed for
rankings-historyevery rank check, per keyword, location and deviceposition over time
map-arp-historyevery map scan, per keyword: ARP, average rank, share of points where the business showsmap grid over time
aiv-historyevery finished AI Visibility run, per AI app, plus an overall rowvisibility over time
audit-historyevery finished site audit: score and failed checkssite health over time
backlinks-historyevery saved backlink profile: referring domains, backlinks, dofollow, ranklink growth

The older datasets (rankings, aiv, audit-issues, backlinks) hold only the latest state. Use them for a "now" table.

Step 2 · Put each feed in a sheet tab#

  1. Create a new Google Sheet. Name the first tab after the dataset, for example rankings-history.
  2. In cell A1 paste the formula with your link:
   =IMPORTDATA("https://app.rankfinity.app/api/feeds/v1/rf_feed_....csv")
  1. Add a new tab for each further dataset and repeat. Keep one dataset per tab.
  2. Wait a few seconds. Row 1 is the column names. Check the status column: ok means a real row. Any other text explains why there is no data yet.

Sheets refreshes IMPORTDATA about once an hour. To refresh now, retype the formula or press Ctrl+R (Cmd+R on a Mac).

Limit. Google Sheets reads at most about 50,000 cells per IMPORTDATA. Rankfinity sends the newest rows first, up to 5,000 rows per feed, so a cut keeps the most recent data. If a tab stops short, the sheet has reached Google's limit for one import.

Step 3 · Connect Looker Studio to the sheet#

  1. Open lookerstudio.google.com and choose Create › Data source.
  2. Pick the Google Sheets connector. Choose your sheet and the tab, for example rankings-history.
  3. Keep Use first row as headers on. Click Connect.
  4. Repeat from step 2 for each tab, so you end with one data source per dataset.

Step 4 · Check the field types#

Looker Studio guesses the type of each column. Check these in the data source editor:

  • date should be Date & time. If Looker shows it as Text, change the field type. If it still does not parse, use a calculated field that converts the text. The dates are ISO 8601 in UTC, for example 2026-10-17T09:30:00Z.
  • position, arp, visibility_pct, score, referring_domains and the other numbers should be Number.
  • measured should be Boolean.

Do not change a number to a text field. An empty cell means the value was not measured. It is never a zero, so Looker will show a gap, which is the right picture.

Step 5 · Build the dashboard#

Download the sample spec and use it as the list of pages, charts and fields to build:

Download the sample dashboard spec (JSON)

It has five sources, one per dataset, and five pages: Rankings, Map grid, AI Visibility, Site health and Backlinks. Each chart names its source, its date dimension and its metric. The file holds no data.

Add a filter to every chart: status = ok. This hides the explanation rows.

Useful settings:

  • Rankings. Average position over time, split by device. Lower is better. Unmeasured checks are blank.
  • Map grid. ARP over time, split by keyword. Lower is better. ARP counts a point where the business does not show as 21, the same as the app.
  • AI Visibility. Visibility per AI app over time. Exclude the all rows from this chart, and use them for one overall scorecard.
  • Site health. Audit score over time, and failed checks over time.
  • Backlinks. Referring domains and backlinks over time.

Keep it fresh#

Rankfinity updates the feeds after each check, audit or scan. Looker Studio reads the sheet on its own refresh schedule, and a sheet only picks up new data when IMPORTDATA refreshes. For a daily picture, a daily sheet refresh is enough.

Something does not look right#

  • The sheet shows one row that says a sentence. That dataset has no data yet, for example "no site audit has finished yet". Run the check in Rankfinity, then wait for the next refresh.
  • The sheet shows #REF! or an error. Check that the link is complete and that the feed is still active. A revoked or expired feed returns the same 404 as a wrong link.
  • Looker shows a different number than the app. The app shows the newest result on each screen. A history feed holds every check, so compare the same date and the same keyword.
  • You want a CSV file instead. Open a feed link in a browser and save the page as a .csv file, then use Looker Studio's File upload source. This is a manual refresh, so the Sheets route above is better for a live dashboard.

Safety#

A feed link is a read-only key to one dataset of one project. Do not paste it into a shared document. Revoke it under My account › API & feeds when a person leaves, and create a new one. See Feeds for Google Sheets and Looker Studio for the full rules.

Still stuck? Write to office@rankfinity.app.