مجموعة مواد العرض في "حملات الأداء الأفضل" هي مجموعة من مواد العرض، مثل الصور والعناوين والأوصاف والفيديوهات، التي تركّز على موضوع معيّن أو تكون ذات صلة بشريحة جمهور مستهدَفة تضيفها عند إنشاء "حملة الأداء الأفضل". تُستخدَم مجموعة مواد العرض لتجميع كل إعلاناتك وإنشاء مستودع إعلاني لكل أشكال الإعلانات التي تنطبق على هدفك الإعلاني. لتحسين أداء إعلانك، يختار النظام مواد العرض بذكاء ويجمعها لتناسب بشكل أفضل قناة "إعلانات Google" المحدّدة (مثل YouTube أو Gmail أو "بحث Google") التي يظهر فيها إعلانك. مزيد من المعلومات عن مجموعات مواد العرض
لا يمكن مشاركة مجموعة مواد عرض بين الحملات. تتطلّب كل حملة مجموعة مواد عرض واحدة على الأقل، بحدّ أقصى 100 مجموعة مواد عرض لكل حملة.
تحتوي مجموعات مواد العرض على عنوان URL نهائي واحد أو أكثر. يجب توفّر عنوان URL نهائي واحد على الأقل،
باستثناء حملات الخدمات المحلّية ومجموعات مواد عرض البيع بالتجزئة التي لا تتضمّن روابط AssetGroupAsset مخصّصة
(أو التي تتضمّن مواد عرض MEDIA_BUNDLE بتنسيق HTML5 فقط). استخدِم عنوان URL الأكثر صلةً بمسار الإحالة الناجحة لمجموعة مواد العرض وأهداف الحملة المحدّدة. لا يمكن استبعاد عنوان URL النهائي لمجموعة مواد العرض من WEBPAGE
معايير الحملة.
ربط مجموعات مواد العرض بمواد العرض
يتم ربط AssetGroup بـ Asset من خلال إنشاء AssetGroupAsset جديد وتقديم ما يلي:
- اسم المورد الخاص بـ
AssetGroup - اسم المورد الخاص بـ
Asset AssetFieldTypeمنAssetفيAssetGroup
يمكن ربط AssetGroup واحد بعناصر Asset متعدّدة. يمكن ربط Asset واحد
بمجموعات مواد عرض متعددة. يمكن أن يحتوي Asset واحد على أنواع حقول مختلفة في
كائنات AssetGroup مختلفة.
يُرجى الاطّلاع على دليل تنظيم الطلبات لمعرفة التفاصيل حول
استخدام المعرّفات المؤقتة وترتيب عناصر AssetOperation وAssetGroupOperation وAssetGroupAssetOperation في طلبات التغيير المجمّعة.
القيود:
- يجب أن تكون طلبات
AssetGroupOperationذرية. لا تتوفّر ميزة التعطُّل الجزئي. - لا يمكن تعديل موارد مجموعة مواد العرض في معالجة على دفعات باستخدام
AssetGroupOperation. بدلاً من ذلك، استخدِمGoogleAdsService.Mutateالعادية معAssetGroupServiceلتعديل موارد مجموعات مواد العرض في عملية معالجة على دفعات. - يمكن استخدام
AssetGroupAssetOperationضمنBatchJobServiceلربط مواد العرض بمجموعة مواد عرض أو إلغاء ربطها.
ربط مجموعات مواد العرض بمواد العرض في "حملات الأداء الأفضل" للبيع بالتجزئة
يمكنك إنشاء عناصر من النوع "AssetGroup" في حملات البيع بالتجزئة من نوع "الأداء الأفضل" بدون
استيفاء الحدّ الأدنى لمتطلبات مواد العرض. لضمان استمرار إتاحة AssetGroup في "حملة الأداء الأفضل" للبيع بالتجزئة على كلّ من Google Ads API وواجهة مستخدم "إعلانات Google"، يجب أن تكون في إحدى الحالتَين التاليتَين:
- بدون أي عناصر
Assetمخصّصة مرتبطة: تعتمد على مواد العرض التي يتم إنشاؤها تلقائيًا من حساب Google Merchant Center المرتبط (تكون روابط العلامات التجاريةfinal_urlsوعلى مستوى الحملةCampaignAssetاختيارية، وتُعفى مواد عرض HTML5MEDIA_BUNDLEالمستقلة من تفعيل الحد الأدنى من متطلبات النص أو الصورة أو العلامة التجارية أوfinal_urls). يمكنك أيضًا إعادةAssetGroupإلى هذه الحالة من خلال إلغاء ربط جميع كائناتAssetGroupAssetالمخصّصة في طلب واحد. - استيفاء الحدّ الأدنى من متطلبات
Asset: تحتوي على مواد عرض مخصّصة، وتضبطfinal_urlsواحدًا على الأقل علىAssetGroup(يتطابق مع نطاق الموقع الإلكتروني المرتبط على Merchant Center)، وتستوفي الحدّ الأدنى من متطلبات مواد العرض (بما في ذلك روابطBUSINESS_NAMEوLOGOCampaignAssetعلى مستوى الحملة عند تفعيل إرشادات العلامة التجارية).
كأفضل ممارسة، ننصحك بتحميل مواد العرض لتحقيق أقصى قدر من الوصول على مستوى جميع المساحات الإعلانية. ومع ذلك، يجب ربط جميع مواد عرض الإعلان المطلوبة في طلب واحد بدون استخدام الفشل الجزئي، ولا يمكنك إضافة مواد عرض الإعلان إلى مجموعات مواد العرض واحدة تلو الأخرى باستخدام طلبات منفصلة.
جافا
/** Creates a list of MutateOperations that create a new AssetGroup. */ private List<MutateOperation> createAssetGroupOperations( long customerId, String assetGroupResourceName, List<String> headlineAssetResourceNames, List<String> descriptionAssetResourceNames, boolean brandGuidelinesEnabled) throws IOException { List<MutateOperation> mutateOperations = new ArrayList<>(); String campaignResourceName = ResourceNames.campaign(customerId, PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID); // Creates the AssetGroup. AssetGroup assetGroup = AssetGroup.newBuilder() .setName("Performance Max asset group #" + getPrintableDateTime()) .setCampaign(campaignResourceName) .addFinalUrls("http://www.example.com") .addFinalMobileUrls("http://www.example.com") .setStatus(AssetGroupStatus.PAUSED) .setResourceName(assetGroupResourceName) .build(); AssetGroupOperation assetGroupOperation = AssetGroupOperation.newBuilder().setCreate(assetGroup).build(); mutateOperations.add( MutateOperation.newBuilder().setAssetGroupOperation(assetGroupOperation).build()); // For the list of required assets for a Performance Max campaign, see // https://developers.google.com/google-ads/api/docs/performance-max/assets // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset // and providing: // the resource name of the AssetGroup // the resource name of the Asset // the field_type of the Asset in this AssetGroup. // To learn more about AssetGroups, see // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups // Links the previously created multiple text assets. // Links the headline assets. for (String resourceName : headlineAssetResourceNames) { mutateOperations.add( createAssetGroupAssetMutateOperation( AssetFieldType.HEADLINE, resourceName, assetGroupResourceName)); } // Links the description assets. for (String resourceName : descriptionAssetResourceNames) { mutateOperations.add( createAssetGroupAssetMutateOperation( AssetFieldType.DESCRIPTION, resourceName, assetGroupResourceName)); } // Creates and links the long headline text asset. List<MutateOperation> createAndLinkTextAssetOperations = createAndLinkTextAsset(customerId, "Travel the World", AssetFieldType.LONG_HEADLINE); mutateOperations.addAll(createAndLinkTextAssetOperations); // Creates and links the business name and logo assets. List<MutateOperation> createAndLinkBrandAssets = createAndLinkBrandAssets( customerId, brandGuidelinesEnabled, "Interplanetary Cruises", "https://gaagl.page.link/bjYi", "Marketing Logo"); mutateOperations.addAll(createAndLinkBrandAssets); // Creates and links the image assets. // Creates and links the Marketing Image Asset. createAndLinkTextAssetOperations = createAndLinkImageAsset( customerId, "https://gaagl.page.link/Eit5", AssetFieldType.MARKETING_IMAGE, "Marketing Image"); mutateOperations.addAll(createAndLinkTextAssetOperations); // Creates and links the Square Marketing Image Asset. createAndLinkTextAssetOperations = createAndLinkImageAsset( customerId, "https://gaagl.page.link/bjYi", AssetFieldType.SQUARE_MARKETING_IMAGE, "Square Marketing Image"); mutateOperations.addAll(createAndLinkTextAssetOperations); return mutateOperations; }
#C
/// <summary> /// Creates a list of MutateOperations that create a new asset_group. /// </summary> /// <param name="campaignResourceName">The campaign resource name.</param> /// <param name="assetGroupResourceName">The asset group resource name.</param> /// <param name="headlineAssetResourceNames">The headline asset resource names.</param> /// <param name="descriptionAssetResourceNames">The description asset resource /// names.</param> /// <param name="resourceNameGenerator">A generator for unique temporary ID's.</param> /// <param name="config">The Google Ads config.</param> /// <param name="brandGuidelinesEnabled">Whether or not to enable brand guidelines.</param> /// <returns>A list of MutateOperations that create the new asset group.</returns> private List<MutateOperation> CreateAssetGroupOperations( string campaignResourceName, string assetGroupResourceName, List<string> headlineAssetResourceNames, List<string> descriptionAssetResourceNames, AssetTemporaryResourceNameGenerator resourceNameGenerator, GoogleAdsConfig config, bool brandGuidelinesEnabled) { List<MutateOperation> operations = new List<MutateOperation>(); // Create the AssetGroup operations.Add( new MutateOperation() { AssetGroupOperation = new AssetGroupOperation() { Create = new AssetGroup() { Name = "Performance Max asset group #" + ExampleUtilities.GetRandomString(), Campaign = campaignResourceName, FinalUrls = { "http://www.example.com" }, FinalMobileUrls = { "http://www.example.com" }, Status = AssetGroupStatus.Paused, ResourceName = assetGroupResourceName } } } ); // For the list of required assets for a Performance Max campaign, see // https://developers.google.com/google-ads/api/docs/performance-max/assets // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset // and providing: // the resource name of the AssetGroup // the resource name of the Asset // the field_type of the Asset in this AssetGroup. // // To learn more about AssetGroups, see // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups // Link the previously created multiple text assets. // Link the headline assets. foreach (string resourceName in headlineAssetResourceNames) { operations.Add( new MutateOperation() { AssetGroupAssetOperation = new AssetGroupAssetOperation() { Create = new AssetGroupAsset() { FieldType = AssetFieldType.Headline, AssetGroup = assetGroupResourceName, Asset = resourceName } } } ); } // Link the description assets. foreach (string resourceName in descriptionAssetResourceNames) { operations.Add( new MutateOperation() { AssetGroupAssetOperation = new AssetGroupAssetOperation() { Create = new AssetGroupAsset() { FieldType = AssetFieldType.Description, AssetGroup = assetGroupResourceName, Asset = resourceName } } } ); } // Create and link the brand assets. operations.AddRange( CreateAndLinkBrandAssets( assetGroupResourceName, campaignResourceName, resourceNameGenerator, "Interplanetary Cruises", "https://gaagl.page.link/bjYi", "Marketing Logo", config, brandGuidelinesEnabled ) ); // Create and link the long headline text asset. operations.AddRange( CreateAndLinkTextAsset( assetGroupResourceName, resourceNameGenerator.Next(), "Travel the World", AssetFieldType.LongHeadline ) ); // Create and link the image assets. // Create and link the Marketing Image Asset. operations.AddRange( CreateAndLinkImageAsset( assetGroupResourceName, resourceNameGenerator.Next(), "https://gaagl.page.link/Eit5", AssetFieldType.MarketingImage, "Marketing Image", config ) ); // Create and link the Square Marketing Image Asset. operations.AddRange( CreateAndLinkImageAsset( assetGroupResourceName, resourceNameGenerator.Next(), "https://gaagl.page.link/bjYi", AssetFieldType.SquareMarketingImage, "Square Marketing Image", config ) ); return operations; }
PHP
private static function createAssetGroupOperations( int $customerId, array $headlineAssetResourceNames, array $descriptionAssetResourceNames, bool $brandGuidelinesEnabled ): array { $operations = []; // Creates a new mutate operation that creates an asset group operation. $operations[] = new MutateOperation( [ 'asset_group_operation' => new AssetGroupOperation( [ 'create' => new AssetGroup( [ 'resource_name' => ResourceNames::forAssetGroup( $customerId, self::ASSET_GROUP_TEMPORARY_ID ), 'name' => 'Performance Max asset group #' . Helper::getPrintableDatetime(), 'campaign' => ResourceNames::forCampaign( $customerId, self::PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID ), 'final_urls' => ['http://www.example.com'], 'final_mobile_urls' => ['http://www.example.com'], 'status' => AssetGroupStatus::PAUSED ] ) ] ) ] ); // For the list of required assets for a Performance Max campaign, see // https://developers.google.com/google-ads/api/docs/performance-max/assets // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset // and providing: // - the resource name of the AssetGroup // - the resource name of the Asset // - the field_type of the Asset in this AssetGroup // // To learn more about AssetGroups, see // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups. // Links the previously created multiple text assets. // Links the headline assets. foreach ($headlineAssetResourceNames as $resourceName) { $operations[] = new MutateOperation( [ 'asset_group_asset_operation' => new AssetGroupAssetOperation( [ 'create' => new AssetGroupAsset( [ 'asset' => $resourceName, 'asset_group' => ResourceNames::forAssetGroup( $customerId, self::ASSET_GROUP_TEMPORARY_ID ), 'field_type' => AssetFieldType::HEADLINE ] ) ] ) ] ); } // Links the description assets. foreach ($descriptionAssetResourceNames as $resourceName) { $operations[] = new MutateOperation( [ 'asset_group_asset_operation' => new AssetGroupAssetOperation( [ 'create' => new AssetGroupAsset( [ 'asset' => $resourceName, 'asset_group' => ResourceNames::forAssetGroup( $customerId, self::ASSET_GROUP_TEMPORARY_ID ), 'field_type' => AssetFieldType::DESCRIPTION ] ) ] ) ] ); } // Creates and links the long headline text asset. $operations = array_merge( $operations, self::createAndLinkTextAsset( $customerId, 'Travel the World', AssetFieldType::LONG_HEADLINE ) ); // Creates and links the business name text asset. $operations = array_merge( $operations, self::createAndLinkBrandAssets( $customerId, $brandGuidelinesEnabled, 'Interplanetary Cruises', 'https://gaagl.page.link/bjYi', 'Marketing Logo' ) ); // Creates and links the image assets. // Creates and links the Marketing Image Asset. $operations = array_merge( $operations, self::createAndLinkImageAsset( $customerId, 'https://gaagl.page.link/Eit5', AssetFieldType::MARKETING_IMAGE, 'Marketing Image' ) ); // Creates and links the Square Marketing Image Asset. $operations = array_merge( $operations, self::createAndLinkImageAsset( $customerId, 'https://gaagl.page.link/bjYi', AssetFieldType::SQUARE_MARKETING_IMAGE, 'Square Marketing Image' ) ); return $operations; }
Python
def create_asset_group_operation( client: GoogleAdsClient, customer_id: str, headline_asset_resource_names: List[str], description_asset_resource_names: List[str], brand_guidelines_enabled: bool, ) -> List[MutateOperation]: """Creates a list of MutateOperations that create a new asset_group. A temporary ID will be assigned to this asset group so that it can be referenced by other objects being created in the same Mutate request. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. headline_asset_resource_names: a list of headline resource names. description_asset_resource_names: a list of description resource names. brand_guidelines_enabled: a boolean value indicating if the campaign is enabled for brand guidelines. Returns: MutateOperations that create a new asset group and related assets. """ asset_group_service: AssetGroupServiceClient = client.get_service( "AssetGroupService" ) campaign_service: CampaignServiceClient = client.get_service( "CampaignService" ) operations: List[MutateOperation] = [] # Create the AssetGroup mutate_operation: MutateOperation = client.get_type("MutateOperation") asset_group: AssetGroup = mutate_operation.asset_group_operation.create asset_group.name = f"Performance Max asset group #{uuid4()}" asset_group.campaign = campaign_service.campaign_path( customer_id, _PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID ) asset_group.final_urls.append("http://www.example.com") asset_group.final_mobile_urls.append("http://www.example.com") asset_group.status = client.enums.AssetGroupStatusEnum.PAUSED asset_group.resource_name = asset_group_service.asset_group_path( customer_id, _ASSET_GROUP_TEMPORARY_ID, ) operations.append(mutate_operation) # For the list of required assets for a Performance Max campaign, see # https://developers.google.com/google-ads/api/docs/performance-max/assets # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset # and providing: # the resource name of the AssetGroup # the resource name of the Asset # the field_type of the Asset in this AssetGroup. # # To learn more about AssetGroups, see # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups # Link the previously created multiple text assets. # Link the headline assets. for resource_name in headline_asset_resource_names: mutate_operation: MutateOperation = client.get_type("MutateOperation") asset_group_asset: AssetGroupAsset = ( mutate_operation.asset_group_asset_operation.create ) asset_group_asset.field_type = client.enums.AssetFieldTypeEnum.HEADLINE asset_group_asset.asset_group = asset_group_service.asset_group_path( customer_id, _ASSET_GROUP_TEMPORARY_ID, ) asset_group_asset.asset = resource_name operations.append(mutate_operation) # Link the description assets. for resource_name in description_asset_resource_names: mutate_operation: MutateOperation = client.get_type("MutateOperation") asset_group_asset: AssetGroupAsset = ( mutate_operation.asset_group_asset_operation.create ) asset_group_asset.field_type = ( client.enums.AssetFieldTypeEnum.DESCRIPTION ) asset_group_asset.asset_group = asset_group_service.asset_group_path( customer_id, _ASSET_GROUP_TEMPORARY_ID, ) asset_group_asset.asset = resource_name operations.append(mutate_operation) # Create and link the long headline text asset. mutate_operations: List[MutateOperation] = create_and_link_text_asset( client, customer_id, "Travel the World", client.enums.AssetFieldTypeEnum.LONG_HEADLINE, ) operations.extend(mutate_operations) # Create and link the business name and logo asset. mutate_operations: List[MutateOperation] = create_and_link_brand_assets( client, customer_id, brand_guidelines_enabled, "Interplanetary Cruises", "https://gaagl.page.link/bjYi", "Marketing Logo", ) operations.extend(mutate_operations) # Create and link the image assets. # Create and link the Marketing Image Asset. mutate_operations: List[MutateOperation] = create_and_link_image_asset( client, customer_id, "https://gaagl.page.link/Eit5", client.enums.AssetFieldTypeEnum.MARKETING_IMAGE, "Marketing Image", ) operations.extend(mutate_operations) # Create and link the Square Marketing Image Asset. mutate_operations: List[MutateOperation] = create_and_link_image_asset( client, customer_id, "https://gaagl.page.link/bjYi", client.enums.AssetFieldTypeEnum.SQUARE_MARKETING_IMAGE, "Square Marketing Image", ) operations.extend(mutate_operations) return operations
Ruby
# Creates a list of MutateOperations that create a new asset_group. # # A temporary ID will be assigned to this asset group so that it can # be referenced by other objects being created in the same Mutate request. def create_asset_group_operation( client, customer_id, headline_asset_resource_names, description_asset_resource_names, brand_guidelines_enabled) operations = [] # Create the AssetGroup operations << client.operation.mutate do |m| m.asset_group_operation = client.operation.create_resource.asset_group do |ag| ag.name = "Performance Max asset group #{SecureRandom.uuid}" ag.campaign = client.path.campaign( customer_id, PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID) ag.final_urls << "http://www.example.com" ag.final_mobile_urls << "http://www.example.com" ag.status = :PAUSED ag.resource_name = client.path.asset_group( customer_id, ASSET_GROUP_TEMPORARY_ID) end end # For the list of required assets for a Performance Max campaign, see # https://developers.google.com/google-ads/api/docs/performance-max/assets # # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset # and providing: # the resource name of the AssetGroup # the resource name of the Asset # the field_type of the Asset in this AssetGroup. # # To learn more about AssetGroups, see # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups # Link the previously created multiple text assets. # Link the headline assets. headline_asset_resource_names.each do |resource_name| operations << client.operation.mutate do |m| m.asset_group_asset_operation = client.operation.create_resource .asset_group_asset do |aga| aga.field_type = :HEADLINE aga.asset_group = client.path.asset_group( customer_id, ASSET_GROUP_TEMPORARY_ID) aga.asset = resource_name end end end # Link the description assets. description_asset_resource_names.each do |resource_name| operations << client.operation.mutate do |m| m.asset_group_asset_operation = client.operation.create_resource .asset_group_asset do |aga| aga.field_type = :DESCRIPTION aga.asset_group = client.path.asset_group( customer_id, ASSET_GROUP_TEMPORARY_ID) aga.asset = resource_name end end end # Create and link the long headline text asset. operations += create_and_link_text_asset( client, customer_id, "Travel the World", :LONG_HEADLINE) # Create and link the business name and logo asset. operations += create_and_link_brand_assets( client, customer_id, brand_guidelines_enabled, "Interplanetary Cruises", "https://gaagl.page.link/bjYi", "Marketing Logo") # Create and link the image assets. # Create and link the Marketing Image Asset. operations += create_and_link_image_asset( client, customer_id, "https://gaagl.page.link/Eit5", :MARKETING_IMAGE, "Marketing Image") # Create and link the Square Marketing Image Asset. operations += create_and_link_image_asset( client, customer_id, "https://gaagl.page.link/bjYi", :SQUARE_MARKETING_IMAGE, "Square Marketing Image") operations end
Perl
sub create_asset_group_operations { my ( $customer_id, $headline_asset_resource_names, $description_asset_resource_names, $brand_guidelines_enabled ) = @_; my $operations = []; # Create a mutate operation that creates an asset group operation. push @$operations, Google::Ads::GoogleAds::V26::Services::GoogleAdsService::MutateOperation-> new({ assetGroupOperation => Google::Ads::GoogleAds::V26::Services::AssetGroupService::AssetGroupOperation ->new({ create => Google::Ads::GoogleAds::V26::Resources::AssetGroup->new({ resourceName => Google::Ads::GoogleAds::V26::Utils::ResourceNames::asset_group( $customer_id, ASSET_GROUP_TEMPORARY_ID ), name => "Performance Max asset group #" . uniqid(), campaign => Google::Ads::GoogleAds::V26::Utils::ResourceNames::campaign( $customer_id, PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID ), finalUrls => ["http://www.example.com"], finalMobileUrls => ["http://www.example.com"], status => Google::Ads::GoogleAds::V26::Enums::AssetGroupStatusEnum::PAUSED })})}); # For the list of required assets for a Performance Max campaign, see # https://developers.google.com/google-ads/api/docs/performance-max/assets. # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset # and providing: # - the resource name of the AssetGroup # - the resource name of the Asset # - the fieldType of the Asset in this AssetGroup # # To learn more about AssetGroups, see # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups. # Link the previously created multiple text assets. # Link the headline assets. foreach my $resource_name (@$headline_asset_resource_names) { push @$operations, Google::Ads::GoogleAds::V26::Services::GoogleAdsService::MutateOperation ->new({ assetGroupAssetOperation => Google::Ads::GoogleAds::V26::Services::AssetGroupAssetService::AssetGroupAssetOperation ->new({ create => Google::Ads::GoogleAds::V26::Resources::AssetGroupAsset->new({ asset => $resource_name, assetGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::asset_group( $customer_id, ASSET_GROUP_TEMPORARY_ID ), fieldType => HEADLINE })})}); } # Link the description assets. foreach my $resource_name (@$description_asset_resource_names) { push @$operations, Google::Ads::GoogleAds::V26::Services::GoogleAdsService::MutateOperation ->new({ assetGroupAssetOperation => Google::Ads::GoogleAds::V26::Services::AssetGroupAssetService::AssetGroupAssetOperation ->new({ create => Google::Ads::GoogleAds::V26::Resources::AssetGroupAsset->new({ asset => $resource_name, assetGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::asset_group( $customer_id, ASSET_GROUP_TEMPORARY_ID ), fieldType => DESCRIPTION })})}); } # Create and link the long headline text asset. push @$operations, @{create_and_link_text_asset($customer_id, "Travel the World", LONG_HEADLINE)}; # Create and link the business name and logo asset. push @$operations, @{ create_and_link_brand_assets( $customer_id, $brand_guidelines_enabled, "Interplanetary Cruises", "https://gaagl.page.link/bjYi", "Marketing Logo" )}; # Create and link the image assets. # Create and link the marketing image asset. push @$operations, @{ create_and_link_image_asset( $customer_id, "https://gaagl.page.link/Eit5", MARKETING_IMAGE, "Marketing Image" )}; # Create and link the square marketing image asset. push @$operations, @{ create_and_link_image_asset( $customer_id, "https://gaagl.page.link/bjYi", SQUARE_MARKETING_IMAGE, "Square Marketing Image" )}; return $operations; }
curl
"حملات الأداء الأفضل" في "الخدمات المحلّية"
تتّسم "حملات الأداء الأفضل" في "الخدمات المحلّية من Google" (GLS PMax) بعدّة خصائص فريدة في ما يتعلّق بمجموعات مواد العرض:
- تجاوز الحدّ الأدنى لمتطلبات مواد العرض: على عكس "حملات الأداء الأفضل" العادية، لا تتطلّب "حملات الأداء الأفضل" في GLS مواد عرض عادية (مثل العناوين أو الأوصاف أو الصور) أو
final_urlsلعرض الإعلانات، ولا تتيح استخدام روابطAssetGroupAssetمخصّصة. - معلومات "الخدمات المحلّية من Google": يمكنك ضبط البيانات الوصفية لـ "إعلانات الخدمات المحلّية" في مجموعة مواد عرض من خلال ملء حقل
google_local_services_infoبرسالةGoogleLocalServicesInfo:-
category_id(سلسلة، غير قابلة للتغيير): تحدّد رقم تعريف فئة "الخدمات المحلّية" (بتنسيق XCAT، على سبيل المثال،xcat:service_area_business_plumber). يجب إرفاق استهدافاتlocal_services_idAssetGroupSignal(التي تتحقّق من صحة رقم تعريف الخدمة في مقابلcategory_id) أوcallouts، وغير قابلة للتغيير بعد إنشاءAssetGroup. callouts(مكرّرLocalServicesCallout): وسائل الشرح المحدّدة لعرضها، ويشير كل منها إلىcallout_idصالح.- التحقّق: تُجري واجهة برمجة التطبيقات عملية تحقّق على صعيد الخادم للتأكّد من أنّ أي
callout_idيتم تقديمه صالح لفئة المعلِن المحدّدة ولغته. - قابلية التغيير: على الرغم من أنّ
category_idغير قابل للتغيير، فإنّ قائمةcalloutsقابلة للتغيير بالكامل. يمكنك إضافة وسائل الشرح أو استبدالها أو محوها (من خلال تمرير قائمة فارغة أو مثيل تلقائي إلى قناع الحقلgoogle_local_services_info.callouts) في عمليات التعديل اللاحقة.
- التحقّق: تُجري واجهة برمجة التطبيقات عملية تحقّق على صعيد الخادم للتأكّد من أنّ أي
-
معاينة الإعلانات لمجموعات مواد العرض
بعد إنشاء مجموعات مواد العرض وربط مواد العرض بها، يمكنك إنشاء معاينة قابلة للمشاركة لعرض شكل الإعلانات التي تم إنشاؤها من كل مجموعة مواد عرض.
من خلال تمرير أرقام تعريف مجموعات مواد العرض إلى ShareablePreviewService.GenerateShareablePreviews، يمكنك استرداد عناوين URL لمعاينات الإعلانات التي ستتم مشاركتها مع المستخدمين، بالإضافة إلى الطابع الزمني لانتهاء صلاحيتها.
مجموعات مواد عرض متعددة
يمكنك إنشاء عدّة مجموعات مواد عرض ضمن الحملة نفسها لتجميع مواد العرض حسب الموضوع أو لتخصيص مواد العرض لشرائح جمهور مستهدفة مختلفة باستخدام عنوان URL النهائي نفسه. يمكنك أيضًا إنشاء مجموعات مواد عرض منفصلة لعناوين URL نهائية مختلفة إذا لم تكن مواد العرض عامة بما يكفي لاستخدامها في جميع عناوين URL في النطاق عند تفعيل ميزة "توسيع عنوان URL".