1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.ads.googleads.v16.resources; 18 19import "google/ads/googleads/v16/common/asset_policy.proto"; 20import "google/ads/googleads/v16/enums/asset_field_type.proto"; 21import "google/ads/googleads/v16/enums/asset_link_primary_status.proto"; 22import "google/ads/googleads/v16/enums/asset_link_primary_status_reason.proto"; 23import "google/ads/googleads/v16/enums/asset_link_status.proto"; 24import "google/ads/googleads/v16/enums/asset_source.proto"; 25import "google/api/field_behavior.proto"; 26import "google/api/resource.proto"; 27 28option csharp_namespace = "Google.Ads.GoogleAds.V16.Resources"; 29option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources"; 30option java_multiple_files = true; 31option java_outer_classname = "CampaignAssetProto"; 32option java_package = "com.google.ads.googleads.v16.resources"; 33option objc_class_prefix = "GAA"; 34option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Resources"; 35option ruby_package = "Google::Ads::GoogleAds::V16::Resources"; 36 37// Proto file describing the CampaignAsset resource. 38 39// A link between a Campaign and an Asset. 40message CampaignAsset { 41 option (google.api.resource) = { 42 type: "googleads.googleapis.com/CampaignAsset" 43 pattern: "customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}" 44 }; 45 46 // Immutable. The resource name of the campaign asset. 47 // CampaignAsset resource names have the form: 48 // 49 // `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}` 50 string resource_name = 1 [ 51 (google.api.field_behavior) = IMMUTABLE, 52 (google.api.resource_reference) = { 53 type: "googleads.googleapis.com/CampaignAsset" 54 } 55 ]; 56 57 // Immutable. The campaign to which the asset is linked. 58 optional string campaign = 6 [ 59 (google.api.field_behavior) = IMMUTABLE, 60 (google.api.resource_reference) = { 61 type: "googleads.googleapis.com/Campaign" 62 } 63 ]; 64 65 // Immutable. The asset which is linked to the campaign. 66 optional string asset = 7 [ 67 (google.api.field_behavior) = IMMUTABLE, 68 (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } 69 ]; 70 71 // Immutable. Role that the asset takes under the linked campaign. 72 // Required. 73 google.ads.googleads.v16.enums.AssetFieldTypeEnum.AssetFieldType field_type = 74 4 [(google.api.field_behavior) = IMMUTABLE]; 75 76 // Output only. Source of the campaign asset link. 77 google.ads.googleads.v16.enums.AssetSourceEnum.AssetSource source = 8 78 [(google.api.field_behavior) = OUTPUT_ONLY]; 79 80 // Status of the campaign asset. 81 google.ads.googleads.v16.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; 82 83 // Output only. Provides the PrimaryStatus of this asset link. 84 // Primary status is meant essentially to differentiate between the plain 85 // "status" field, which has advertiser set values of enabled, paused, or 86 // removed. The primary status takes into account other signals (for assets 87 // its mainly policy and quality approvals) to come up with a more 88 // comprehensive status to indicate its serving state. 89 google.ads.googleads.v16.enums.AssetLinkPrimaryStatusEnum 90 .AssetLinkPrimaryStatus primary_status = 9 91 [(google.api.field_behavior) = OUTPUT_ONLY]; 92 93 // Output only. Provides the details of the primary status and its associated 94 // reasons. 95 repeated google.ads.googleads.v16.common.AssetLinkPrimaryStatusDetails 96 primary_status_details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 97 98 // Output only. Provides a list of reasons for why an asset is not serving or 99 // not serving at full capacity. 100 repeated google.ads.googleads.v16.enums.AssetLinkPrimaryStatusReasonEnum 101 .AssetLinkPrimaryStatusReason primary_status_reasons = 11 102 [(google.api.field_behavior) = OUTPUT_ONLY]; 103} 104