쇼핑 광고를 구현하는 첫 번째 단계는 쇼핑 캠페인을 만드는 것입니다. 쇼핑 캠페인을 사용하면 사용자에게 제목, 가격, 매장 이름 등이 포함된 제품 이미지를 보여주는 광고가 표시됩니다. 쇼핑 캠페인을 만들 때는 예산, 입찰 전략, 쇼핑 설정을 지정해야 합니다.
쇼핑 캠페인을 만들려면 먼저 Google Ads 계정을 Google 판매자 센터 계정에 연결해야 합니다. 계정을 연결하면 쇼핑 설정을 지정할 때 Google 판매자 센터 계정 ID를 사용할 수 있습니다.
일반 쇼핑 캠페인
제품 쇼핑 광고를 만드는 데 필요한 캠페인입니다. 제품 쇼핑 광고를 사용하면 이미지, 제목, 가격, 매장, 업체 이름을 광고에 넣을 수 있으며, 판매하는 제품별로 고유한 광고를 만들지 않아도 됩니다.
일반 쇼핑 캠페인을 설정하는 단계는 다음과 같습니다.
- 캠페인의
advertising_channel_type을SHOPPING으로 설정합니다. ShoppingSetting을 만들고 필드를 설정한 다음 캠페인에 추가합니다.- 포트폴리오 입찰 전략을 만들거나 캠페인 수준 입찰 전략을 설정합니다.
- 새 캠페인 예산을 만들거나 기존 공유 예산을 설정합니다.
평균 일일 예산 또는 캠페인 총 예산을 사용할 수 있습니다. 캠페인 총 예산은 시작일과 종료일이 설정된 캠페인에만 사용할 수 있습니다. 예산 만들기에 대한 자세한 내용은 캠페인 예산 만들기를 참고하세요.
일반 쇼핑 캠페인의 경우 ShoppingSetting은 다음
필드를 지원합니다.
일반 쇼핑 캠페인의 필수 필드
merchant_id- 광고할 제품이 포함된 계정의 판매자 센터 ID입니다.
campaign_priority- 쇼핑 캠페인의 우선순위입니다. 우선순위가 높은 캠페인이 우선순위가 낮은 캠페인보다 우선합니다. 허용되는 값은 0~2(포함)입니다.
일반 쇼핑 캠페인의 선택적 필드
feed_label판매자 센터에 정의된 대로 피드 라벨에 사용되는 문자열입니다. 이 필드는 특정 판매자 센터 피드에서 제품을 선택해야 하는 경우에 사용해야 합니다. 지정하지 않으면 캠페인에서 판매자 센터의 모든 사용 가능한 피드를 사용합니다.
이전에 지원 중단된
sales_country를 두 글자 국가 코드 (XX) 형식으로 사용한 경우feed_label필드를 대신 사용해야 합니다. 자세한 내용은 피드 라벨 지원 도움말을 참고하세요.feed_label에 국가 코드를 제출해도 해당 국가에서 광고가 자동으로 게재되지는 않습니다. 먼저 지리적 위치 타겟팅을 설정해야 합니다.enable_local이 캠페인에서 오프라인 상점에서 판매하는 제품에 대한 광고를 사용 설정하는 옵션입니다.
입찰 전략은 포트폴리오 입찰 전략 또는 캠페인 입찰 전략으로 설정할 수 있습니다.
포트폴리오 입찰 전략: 캠페인, 광고 그룹, 키워드 간에 공유할 수 있는 자동 입찰 전략입니다.
BiddingStrategyService를 사용하여 만듭니다.다음 포트폴리오 입찰 전략이 지원됩니다.
캠페인 입찰 전략: 캠페인에 직접 설정된 입찰 전략입니다. 여기에는 쇼핑 캠페인과 호환되는 자동 입찰 전략이 포함될 수 있습니다.
다음 캠페인 입찰 전략이 지원됩니다.
네트워크 설정
일반 쇼핑 캠페인은
network_settings.target_content_network 필드를 지원하지 않습니다.
변경 요청에서 일반 쇼핑 캠페인의 이 필드를 true로 설정하면
CANNOT_TARGET_CONTENT_NETWORK 오류가 발생합니다.
자세한 내용은 Google Ads 일반 쇼핑 캠페인의 네트워크 설정 변경사항을 참고하세요.
이 코드 예에서는 일반 쇼핑 캠페인을 만드는 방법을 보여줍니다.
자바
private String addStandardShoppingCampaign( GoogleAdsClient googleAdsClient, long customerId, String budgetResourceName, long merchantCenterAccountId) { // Configures the shopping settings. ShoppingSetting shoppingSetting = ShoppingSetting.newBuilder() // Sets the priority of the campaign. Higher numbers take priority over lower numbers. // For Shopping product ad campaigns, allowed values are between 0 and 2, inclusive. .setCampaignPriority(0) .setMerchantId(merchantCenterAccountId) // Enables local inventory ads for this campaign. .setEnableLocal(true) .build(); // Create the standard shopping campaign. Campaign campaign = Campaign.newBuilder() .setName("Interplanetary Cruise #" + getPrintableDateTime()) // Configures settings related to shopping campaigns including advertising channel type // and shopping setting. .setAdvertisingChannelType(AdvertisingChannelType.SHOPPING) .setShoppingSetting(shoppingSetting) // Recommendation: Sets the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve. .setStatus(CampaignStatus.PAUSED) // Sets the bidding strategy to Manual CPC // Recommendation: Use one of the automated bidding strategies for Shopping campaigns // to help you optimize your advertising spend. More information can be found here: // https://support.google.com/google-ads/answer/6309029. .setManualCpc(ManualCpc.getDefaultInstance()) // Sets the budget. .setCampaignBudget(budgetResourceName) // Declares whether this campaign serves political ads targeting the EU. .setContainsEuPoliticalAdvertising(DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING) .build(); // Creates a campaign operation. CampaignOperation operation = CampaignOperation.newBuilder().setCreate(campaign).build(); // Issues a mutate request to add the campaign. try (CampaignServiceClient campaignServiceClient = googleAdsClient.getLatestVersion().createCampaignServiceClient()) { MutateCampaignsResponse response = campaignServiceClient.mutateCampaigns( Long.toString(customerId), Collections.singletonList(operation)); MutateCampaignResult result = response.getResults(0); System.out.printf( "Added a standard shopping campaign with resource name: '%s'%n", result.getResourceName()); return result.getResourceName(); } }
C#
private string AddStandardShoppingCampaign(GoogleAdsClient client, long customerId, string budgetResourceName, long merchantCenterAccountId) { // Get the CampaignService. CampaignServiceClient campaignService = client.GetService(Services.V24.CampaignService); // Configures the shopping settings. ShoppingSetting shoppingSetting = new ShoppingSetting() { // Sets the priority of the campaign. Higher numbers take priority over lower // numbers. For Shopping Product Ad campaigns, allowed values are between 0 and 2, // inclusive. CampaignPriority = 0, MerchantId = merchantCenterAccountId, // Enables local inventory ads for this campaign. EnableLocal = true }; // Create the standard shopping campaign. Campaign campaign = new Campaign() { Name = "Interplanetary Cruise #" + ExampleUtilities.GetRandomString(), // Configures settings related to shopping campaigns including advertising channel // type and shopping setting. AdvertisingChannelType = AdvertisingChannelType.Shopping, ShoppingSetting = shoppingSetting, // Recommendation: Set the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve Status = CampaignStatus.Paused, // Sets the bidding strategy to Manual CPC. // Recommendation: Use one of the automated bidding strategies for Shopping // campaigns to help you optimize your advertising spend. More information can be // found here: https://support.google.com/google-ads/answer/6309029 ManualCpc = new ManualCpc(), // Sets the budget. CampaignBudget = budgetResourceName, // Declare whether or not this campaign contains political ads targeting the EU. ContainsEuPoliticalAdvertising = EuPoliticalAdvertisingStatus.DoesNotContainEuPoliticalAdvertising, }; // Creates a campaign operation. CampaignOperation operation = new CampaignOperation() { Create = campaign }; // Issues a mutate request to add the campaign. MutateCampaignsResponse response = campaignService.MutateCampaigns(customerId.ToString(), new CampaignOperation[] { operation }); MutateCampaignResult result = response.Results[0]; Console.WriteLine("Added a standard shopping campaign with resource name: '{0}'.", result.ResourceName); return result.ResourceName; }
PHP
private static function addStandardShoppingCampaign( GoogleAdsClient $googleAdsClient, int $customerId, string $budgetResourceName, int $merchantCenterAccountId ) { // Creates a standard shopping campaign. $campaign = new Campaign([ 'name' => 'Interplanetary Cruise Campaign #' . Helper::getPrintableDatetime(), // Configures settings related to shopping campaigns including advertising channel type // and shopping setting. 'advertising_channel_type' => AdvertisingChannelType::SHOPPING, // Configures the shopping settings. 'shopping_setting' => new ShoppingSetting([ // Sets the priority of the campaign. Higher numbers take priority over lower // numbers. For Shopping product ad campaigns, allowed values are between 0 and 2, // inclusive. 'campaign_priority' => 0, 'merchant_id' => $merchantCenterAccountId, // Enables local inventory ads for this campaign 'enable_local' => true ]), // Recommendation: Set the campaign to PAUSED when creating it to prevent // the ads from immediately serving. Set to ENABLED once you've added // targeting and the ads are ready to serve. 'status' => CampaignStatus::PAUSED, // Sets the bidding strategy to Manual CPC. // Recommendation: Use one of the automated bidding strategies for Shopping campaigns // to help you optimize your advertising spend. More information can be found here: // https://support.google.com/google-ads/answer/6309029. 'manual_cpc' => new ManualCpc(), // Sets the budget. 'campaign_budget' => $budgetResourceName, // Declare whether or not this campaign serves political ads targeting the EU. 'contains_eu_political_advertising' => EuPoliticalAdvertisingStatus::DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING ]); // Creates a campaign operation. $campaignOperation = new CampaignOperation(); $campaignOperation->setCreate($campaign); // Issues a mutate request to add campaigns. $campaignServiceClient = $googleAdsClient->getCampaignServiceClient(); $response = $campaignServiceClient->mutateCampaigns( MutateCampaignsRequest::build($customerId, [$campaignOperation]) ); /** @var Campaign $addedCampaign */ $addedCampaign = $response->getResults()[0]; printf( "Added a standard shopping campaign with resource name '%s'.%s", $addedCampaign->getResourceName(), PHP_EOL ); return $addedCampaign->getResourceName(); }
Python
def add_standard_shopping_campaign( client: GoogleAdsClient, customer_id: str, budget_resource_name: str, merchant_center_account_id: int, ) -> str: """Creates a new standard shopping campaign in the specified client account.""" campaign_service: CampaignServiceClient = client.get_service( "CampaignService" ) # Create standard shopping campaign. campaign_operation: CampaignOperation = client.get_type("CampaignOperation") campaign: Campaign = campaign_operation.create campaign.name = f"Interplanetary Cruise Campaign {uuid.uuid4()}" # Configures settings related to shopping campaigns including advertising # channel type and shopping setting. campaign.advertising_channel_type = ( client.enums.AdvertisingChannelTypeEnum.SHOPPING ) campaign.shopping_setting.merchant_id = merchant_center_account_id # Sets the priority of the campaign. Higher numbers take priority over lower # numbers. For standard shopping campaigns, allowed values are between 0 and # 2, inclusive. campaign.shopping_setting.campaign_priority = 0 # Enables local inventory ads for this campaign. campaign.shopping_setting.enable_local = True # Recommendation: Set the campaign to PAUSED when creating it to prevent the # ads from immediately serving. Set to ENABLED once you've added targeting # and the ads are ready to serve. campaign.status = client.enums.CampaignStatusEnum.PAUSED # Sets the bidding strategy to Manual CPC. # Recommendation: Use one of the automated bidding strategies for Shopping # campaigns to help you optimize your advertising spend. More information # can be found here: https://support.google.com/google-ads/answer/6309029 campaign.manual_cpc = client.get_type("ManualCpc") # Sets the budget. campaign.campaign_budget = budget_resource_name # Declare whether or not this campaign serves political ads targeting the # EU. Valid values are: # CONTAINS_EU_POLITICAL_ADVERTISING # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING campaign.contains_eu_political_advertising = ( client.enums.EuPoliticalAdvertisingStatusEnum.DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING ) # Add the campaign. campaign_response = campaign_service.mutate_campaigns( customer_id=customer_id, operations=[campaign_operation] ) campaign_resource_name: str = campaign_response.results[0].resource_name print( "Added a standard shopping campaign with resource name " f"'{campaign_resource_name}'." ) return campaign_resource_name
Ruby
def add_standard_shopping_campaign( client, customer_id, budget_name, merchant_center_id) operation = client.operation.create_resource.campaign do |campaign| campaign.name = "Interplanetary Cruise Campaign ##{(Time.new.to_f * 1000).to_i}" # Shopping campaign specific settings campaign.advertising_channel_type = :SHOPPING campaign.shopping_setting = client.resource.shopping_setting do |shopping_setting| shopping_setting.merchant_id = merchant_center_id shopping_setting.campaign_priority = 0 shopping_setting.enable_local = true end campaign.status = :PAUSED # Sets the bidding strategy to Manual CPC. campaign.manual_cpc = client.resource.manual_cpc campaign.campaign_budget = budget_name # Declare whether or not this campaign serves political ads targeting the EU. # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING. c.contains_eu_political_advertising = :DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING end service = client.service.campaign response = service.mutate_campaigns( customer_id: customer_id, operations: [operation], ) campaign_name = response.results.first.resource_name puts "Added a standard shopping campaign with resource name #{campaign_name}." campaign_name end
Perl
sub add_standard_shopping_campaign { my ($api_client, $customer_id, $budget_resource_name, $merchant_center_account_id) = @_; # Create a standard shopping campaign. my $campaign = Google::Ads::GoogleAds::V24::Resources::Campaign->new({ name => "Interplanetary Cruise Campaign #" . uniqid(), # Configure settings related to shopping campaigns including advertising # channel type and shopping setting. advertisingChannelType => SHOPPING, shoppingSetting => Google::Ads::GoogleAds::V24::Resources::ShoppingSetting->new({ merchantId => $merchant_center_account_id, # Set the priority of the campaign. Higher numbers take priority over # lower numbers. For standard shopping campaigns, allowed values are # between 0 and 2, inclusive. campaignPriority => 0, # Enable local inventory ads for this campaign. enableLocal => "true" } ), # Recommendation: Set the campaign to PAUSED when creating it to prevent # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. status => Google::Ads::GoogleAds::V24::Enums::CampaignStatusEnum::PAUSED, # Set the bidding strategy to Manual CPC. # Recommendation: Use one of the automated bidding strategies for shopping # campaigns to help you optimize your advertising spend. More information # can be found here: https://support.google.com/google-ads/answer/6309029. manualCpc => Google::Ads::GoogleAds::V24::Common::ManualCpc->new(), # Set the budget. campaignBudget => $budget_resource_name, # Declare whether or not this campaign serves political ads targeting the EU. # Valid values are CONTAINS_EU_POLITICAL_ADVERTISING and # DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING. containsEuPoliticalAdvertising => DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING }); # Create a campaign operation. my $campaign_operation = Google::Ads::GoogleAds::V24::Services::CampaignService::CampaignOperation-> new({create => $campaign}); # Add the campaign. my $campaign_resource_name = $api_client->CampaignService()->mutate({ customerId => $customer_id, operations => [$campaign_operation]})->{results}[0]{resourceName}; printf "Added a standard shopping campaign with resource name: '%s'.\n", $campaign_resource_name; return $campaign_resource_name; }
curl
비교 등록정보 캠페인
비교 등록정보 캠페인은 CSS 프로그램이 제공되는 국가에서 CSS 프로그램에 참여하는 비교 쇼핑 서비스 (CSS)에서 사용할 수 있습니다. 이러한 캠페인을 사용하면 CSS에서 웹사이트의 제품 그룹을 광고할 수 있습니다.
비교 등록정보 캠페인에는 다음과 같은 요구사항이 있습니다.
- Google Ads 계정은 판매자 센터의 CSS 기본 멀티 클라이언트 계정과 연결되어야 합니다. 계정이 비교 등록정보 캠페인에 적합하지 않은 경우
MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS오류가 발생할 수 있습니다. - 캠페인의
advertising_channel_type은SHOPPING이어야 합니다.- 캠페인의
advertising_channel_sub_type은SHOPPING_COMPARISON_LISTING_ADS여야 합니다. - 캠페인의
shopping_setting에는merchant_id가 CSS의 판매자 센터 계정 ID로 설정되어 있어야 합니다. manual_cpc입찰 전략만 지원됩니다.
- 캠페인의
- 광고 그룹의
type은SHOPPING_COMPARISON_LISTING_ADS로 설정되어야 합니다.- 광고를 게재하려면 각 광고 그룹에 하나 이상의
listing group이 포함된 제품 파티션 트리 가 포함되어야 합니다. 가장 간단한 트리 구조는 광고 그룹의 모든 제품을 포함하는 단일 루트 노드입니다. 자세한 내용은 등록정보 그룹 가이드를 참고하세요.
- 광고를 게재하려면 각 광고 그룹에 하나 이상의