The short answer

Google Ads extension asset reports are association reports. They show what happened when a particular asset was attached and eligible at the account, campaign, or ad group level.

Use them to answer three operational questions:
- Is the asset attached?
- Is it serving?
- What performance context appears alongside that association?

Do not treat an asset row like a clean A/B test. Google explains that the Clicks column combines clicks on the ad headline and on the asset, where applicable. A callout or structured snippet can therefore have clicks in its row even though the text itself is not clickable. Multiple assets can also serve in the same impression, so totals across individual rows can double-count the same ad impression.

The useful workflow is: verify the association, pull performance at the same level, compare like with like, and make a reviewed linking or replacement decision. AI is good at joining and classifying those rows. The operator still decides whether the evidence is strong enough to change anything.

Table of Contents

What an extension asset performance report actually measures

Google now calls extensions “assets,” but “extension asset” remains a useful shorthand for sitelinks, callouts, structured snippets, call assets, and price assets.

An asset is reusable. The same sitelink can be associated with the account, a campaign, several ad groups, or a combination of those levels. Google’s Associations view creates one row for each association, which means the same underlying asset may appear more than once.

That distinction matters because you are not only evaluating the copy or destination. You are evaluating an asset in a specific delivery context.

  • Asset: the reusable sitelink, callout, structured snippet, call asset, or price asset.

  • Association: the link between that asset and an account, campaign, or ad group.

  • Performance row: metrics recorded while the ad served with that association.

  • Decision: keep, investigate, relink, replace, or wait for more data.

Google’s API exposes individual performance through customer_asset, campaign_asset, and ad_group_asset reports. That is why choosing the reporting level is not cosmetic: it changes the association you are measuring.

Read the report in four layers

1. Scope: are you looking at the right association?

Start with the decision you need to make.

  • Use account level when you want to review assets applied broadly across the account.

  • Use campaign level when the decision concerns one campaign or when campaigns have materially different offers, landing pages, or economics.

  • Use ad group level when relevance depends on a narrow query theme, product, or service.

Do not combine these levels into one leaderboard. A campaign-level association and an ad-group association can involve the same reusable asset but represent different delivery contexts.

Also separate asset types. Comparing sitelink CTR with callout CTR is rarely meaningful: sitelinks can receive direct clicks, while callouts and structured snippets are descriptive text.

2. Delivery: is the asset actually showing?

Check association status and impressions before judging clicks or conversions. An attached asset is eligible to serve; it is not guaranteed to appear on every eligible ad.

A row with impressions confirms delivery during the selected window. A row with zero metrics can mean the asset was attached but did not serve. A missing performance row can also occur for a fresh campaign- or ad-group-level association with no delivery yet.

This creates an important diagnostic split:

  • Use the asset inventory or Associations view to confirm attachment.

  • Use the performance report to evaluate delivery and downstream metrics.

  • Do not conclude that an asset was removed merely because the performance report returned no rows.

3. Interaction context: what do clicks and CTR mean?

Google defines asset-report clicks as clicks the ad received while it displayed with the asset. The number combines headline clicks and asset clicks, when the asset itself can be clicked. If you need only direct asset interactions, Google Ads offers a click-type segment in its interface.

That means the standard association report answers, “How did the ad perform when this asset appeared?” It does not always answer, “How many people clicked this exact asset?”

Use CTR and average CPC as directional context, not a verdict on an individual callout or snippet. Differences may reflect campaign mix, query mix, position, audience, other assets served in the same ad, or the asset itself.

4. Outcomes: did useful business actions follow?

Conversions and cost per conversion help you move beyond delivery, but they still inherit the same attribution limits. Several assets may receive performance credit from one served ad, so adding individual asset rows can exceed the campaign total.

Treat conversions and CPA as signals for investigation:

  • A high-impression, high-CPA association may point to weak relevance, a weak destination, or simply a harder campaign.

  • A low-volume association may need more time rather than replacement.

  • A strong association in one campaign does not prove the same asset will work everywhere.

Compare asset rows against the surrounding campaign or ad-group performance before acting. The extension report gives context; the parent-level report tells you whether that context is commercially meaningful.

A six-step AI workflow

Step 1: define the question before pulling data

Specify the account, date range, asset type, association level, and decision you are considering. “Show me asset performance” is too vague for a safe optimization.

Prompt:

For account [CUSTOMER_ID], analyze campaign-level SITELINK performance for the last 30 days. Sort by impressions. I want to identify associations that are not delivering, not automatically remove anything.

Use a window long enough to reflect normal traffic and conversion lag. For low-volume accounts, compare a full month with the previous full month rather than using a few days.

Step 2: inventory the assets and associations

List existing assets first. Capture the asset ID or resource name, asset type, source, association level, campaign or ad group, and link status. This protects you from interpreting a missing performance row as a missing attachment.

Prompt:

List the existing SITELINK assets and their active account, campaign, and ad-group associations for account [CUSTOMER_ID]. Include the asset resource name and link resource name. Do not make changes.

The asset resource identifies the reusable asset. The link resource identifies one association. Keep both.

Step 3: pull one level and one type at a time

A narrow report is easier to interpret and less likely to produce false rankings. Start with the most decision-relevant type and level, then widen only if necessary.

Useful report cuts

  • Campaign-level sitelinks, sorted by impressions.

  • Customer-level call assets, sorted by clicks.

  • Ad-group-level structured snippets for one campaign, sorted by conversions.

  • Campaign-level callouts segmented by day to check whether delivery has changed.

For larger accounts, export the full report to CSV instead of drawing conclusions from the first inline rows.

Step 4: join performance back to the asset inventory

The performance rows are most useful when the ID is matched back to the actual asset content and its associations. Without that join, a row may tell you that asset 123 has 8,000 impressions but not whether it says “Free migration” or links to the pricing page.

Ask AI to produce one analysis table with:

  • Asset ID and readable asset content or name.

  • Asset type and source.

  • Association level and parent campaign or ad group.

  • Link status.

  • Impressions, clicks, CTR, cost, average CPC, conversions, and CPA.

  • A confidence note based on volume and the selected date window.

Step 5: classify rows into decision queues

Avoid a single winner/loser score. Use queues that reflect what the data can support.

  • Attachment check: expected asset is absent from inventory or attached at the wrong level.

  • No delivery: attached but zero impressions, or no performance row after confirming the association.

  • Insufficient data: some delivery, but too little volume or too much conversion lag for a decision.

  • Context to investigate: enough delivery to compare, with meaningfully weaker directional metrics than similar associations.

  • Strong context: sustained delivery and outcomes that support keeping or reusing the asset.

  • Human review required: any recommendation to link, unlink, or replace an asset.

Prompt:

Join the SITELINK inventory to the campaign-level performance report by asset resource name. Classify every association into Attachment check, No delivery, Insufficient data, Context to investigate, Strong context, or Human review required. Explain the evidence and attribution caveat for each recommendation. Do not make changes.

Step 6: make one controlled change, then remeasure

If a change is justified, change the association rather than deleting a reusable asset by default. Create a replacement when the underlying content must change, link it at the intended level, verify the new association, and only then unlink the old association if appropriate.

Keep a human approval gate before any write. Review the actual copy, final URL or phone number, policy status, campaign context, and whether the asset is shared elsewhere.

After the change, use a comparable window and pull the same report cut again. Do not compare a seven-day post-change period with a seasonal 30-day pre-change period and call the difference causal.

Worked example: a callout with clicks is not a clickable callout

Suppose a campaign-level callout row shows 12,000 impressions, 420 clicks, a 3.5% CTR, 18 conversions, and a higher CPA than the other callout rows.

The wrong conclusion is: “People clicked this callout 420 times, and it converts poorly.”

The defensible interpretation is: the ad received 420 clicks while it appeared with that callout association. Those clicks can include clicks on the headline and other clickable parts of the ad. The higher CPA is a reason to inspect campaign mix, queries, landing pages, and co-served assets – not enough evidence to blame the callout text.

A useful next move is to compare that same callout across associations. If it appears in several campaigns, does the weak pattern persist after accounting for volume and campaign performance? If not, the campaign context is the stronger lead.

Common mistakes

  • Treating clicks as clicks on the exact asset. Standard asset clicks include ad clicks while the asset was shown; use click-type segmentation in Google Ads when direct interaction detail matters.

  • Adding individual asset rows to recreate campaign totals. Multiple assets can receive an impression from the same ad serving event.

  • Ranking unlike asset types together. Compare sitelinks with sitelinks, callouts with callouts, and equivalent association levels.

  • Confusing no data with no association. Confirm attachment through inventory before diagnosing performance.

  • Optimizing on CTR alone. Ratio metrics are directional and shaped by the entire served ad and its context.

  • Removing a shared asset without checking reuse. Unlinking one association is different from deleting the underlying reusable asset.

  • Ignoring source. Separate advertiser-created and automatically created assets before deciding what you control.

  • Using a short window for low-volume assets. Allow for delivery, seasonality, and conversion lag.

Turn the report into a controlled workflow with HireOtto

HireOtto can pull extension-style asset performance at the customer, campaign, or ad-group level for SITELINK, CALLOUT, STRUCTURED_SNIPPET, CALL, and PRICE assets. The current report returns the association level and status, asset identifiers, type and source, campaign or ad-group context where relevant, and impressions, clicks, CTR, average CPC, cost, conversions, and cost per conversion. You can filter by asset type, sort the results, segment by day, or export a larger result set to CSV.

Use HireOtto in two passes. First, list the current assets and associations to confirm what is attached. Second, pull the matching performance report and ask your AI assistant to join the results, classify the rows, and draft recommendations. HireOtto can then create, link, reuse, or unlink supported assets after you approve a specific action.

There are important review gates. The performance report does not isolate the causal effect of one asset, and its Clicks field does not prove a click on that exact asset. It also does not currently return conversion value or the full readable content of every asset in the performance row, so use the inventory and parent campaign report for that context. Keep a human in the loop for sample-size judgment, message and destination review, and every link, unlink, or replacement decision.

Continue with the HireOtto reporting guide, the extension asset management guide, and the quickstart to connect your AI assistant.

Copyable HireOtto prompts

Account-wide delivery review

Show extension asset performance for account [CUSTOMER_ID] over the last 30 days. Separate results by asset type and association level. Identify active associations with no recent delivery. Do not make changes.

Campaign sitelink analysis

Show campaign-level SITELINK performance for campaign [CAMPAIGN_ID] over the last 30 days, sorted by impressions. Then list the sitelink inventory, join by asset resource name, and flag any association where the content or destination needs human review. Do not unlink anything.

Callout trend check

Show campaign-level CALLOUT performance for campaign [CAMPAIGN_ID] for the last 30 days, segmented by day. Explain that clicks represent ad clicks while the callout was shown, not direct clicks on the callout. Identify delivery changes, but do not make changes.

CSV review for a large account

Export customer-level extension asset performance for account [CUSTOMER_ID] for LAST_30_DAYS as CSV. Include all supported asset types. Give me a short summary, then propose a separate review queue for zero-delivery, low-confidence, and investigate rows.

FAQ

Can I see whether someone clicked a specific sitelink?

The standard Clicks column combines clicks on the ad headline and the asset, where applicable. In Google Ads, use the Click type segment when you need asset-only interaction detail. For non-clickable callouts and structured snippets, treat clicks as ad clicks while the asset was shown.

Why do individual asset impressions exceed the campaign total?

Several assets can appear in one ad impression. Each individual asset row can receive an impression, while the distinct total counts the ad impression once.

Why is an attached asset missing from the performance report?

A newly created or linked association may have no delivery in the selected window. Confirm the association through the inventory or Associations view, then wait for serving data before evaluating it.

Should I remove the asset with the lowest CTR?

Not automatically. CTR is directional and reflects the ad and delivery context, not an isolated asset experiment. Compare like-for-like associations, check volume and parent-level performance, review the actual content, and make a controlled change only when the evidence supports it.

Can the same asset perform differently across campaigns?

Yes. One reusable asset can have multiple associations, and each campaign brings different queries, audiences, budgets, offers, landing pages, and co-served assets. Compare the same asset from one association to the next.

About Me

I’m Suyash – badminton junkie, ex‑GroupM ad‑ops grunt, first marketer at a B2B SaaS startup, and creator of Hiretto: Google Ads MCP Server.

My mission: less clicking, more thinking.

Let’s build leverage together.

Reply

Avatar

or to participate