> ## Documentation Index
> Fetch the complete documentation index at: https://devs.surferseo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Copy the report template

> Copy Surfer's AI Tracker report into your own Looker Studio, point it at your data, and keep it current.

[Set up the connector](/integrations/looker-studio/setup) with your API key and at least one data source before you copy the template. You can create the missing Brands or Sources data source in the copy dialog.

[AI Tracker](/integrations/looker-studio/setup) is Surfer's report on how AI answers mention your brand and which sources they cite. The template charts both.

## Copy the template

Your copy includes the template's pages, charts, and filter controls. It connects to your data sources instead of Surfer's.

**1. Open the template**

Copying the template requires a Looker Studio account. You can open it without signing in.

1. Open [Surfer's AI Visibility Report template](https://lookerstudio.google.com/reporting/aa95ed9f-f9b7-4590-ba88-9f87f5353230).
2. Sign in with the Google account that owns your data sources.

**2. Start the copy**

Go to **More options → Make a copy** at the top right. **More options** is
the three-dot menu.

**3. Map the data sources**

**Copy this report** lists the template's two data sources, Brands and Sources, under **Original Data Source**.

If a data source does not exist yet, create it first:

1. Choose **Create data source**.
2. Follow [Add the connector](/integrations/looker-studio/setup#add-the-connector).

Match your sources under **New Data Source**:

1. Choose your Brands data source for the template's Brands source.
2. Choose your Sources data source for the template's Sources source.

**4. Create the copy**

Select **Copy Report**. The copy opens in edit mode. You own the copy.

Google's guide [Copy a report](https://docs.cloud.google.com/looker/docs/studio/copy-a-report) lists what a copy inherits and notes that a report owner can turn copying off in the sharing settings.

## Set the filters

Three filters still name the template's sample brand and domain. Every chart shows that sample until you replace those names.

**1. Open the report's filters**

Go to **Resource → Manage filters**.

![The Filters list of a copied report with the three template filters still on their sample values: \[Brand\] Include Brand and \[Brand\] Exclude your brand set to BrandName, and \[Sources\] Your Domain set to https://www.domain.com.](https://mintcdn.com/surfer-1a8fda11/QXk7U1sGV0aSo5lw/images/integrations/looker-studio/looker-studio-filters.png?fit=max\&auto=format\&n=QXk7U1sGV0aSo5lw\&q=85\&s=e1dc06ea13b0b3c572f1839a85adafd1)

**2. Put your brand in the brand filters**

The list offers only brand names present in your data for the selected period.

1. Open each filter that still names the template's sample brand, `BrandName`.
2. Replace it with your own brand name as AI Tracker logs it.

**3. Put your domain in the domain filter**

In **\[Sources] Your Domain**, enter your domain as `https://www.domain.com`, with no slash at the end.

**4. Check a chart**

Return to the report. With all three filters updated, the brand charts show your brand and the source charts mark your domain.

### Group sources by domain

The template's source charts list full URLs. A calculated field on your Sources data source groups them by domain instead.

1. Edit your Sources data source.

2. Go to **ADD A FIELD → Add calculated field**.

3. Enter this formula, which extracts the domain from **Source URL**:

   ```text theme={"system"}
   REGEXP_EXTRACT(Source URL, '^https?://([^/]+)')
   ```

4. Use the new field as the dimension wherever you want **Times Shown** summed per domain.

## Keep the report current

The connector caches each response for up to six hours and serves the same request from that cache until it expires. A new day's data can therefore take up to six hours to appear.

A cached response belongs to the Google account that loaded the chart and to one exact request.

* A request is the project, the date range, and the grouping dimensions the chart asks for. The connector always adds the data type's required dimension to the grouping, so it is in every request. Metrics, **Brand Mentioned**, and **Mentioned Brands** are not.
* A chart with a new date range or a new grouping dimension makes a new request. It fetches fresh rows unless the same request was already served in the last six hours. A chart that changes only its metrics, **Brand Mentioned**, or **Mentioned Brands** reads the same cached rows.
* Nothing in the connector clears the cache early.

**Refresh data** in the report's **More options** menu asks the connector again, which still serves its cached response until the six hours pass. Looker Studio caches on top of the connector. Its own [data freshness](https://docs.cloud.google.com/looker/docs/studio/manage-data-freshness) setting controls how long Looker Studio keeps results on its side and cannot shorten the connector's six hours.

The connector retries HTTP 429, 500, 502, 503, and 504 responses up to seven times, so one chart load can send up to eight requests. The retry delays add up to about 64 seconds, plus the time the requests themselves take. A chart that is still loading may be waiting for these retries.

## When a report is stale or empty

Open the same project and days in Surfer first. Looker Studio shows only what AI Tracker holds for them.

| Symptom | Likely cause | What to do |
| - | - | - |
| No rows for the selected period | AI Tracker has no data for those days: the project started after them, or it was disabled in Surfer and stopped collecting. | Compare with the project in Surfer. Move the date range to days the project covers, or reactivate the project in Surfer and wait for its next run. |
| Your brand is missing from a filter's list | AI Tracker logs the brand under a different name, or the selected period holds no mention of it yet. | Pick the name as it appears in the project in Surfer, or widen the date range and try again in a few days. |
| A chart reports that a dimension is required | The chart is missing the dimension the message names. | Add the dimension to the chart. [Fields](/integrations/looker-studio/fields#the-rule-every-chart-follows) has the rule and both messages. |
| The data source asks for the key again | The key stored in your Google account was reset or revoked. | Enter your API key again. [Replace the API key](/integrations/looker-studio/setup#replace-the-api-key) covers the steps. |
| A chart says the connector encountered an unrecoverable error | The connector could not fetch or read the report data. | Follow the causes and steps in [Troubleshooting](/integrations/looker-studio/setup#troubleshooting) on the Set up page. |
| A number has not changed all day | The connector is serving a response from its six-hour cache. | Wait for the cache to expire, or change the date range to one not requested in the last six hours. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.