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

# Data reference

> Metrics, breakdowns, refresh cadence, and limits for the Google Local Services Ads Report data source in Adriel.

## Introduction

Google Local Services Ads (LSA) is Google's pay-per-lead ad format for local service businesses. Advertisers are charged for phone calls, messages, and bookings rather than clicks or impressions ([Local Services Ads Help](https://support.google.com/localservices/answer/6224841)). This connector imports LSA performance for a connected Google Ads account through two paths: **account-level reports** (leads, cost, spend rollups) via the Local Services API, and **lead-level records** (individual leads with type, disposition, and timing) via the Google Ads API. The two paths are combined in a per-asset cache for reporting in Adriel widgets.

To connect this data source, see [How to connect Google Local Services Ads Report to Adriel](/data-sources/g-n/google-local-services-ads-report/how-to-connect).

## Data refresh strategy

### Architecture data

Each Adriel asset represents one LSA location (or account) inside a connected Google Ads MCC. The `login_customer_id` for the parent Google Ads MCC is resolved during connection and reused for all API calls.

### Reports data

Reports run on two schedules:

**Account-level reports.** Adriel calls `accountReports:search` on the Local Services API and caches the results with a **5-minute Redis TTL** for on-demand access from dashboards.

**Lead-level records.** Adriel calls the Google Ads `googleAds:searchStream` endpoint (GAQL) and writes per-lead rows to the per-asset Postgres cache table `googleLocalServicesAds_{assetId}`.

**Refresh schedule.** Daily refresh at a fixed UTC hour (pending tech reviewer confirmation; the KG notes a 6:00 PM UTC default).

**Refresh strategy.** `ATOMIC_REPLACE` — the per-asset cache is rewritten on each successful run.

## Metrics

<Note>
  **How to read the columns**

  **Data type** uses this vocabulary: Number, Currency, Percentage, Ratio, Duration, Date, Text, URL, Array, Boolean.

  **API Key** in code style is the literal field name from the Local Services API (account-level reports) or the Google Ads API (lead-level).
</Note>

| Metric           | Description                                                                  | Data type | API Key                                 |
| ---------------- | ---------------------------------------------------------------------------- | --------- | --------------------------------------- |
| Leads            | Total leads recorded — a lead is a billable phone call, message, or booking. | Number    | `total_leads`                           |
| Phone-call leads | Leads sourced from phone calls.                                              | Number    | `phone_call_leads`                      |
| Message leads    | Leads sourced from messages.                                                 | Number    | `message_leads`                         |
| Booking leads    | Leads sourced from appointment bookings.                                     | Number    | `booking_leads`                         |
| Ad spend         | Total amount charged in the account's currency.                              | Currency  | `spend`                                 |
| Cost per lead    | Spend divided by billable leads.                                             | Currency  | *Adriel-computed (spend / total leads)* |
| Lead disposition | Lead status (booked, credit-requested, archived, etc.).                      | Text      | `lead_status`                           |
| Lead type        | Whether the lead is a call, message, or booking.                             | Text      | `lead_type`                             |

## Breakdowns

### Account & lead

| Breakdown        | Description                                                       | API Key       |
| ---------------- | ----------------------------------------------------------------- | ------------- |
| Account          | Group by LSA account / location.                                  | `account_id`  |
| Service category | Group by service category (job type) declared on the LSA profile. | `category_id` |
| Geographic area  | Group by service area / geography.                                | `geo_area`    |
| Lead type        | Group by lead source (call / message / booking).                  | `lead_type`   |
| Lead status      | Group by disposition (booked, credited, archived).                | `lead_status` |

### Time & date grouping

<Note>
  These time groupings are Adriel-side aggregations of the same underlying report data, not separate fields returned by the API.
</Note>

| Breakdown           | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| Auto Time Breakdown | Automatically picks the best granularity for the date range. |
| Daily               | Split reports by day.                                        |
| Weekly              | Split reports by ISO week.                                   |
| Monthly             | Split reports by calendar month.                             |

## Limitations

* **Beta connector.** LSA reporting is currently marked as beta; field coverage and refresh behavior may change.
* **Two API surfaces.** Account-level metrics come from the Local Services API; lead-level records come from the Google Ads API. The connected account must have access to both.
* **5-minute report cache.** Account-level reports are cached in Redis for 5 minutes, which means dashboard reads within that window return the cached snapshot.
* **Credited-lead reconciliation.** LSA supports post-hoc lead credits; historical leads and cost may change if credits are approved after the initial ingest ([Google Ads Help — Local Services Ads lead credits](https://support.google.com/google-ads/answer/7435486)).
* **`login_customer_id` required.** Non-internal Google Ads accounts must resolve a login MCC customer ID at connection time.

## API references

* [Google Local Services API — accountReports.search](https://developers.google.com/local-services/reference/rest/v1/accountReports/search)
* [Google Ads API — GAQL](https://developers.google.com/google-ads/api/docs/query/overview)
* [Local Services Ads Help](https://support.google.com/localservices/)

## See also

* [How to connect Google Local Services Ads Report](/data-sources/g-n/google-local-services-ads-report/how-to-connect) (paired how-to)
* [Google Ads data reference](/data-sources/g-n/google-ads/data-reference) — for standard Google Ads Search / Display / Video reporting
* CallRail data reference — for third-party call-tracking analytics
