Assets are units of shareable data---such as images, videos, headlines, and
descriptions---that are used to construct different types of ads across
multiple formats, such as display, YouTube, app store, and others.

## Objects

The most basic objects in the API are the following:

- **`Asset`:** A unit of shareable advertising data
  - **`AssetType`:** The kind of content the asset contains---for example, text or image
  - **`AssetFieldType`:** How the asset is used---for example, a text asset type can be used as a headline or a description asset field type
- **`AssetSet`** : A collection of assets centered around a theme or organized by campaign
  - **`AssetSetType`**: The class of the asset set

There are objects that represent links among assets, asset sets, ad groups,
campaigns, and customers:

- Linkages to assets

  - **`CustomerAsset`:** The link between a customer and an asset
  - **`CampaignAsset`:** The link between a campaign and an asset
  - **`AdGroupAsset`:** The link between an ad group and an asset
  - **`AssetSetAsset`:** The link between an asset set and an asset
- Linkages to asset sets

  - **`CustomerAssetSet`:** The link between a customer and an asset set
  - **`CampaignAssetSet`:** The link between a campaign and an asset set
  - **`AdGroupAssetSet`:** The link between an ad group and an asset set

### Campaign assets example

Here's a visual representation of how some of the objects can be linked. The
example starts with campaigns at the top, but the same hierarchy also applies to
customers and ad groups.
![Campaign asset set diagram](https://developers.google.com/static/google-ads/api/images/campaignassetset.svg) Diagram of campaign asset sets

Before you create a `CampaignAssetSet`, you must first create a
[`Campaign`](https://developers.google.com/google-ads/api/docs/campaigns/create-campaigns) and an `AssetSet` containing
one or more assets. You can assemble assets to create an inventory for all
applicable ad formats in your campaign, or let Google Ads mix and match available
assets based on which channel the ad is being served: YouTube, Gmail, Search,
and others.

Key point: A `Campaign` can link to one or more `CampaignAssetSet` objects, but
each `CampaignAssetSet` can be linked to only one `Campaign`.

## Asset types linked to ads

Some asset types can be linked directly to ads.

| Asset type | AssetFieldType | Ad type |
|---|---|---|
| Video | YOUTUBE_VIDEO | App ad App engagement ad Local ad Responsive display ad |
| Media bundle | MEDIA_BUNDLE CUSTOM_LAYOUT | App ad Display upload ad |
| Image | MARKETING_IMAGE SQUARE_MARKETING_IMAGE LOGO LANDSCAPE_LOGO PORTRAIT_MARKETING_IMAGE CLASSIC_DISPLAY_IMAGE | App ad App engagement ad Local ad Responsive display ad Demand Gen multi-asset ad |
| Text | HEADLINE LONG_HEADLINE DESCRIPTION MANDATORY_AD_TEXT CALL_TO_ACTION_SELECTION BUSINESS_NAME | App ad App engagement ad Local ad Responsive display ad Responsive search ad Smart campaign ad |
| Call to action | CALL_TO_ACTION | Local ad Responsive display ad |

## Asset types linked to customers, campaigns, and ad groups

Some types of assets can be linked to customers, campaigns, or ad groups through
linkage objects.

> [!NOTE]
> **Note:** For `BUSINESS_MESSAGE` assets, you can assign only one active business message asset for each message provider type at the customer, campaign, and ad group levels.

| Asset type | AssetFieldType | Linkage | Mutable |
|---|---|---|---|
| Business message | BUSINESS_MESSAGE | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Text | BUSINESS_NAME | CampaignAsset CustomerAsset | No |
| Image | AD_IMAGE | AdGroupAsset CampaignAsset | No |
| Image | BUSINESS_LOGO | CampaignAsset CustomerAsset | No |
| Lead form | LEAD_FORM | CampaignAsset | Yes |
| Promotion | PROMOTION | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Callout | CALLOUT | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Structured snippet | STRUCTURED_SNIPPET | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Sitelink | SITELINK | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Mobile app | MOBILE_APP | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Hotel callout | HOTEL_CALLOUT | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Call | CALL | AdGroupAsset CampaignAsset CustomerAsset | Yes |
| Price | PRICE | AdGroupAsset CampaignAsset CustomerAsset | Yes |

### Location assets

Location assets are handled differently from other asset types. See [Location
assets](https://developers.google.com/google-ads/api/docs/assets/location-assets) for details.

### Text customization

Assets generated by text customization (formerly automatically created assets)
cannot be modified. The
[`AssetSource`](https://developers.google.com/google-ads/api/reference/rpc/v26/AssetSourceEnum.AssetSource) indicates whether an
asset was user-created or was automatically generated by the system. Mutable
types like sitelink can't be linked to assets created by text customization.

## Asset types linked to asset sets

Certain asset types can be linked to specific types of asset sets.

| AssetType | AssetSetType | Linkage | Mutable |
|---|---|---|---|
| PAGE_FEED | PAGE_FEED | CampaignAssetSet | Yes |
| DYNAMIC_EDUCATION | DYNAMIC_EDUCATION | CampaignAssetSet | Yes |
| DYNAMIC_CUSTOM | DYNAMIC_CUSTOM | CampaignAssetSet | Yes |
| DYNAMIC_HOTELS_AND_RENTALS | DYNAMIC_HOTELS_AND_RENTALS | CampaignAssetSet | Yes |
| DYNAMIC_REAL_ESTATE | DYNAMIC_REAL_ESTATE | CampaignAssetSet | Yes |
| DYNAMIC_LOCAL | DYNAMIC_LOCAL | CampaignAssetSet | Yes |
| DYNAMIC_FLIGHTS | DYNAMIC_FLIGHTS | CampaignAssetSet | Yes |
| DYNAMIC_JOBS | DYNAMIC_JOBS | CampaignAssetSet | Yes |
| DYNAMIC_TRAVEL | DYNAMIC_TRAVEL | CampaignAssetSet | Yes |
| LOCATION | LOCATION_SYNC | CustomerAssetSet CampaignAssetSet AdGroupAssetSet | No (system generated) |
| LOCATION | BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP | CampaignAssetSet AdGroupAssetSet | No (system generated) |
| LOCATION | CHAIN_DYNAMIC_LOCATION_GROUP | CampaignAssetSet AdGroupAssetSet | No (system generated) |
| LOCATION | STATIC_LOCATION_GROUP | CampaignAssetSet AdGroupAssetSet | No (system generated) |