پیشنهادها را میتوان در سطوح مختلف سلسله مراتب کمپین تنظیم کرد: کمپین، گروه تبلیغاتی یا معیار گروه تبلیغاتی. پیشنهادی که در سطح پایینتری تنظیم میشود، پیشنهادهای سطوح بالاتر را لغو میکند. به عنوان مثال، پیشنهادی که برای یک گروه تبلیغاتی خاص در یک کمپین تنظیم میشود، پیشنهاد استراتژی پیشنهاد سطح کمپین را لغو میکند.
بهروزرسانی پیشنهادهای قیمت
میتوان چندین پیشنهاد قیمت از انواع مختلف را بهطور همزمان تنظیم کرد؛ برای مثال، cpc_bid_micros
و cpm_bid_micros
میتوانند هر دو تنظیم شوند، اما فقط پیشنهادی که مربوط به نوع استراتژی پیشنهاد قیمت انتخابشده است، استفاده میشود.
هنگام بهروزرسانی پیشنهادها، میتوانید فقط پیشنهادهایی را که میخواهید بهروزرسانی کنید، لحاظ کنید. سپس گوگل ادز آن پیشنهادها را بهروزرسانی میکند، اما پیشنهادهای دیگر را تغییر، اضافه یا حذف نمیکند.
مثال کد زیر، پیشنهاد قیمت CPC یک گروه تبلیغاتی موجود را بهروزرسانی میکند.
جاوا
public static void main(String[] args) { UpdateAdGroupParams params = new UpdateAdGroupParams(); if (!params.parseArguments(args)) { // Either pass the required parameters for this example on the command line, or insert them // into the code here. See the parameter class definition above for descriptions. params.customerId = Long.parseLong("INSERT_CUSTOMER_ID_HERE"); params.adGroupId = Long.parseLong("INSERT_AD_GROUP_ID_HERE"); params.cpcBidMicroAmount = Long.parseLong("INSERT_CPC_BID_MICRO_AMOUNT_HERE"); } GoogleAdsClient googleAdsClient = null; try { googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build(); } catch (FileNotFoundException fnfe) { System.err.printf( "Failed to load GoogleAdsClient configuration from file. Exception: %s%n", fnfe); System.exit(1); } catch (IOException ioe) { System.err.printf("Failed to create GoogleAdsClient. Exception: %s%n", ioe); System.exit(1); } try { new UpdateAdGroup() .runExample( googleAdsClient, params.customerId, params.adGroupId, params.cpcBidMicroAmount); } catch (GoogleAdsException gae) { // GoogleAdsException is the base class for most exceptions thrown by an API request. // Instances of this exception have a message and a GoogleAdsFailure that contains a // collection of GoogleAdsErrors that indicate the underlying causes of the // GoogleAdsException. System.err.printf( "Request ID %s failed due to GoogleAdsException. Underlying errors:%n", gae.getRequestId()); int i = 0; for (GoogleAdsError googleAdsError : gae.getGoogleAdsFailure().getErrorsList()) { System.err.printf(" Error %d: %s%n", i++, googleAdsError); } System.exit(1); } }
سی شارپ
public void Run(GoogleAdsClient client, long customerId, long adGroupId, long? cpcBidMicroAmount) { AdGroupServiceClient adGroupService = client.GetService(Services.V22.AdGroupService); // Create an ad group with the specified ID. AdGroup adGroup = new AdGroup(); adGroup.ResourceName = ResourceNames.AdGroup(customerId, adGroupId); // Pause the ad group. adGroup.Status = AdGroupStatusEnum.Types.AdGroupStatus.Paused; // Update the CPC bid if specified. if (cpcBidMicroAmount != null) { adGroup.CpcBidMicros = cpcBidMicroAmount.Value; } // Create the operation. AdGroupOperation operation = new AdGroupOperation() { Update = adGroup, UpdateMask = FieldMasks.AllSetFieldsOf(adGroup) }; try { // Update the ad group. MutateAdGroupsResponse retVal = adGroupService.MutateAdGroups( customerId.ToString(), new AdGroupOperation[] { operation }); // Display the results. MutateAdGroupResult adGroupResult = retVal.Results[0]; Console.WriteLine($"Ad group with resource name '{adGroupResult.ResourceName}' " + "was updated."); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
پی اچ پی
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId, int $adGroupId, $bidMicroAmount ) { // Creates an ad group object with the specified resource name and other changes. $adGroup = new AdGroup([ 'resource_name' => ResourceNames::forAdGroup($customerId, $adGroupId), 'cpc_bid_micros' => $bidMicroAmount, 'status' => AdGroupStatus::PAUSED ]); // Constructs an operation that will update the ad group with the specified resource name, // using the FieldMasks utility to derive the update mask. This mask tells the Google Ads // API which attributes of the ad group you want to change. $adGroupOperation = new AdGroupOperation(); $adGroupOperation->setUpdate($adGroup); $adGroupOperation->setUpdateMask(FieldMasks::allSetFieldsOf($adGroup)); // Issues a mutate request to update the ad group. $adGroupServiceClient = $googleAdsClient->getAdGroupServiceClient(); $response = $adGroupServiceClient->mutateAdGroups(MutateAdGroupsRequest::build( $customerId, [$adGroupOperation] )); // Prints the resource name of the updated ad group. /** @var AdGroup $updatedAdGroup */ $updatedAdGroup = $response->getResults()[0]; printf( "Updated ad group with resource name: '%s'%s", $updatedAdGroup->getResourceName(), PHP_EOL ); }
پایتون
def main( client: GoogleAdsClient, customer_id: str, ad_group_id: str, cpc_bid_micro_amount: int, ) -> None: ad_group_service: AdGroupServiceClient = client.get_service( "AdGroupService" ) # Create ad group operation. ad_group_operation: AdGroupOperation = client.get_type("AdGroupOperation") ad_group: AdGroup = ad_group_operation.update ad_group.resource_name = ad_group_service.ad_group_path( customer_id, ad_group_id ) ad_group.status = client.enums.AdGroupStatusEnum.PAUSED ad_group.cpc_bid_micros = cpc_bid_micro_amount client.copy_from( ad_group_operation.update_mask, protobuf_helpers.field_mask(None, ad_group._pb), ) operations: List[AdGroupAdOperation] = [ad_group_operation] # Update the ad group. ad_group_response: MutateAdGroupsResponse = ( ad_group_service.mutate_ad_groups( customer_id=customer_id, operations=operations, ) ) print(f"Updated ad group {ad_group_response.results[0].resource_name}.")
روبی
def update_ad_group(customer_id, ad_group_id, bid_micro_amount) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new resource_name = client.path.ad_group(customer_id, ad_group_id) operation = client.operation.update_resource.ad_group(resource_name) do |ag| ag.status = :PAUSED ag.cpc_bid_micros = bid_micro_amount end response = client.service.ad_group.mutate_ad_groups( customer_id: customer_id, operations: [operation], ) puts "Ad group with resource name = '#{response.results.first.resource_name}' was updated." end
پرل
sub update_ad_group { my ($api_client, $customer_id, $ad_group_id, $cpc_bid_micro_amount) = @_; # Create an ad group with the proper resource name and any other changes. my $ad_group = Google::Ads::GoogleAds::V22::Resources::AdGroup->new({ resourceName => Google::Ads::GoogleAds::V22::Utils::ResourceNames::ad_group( $customer_id, $ad_group_id ), status => PAUSED, cpcBidMicros => $cpc_bid_micro_amount }); # Create an ad group operation for update, using the FieldMasks utility to # derive the update mask. my $ad_group_operation = Google::Ads::GoogleAds::V22::Services::AdGroupService::AdGroupOperation-> new({ update => $ad_group, updateMask => all_set_fields_of($ad_group)}); # Update the ad group. my $ad_groups_response = $api_client->AdGroupService()->mutate({ customerId => $customer_id, operations => [$ad_group_operation]}); printf "Updated ad group with resource name: '%s'.\n", $ad_groups_response->{results}[0]{resourceName}; return 1; }
حذف پیشنهادات
برای حذف یک پیشنهاد، فیلد آن را به null
بهروزرسانی کنید.
ابعاد معیارهای شبکه نمایش
برای تبلیغاتی که در شبکه نمایش (Display Network) اجرا میشوند، ابعاد مختلفی وجود دارد که میتوان برای آنها یک پیشنهاد قیمت برای گروه تبلیغاتی تنظیم کرد. اگر چندین پیشنهاد قیمت در ابعاد مختلف تنظیم شده باشد، میتوان از فیلد display_custom_bid_dimension
برای تعیین بعدی که باید برای پیشنهادهای مطلق استفاده شود، استفاده کرد. تبلیغات در شبکه جستجو همیشه از پیشنهادهای قیمت کلمات کلیدی استفاده میکنند.
همچنین میتوانید تنظیم کنید که وقتی معیار در بُعد پیشنهاد قیمت مطلق نیست، از آن استفاده شود. با استفاده از فیلد bid_modifier
از معیار گروه تبلیغاتی میتوان به آن دسترسی پیدا کرد.