이 가이드에서는 Google Ads API를 사용하여 만들 수 있는 다양한 유형의 전환 액션 목록, 이러한 전환 액션이 Google Ads 웹 인터페이스에 매핑되는 방식에 관한 정보, 새 전환 액션을 만드는 방법을 보여주는 자세한 코드 예를 제공합니다.
전환을 측정하려면 추적하려는 전환 액션의 type
에 ConversionAction
를 설정합니다. 예를 들어 온라인 구매와 전화 통화에는 서로 다른 전환 액션이 필요합니다.
API에서 새 전환 액션을 설정하는 가장 좋은 방법은 아래의 전환 액션 추가 코드 예를 사용하는 것입니다. 이 샘플은 모든 백그라운드 인증 작업을 처리하고 ConversionAction
만들기를 안내합니다.
또한 대부분의 전환 액션을 추적하려면 추가 단계가 필요합니다. 예를 들어 웹사이트에서 전환을 추적하려면 웹사이트의 전환 페이지에 태그라는 코드 스니펫을 추가해야 합니다. 다른 전환 액션 요구사항은 고객센터 도움말을 참고하세요.
웹사이트 전환
웹사이트 전환을 사용하면 온라인 판매, 링크 클릭, 페이지 조회, 가입과 같은 웹사이트 액션을 추적할 수 있습니다.
웹사이트에서 전환을 추적하려면 ConversionActionType
을 WEBPAGE
로 설정하여 ConversionAction
를 만들고 웹사이트의 전환 페이지에 태그라는 코드 스니펫을 추가해야 합니다.
ConversionAction
는 여러 유형의 웹사이트 전환을 포함하며, ConversionAction
의 tag_snippets 필드에 나열된 각 TagSnippet
의 type
필드에 따라 API 내에서 구분됩니다.
TagSnippet
는 전환 액션을 추적하기 위해 웹사이트에 포함되어야 하는 추적 코드를 제공합니다.
웹사이트 및 전화번호 클릭 전환에는 결제 확인 또는 리드 양식 제출 페이지와 같이 전환 액션을 나타내는 웹페이지에 배치해야 하는 event_snippet
와 웹사이트의 모든 페이지에 설치해야 하는 global_site_tag
가 필요합니다. ConversionActionService
를 사용하여 두 속성을 모두 검색할 수 있습니다. 페이지에 태그를 지정하는 방법에 관한 자세한 내용은 고객센터를 참고하세요.
다음 표에는 Google Ads 웹 인터페이스의 각 소스에 사용할 상응하는 API 매개변수가 나와 있습니다.
추적 코드 유형 | Google Ads 소스 |
---|---|
WEBPAGE |
웹사이트, 웹사이트 (Google 애널리틱스 (GA4)) |
WEBPAGE_ONCLICK |
웹사이트, 웹사이트 (Google 애널리틱스 (GA4)) |
CLICK_TO_CALL |
전화번호 클릭 |
--- |
웹사이트 (Google 애널리틱스 (UA)) |
앱 전환
앱 전환을 사용하면 Google Play 스토어에서 모바일 앱 설치 또는 인앱 구매를 추적할 수 있습니다.
다음 표에는 Google Ads 웹 인터페이스의 각 소스에 사용할 상응하는 ConversionActionType
API 매개변수가 나와 있습니다.
전환 액션 유형 | Google Ads 소스 |
---|---|
GOOGLE_PLAY_DOWNLOAD |
Google Play > 설치 |
GOOGLE_PLAY_IN_APP_PURCHASE |
Google Play > 인앱 구매 |
Google 애널리틱스 4 속성 또는 서드 파티 앱 분석을 사용하여 다른 모바일 앱 액션을 추적하려는 경우 추가 전환 액션 유형을 참고하세요.
전화 통화 전환
전화 통화 전환 추적을 사용하면 광고에서 발생한 통화, 웹사이트의 전화번호로 걸려온 통화, 모바일 사이트의 전화번호 클릭을 추적할 수 있습니다.
다음 표에는 Google Ads 웹 인터페이스의 각 소스에 사용할 상응하는 ConversionActionType
API 매개변수가 나와 있습니다.
전환 액션 유형 | Google Ads 소스 |
---|---|
AD_CALL |
전화번호 광고 확장이 사용된 광고 또는 통화 전용 광고에서 연결된 통화 |
WEBSITE_CALL |
웹사이트의 전화번호로 걸려온 통화수 |
CLICK_TO_CALL |
모바일 웹사이트 전화번호 클릭수 |
CLICK_TO_CALL
유형은 실제 전화 통화를 추적하지 않는다는 점에서 AD_CALL
유형과 다릅니다. 대신 CLICK_TO_CALL
는 휴대기기에서 전화번호를 클릭할 때만 추적합니다. 이는 통화 추적에 Google 착신 전화번호를 사용할 수 없는 경우에 유용합니다.
AD_CALL
AD_CALL
전환 액션은 Google Ads 웹 인터페이스에 광고에서 발생한 통화 전환으로 표시됩니다. AD_CALL
전환 액션을 만든 후 CallAsset
를 만들 때 call_conversion_action
필드에 리소스 이름을 지정합니다. 통화 확장 소재를 사용하면 광고에 전화번호를 직접 표시할 수 있습니다.
통화가 지정된 시간보다 오래 지속되면 전환으로 보고됩니다. 기본값은 60초입니다.
WEBSITE_CALL
WEBSITE_CALL
전환 액션은 Google Ads 웹 인터페이스에 웹사이트에서 걸린 전화 전환으로 표시됩니다.
AD_CALL
와 달리 이 추적기는 웹사이트에 나열된 전화번호의 통화 추적을 위한 동적 Google 착신 전화번호를 가져오려면 웹사이트에 event_snippet
및 global_site_tag
를 추가해야 합니다. 또한 통화 확장 소재를 설정하고 고객, 캠페인 또는 광고 그룹 수준에서 연결해야 합니다.
오프라인 전환 가져오기
다음 표에는 Google Ads 웹 인터페이스의 각 소스에 사용할 상응하는 ConversionActionType
API 매개변수와 각 특정 전환 액션 유형에 관한 문서의 링크가 나와 있습니다.
전환 액션 유형 | Google Ads 소스 | API 설정 가이드 |
---|---|---|
UPLOAD_CLICKS |
클릭에서 발생한 전환 및 리드 확보를 위한 향상된 전환 추적 | 클릭수 업로드 가이드
리드 확보용 향상된 전환 가이드 |
UPLOAD_CALLS |
통화에서 전환 추적 | API 설정 가이드 |
STORE_SALES |
오프라인 매장 판매 전환 추적 | API 설정 가이드 |
웹용 향상된 전환
웹용 향상된 전환을 사용하면 전환 이벤트와 동시에가 아니라 전환 이벤트 후 24시간 이내에 WEBPAGE
전환 액션에 대한 퍼스트 파티 전환 데이터를 전송할 수 있습니다. 이를 통해 고객 데이터베이스나 CRM 시스템과 같은 다양한 소스에서 퍼스트 파티 데이터를 찾을 수 있습니다.
추가 전환 액션 유형
Google Ads API를 사용하면 보고서에서 추가 유형의 전환 액션을 사용할 수 있지만 이러한 액션의 생성 또는 수정을 제한하거나 금지할 수 있습니다.
SKAdNetwork 전환수
iOS 앱 캠페인을 운영하고 SKAdNetwork를 구현한 경우 다음 리소스를 사용하여 Google에 제공된 SKAdNetwork 데이터에 Customer
및 Campaign
수준에서 액세스할 수 있습니다.
보고서 필드 | 설명 |
---|---|
metrics.sk_ad_network_installs |
Apple에서 보고한 설치 수입니다. 이 측정항목은 segments.sk_ad_network_conversion_value 및 날짜 관련 세그먼트의 조합으로만 세분화할 수 있습니다.
|
metrics.sk_ad_network_total_conversions |
Apple에서 보고한 설치 및 기타 유형의 전환을 포함한 총 전환수입니다. 이 측정항목은 SKAdNetwork 관련 세그먼트와 날짜 관련 세그먼트로만 분류할 수 있습니다. |
segments.sk_ad_network_ad_event_type |
특정 전환에 대해 발생한 이벤트 유형입니다. |
segments.sk_ad_network_attribution_credit |
특정 전환에 대한 기여도를 부여하는 방법 |
segments.sk_ad_network_fine_conversion_value |
Apple에서 보고한 전환 가치입니다. 이 세그먼트는 Apple이 |
segments.sk_ad_network_coarse_conversion_value |
개별 전환의 대략적인 값입니다. |
segments.sk_ad_network_postback_sequence_index |
특정 전환의 포스트백 위치(순서대로)입니다. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id |
iOS 스토어 키트 광고 네트워크 설치를 유도한 광고가 게재된 앱 ID입니다. |
segments.sk_ad_network_source_domain |
iOS 스토어 키트 광고 네트워크 설치를 유도한 광고가 게재된 웹사이트입니다. null 값은 이 세그먼트가 적용되지 않거나(예: iOS 외 캠페인) Apple에서 전송한 포스트백에 포함되지 않았음을 의미합니다. |
segments.sk_ad_network_source_type |
iOS 스토어 키트 광고 네트워크 설치를 유도한 광고가 게재된 소스 유형입니다. null 값은 이 세그먼트가 적용되지 않음을 의미합니다(예: iOS 외 캠페인). 또는 Apple에서 전송한 포스트백에 소스 도메인 또는 소스 앱이 없음을 의미합니다. |
segments.sk_ad_network_user_type |
특정 전환을 생성한 사용자 유형입니다. |
segments.sk_ad_network_redistributed_fine_conversion_value |
이 세그먼트의 전환 가치에는 전환 가치로 재분배된 null 값이 포함됩니다. 이 세그먼트는 Apple에서 반환한 관찰된 미세 전환 가치와 Google에서 모델링한 null 값의 합계를 나타냅니다. |
segments.sk_ad_network_version |
사용된 iOS Store Kit Ad Network API 버전입니다. |
CustomerSkAdNetworkConversionValueSchema
를 통해 iOS 앱과 연결된 특정 고객의 SKAdNetwork 전환 가치 매핑을 저장할 수도 있습니다.
샘플 Python 코드
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v18" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Google 애널리틱스
연결된 Google 애널리틱스 속성의 전환에는 다음 type
값 중 하나가 적용됩니다.
GA4 속성 전환:
GOOGLE_ANALYTICS_4_CUSTOM
GOOGLE_ANALYTICS_4_PURCHASE
google_analytics_4_settings
필드에서 GA4 속성 ID, 속성 이름, 이벤트 이름을 검색할 수도 있습니다.유니버설 애널리틱스 속성 전환:
UNIVERSAL_ANALYTICS_GOAL
UNIVERSAL_ANALYTICS_TRANSACTION
GA4 속성 전환을 다음과 같이 변경할 수 있습니다.
status
필드를HIDDEN
에서ENABLED
로 수정하여 GA4 속성에서 Google Ads 계정으로 전환을 가져옵니다.primary_for_goal
및category
필드를 수정하여 Google Ads 입찰 및 보고서에 미치는 영향을 나타냅니다.name
또는value_settings
를 업데이트합니다.remove
작업을 사용하여 Google Ads 계정에서 전환을 삭제합니다.
가져온 GA4 전환의 다른 속성 또는 가져온 유니버설 애널리틱스 전환의 모든 속성을 수정하려고 하면 MUTATE_NOT_ALLOWED
오류가 발생합니다. Google Ads UI를 통해서만 이러한 변경사항을 적용할 수 있습니다.
Firebase 및 서드 파티 앱 분석
서드 파티 앱 애널리틱스 또는 Firebase 전환을 가져오려면 ConversionActionService
의 mutate
메서드를 사용하여 ConversionAction
의 status
를 HIDDEN
에서 ENABLED
로 변경합니다. 이러한 전환 액션에는 app_id
업데이트가 지원되지 않습니다.
FIREBASE_ANDROID_FIRST_OPEN
FIREBASE_ANDROID_IN_APP_PURCHASE
FIREBASE_ANDROID_CUSTOM
FIREBASE_IOS_FIRST_OPEN
FIREBASE_IOS_IN_APP_PURCHASE
FIREBASE_IOS_CUSTOM
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
오프라인 매장 판매: 보고 기능이 있는 전환 액션에 업로드
Google Ads API를 사용하여 STORE_SALES
또는 STORE_SALES_DIRECT_UPLOAD
전환 액션을 만들 수는 없지만 오프라인 매장 판매 거래 업로드는 지원합니다.
STORE_SALES
STORE_SALES_DIRECT_UPLOAD
읽기 전용 전환 액션 유형
다음 전환 액션 유형은 Google Ads API에서 읽기 전용이며 보고 목적으로 제공됩니다.
ANDROID_APP_PRE_REGISTRATION
ANDROID_INSTALLS_ALL_OTHER_APPS
FLOODLIGHT_ACTION
FLOODLIGHT_TRANSACTION
GOOGLE_HOSTED
LEAD_FORM_SUBMIT
SALESFORCE
SEARCH_ADS_360
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
SMART_CAMPAIGN_MAP_DIRECTIONS
SMART_CAMPAIGN_TRACKED_CALLS
STORE_VISITS
WEBPAGE_CODELESS
알 수 없음
Google Ads 계정에 다른 유형의 전환 액션이 포함된 경우 쿼리 및 보고서에서 ConversionAction.type
이 UNKNOWN
인 전환 액션을 반환할 수 있습니다.
API는 이러한 전환 액션의 관리를 지원하지 않지만 metrics.conversions
및 metrics.conversions_value
와 같은 주요 전환 측정항목에 대한 완전한 결과를 제공하기 위해 보고서에 전환 액션을 반환합니다.
코드 예
다음 코드 예에서는 새 전환 액션을 만드는 과정을 안내합니다. 특히 type
가 UPLOAD_CLICKS
로 설정된 전환 액션을 만듭니다.
이 방법은 가져오기 > API 또는 업로드를 사용한 수동 가져오기 > 클릭에서 전환 추적을 사용하여 새 전환 액션을 만드는 것과 동일한 Google Ads UI 흐름입니다. 또한 category
를 DEFAULT
로 설정합니다.
다음과 같은 기본 설정이 적용됩니다.
Google Ads API는
primary_for_goal
필드를 자동으로 설정하지만 이 필드를 명시적으로 설정하여 전환 목표와 결합될 때 전환 액션이 계정의 보고 및 입찰에 미치는 영향을 제어할 수 있습니다.Google Ads API는
counting_type
를 자동으로MANY_PER_CLICK
로 설정합니다. 자세한 내용은 전환 집계 옵션에 대한 정보를 참고하세요.Google Ads API는
attribution_model_settings
필드를GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
값AttributionModel
로 설정하여 기여 분석 모델을 데이터 기반으로 설정합니다.
자바
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V18.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction([ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings([ 'default_value' => 23.41, 'always_use_default_value' => true ]) ]); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V18::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V18::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V18::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
이 예시는 클라이언트 라이브러리의 리마케팅 폴더와 코드 예시 모음인 전환 액션 코드 추가 예시에서도 확인할 수 있습니다.
확인
Google Ads 및 Google Ads API는 다양한 전환 액션을 지원하므로 일부 유효성 검사 규칙은 액션의 type
에 따라 다릅니다.
전환 액션을 만들 때 가장 흔히 발생하는 오류는 DUPLICATE_NAME
입니다.
각 전환 액션에 고유한 이름을 사용해야 합니다.
ConversionAction
필드를 설정하는 방법에 관한 몇 가지 도움말은 다음과 같습니다.
- 모든 enum 필드
- enum 필드를
UNKNOWN
로 설정하려고 하면RequestError.INVALID_ENUM_VALUE
오류가 발생합니다. app_id
app_id
속성은 변경할 수 없으며 새 앱 전환을 만들 때만 설정할 수 있습니다.attribution_model_settings
- 이 옵션을 지원 중단된 옵션으로 설정하면
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
오류가 발생합니다. Google Ads에서는GOOGLE_ADS_LAST_CLICK
및GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
만 지원합니다. click_through_lookback_window_days
이 속성을 허용 범위를 벗어난 값으로 설정하면
RangeError.TOO_LOW
또는RangeError.TOO_HIGH
오류가 발생합니다.이 속성은
AD_CALL
또는WEBSITE_CALL
전환 액션의 경우[1,60]
범위에 있어야 합니다. 그 외 대부분의 전환 액션의 경우 허용되는 범위는[1,30]
입니다.include_in_conversions_metric
create
또는update
작업에서 이 값을 설정하면FieldError.IMMUTABLE_FIELD
오류와 함께 실패합니다. 대신 전환 목표 가이드에 설명된 대로primary_for_goal
를 설정하세요.phone_call_duration_seconds
통화가 아닌 전환 액션에 이 속성을 설정하려고 하면
FieldError.VALUE_MUST_BE_UNSET
오류가 발생합니다.type
type
속성은 변경할 수 없으며 새 전환을 만들 때만 설정할 수 있습니다.type
가UNKNOWN
인 전환 액션을 업데이트하면MutateError.MUTATE_NOT_ALLOWED
오류가 발생합니다.value_settings
WEBSITE_CALL
또는AD_CALL
전환 액션의value_settings
에always_use_default_value
가true
로 설정되어야 합니다. 이 값을 만들거나 업데이트할 때false
값을 지정하면INVALID_VALUE
오류가 발생합니다.view_through_lookback_window_days
이 속성을 허용 범위를 벗어난 값으로 설정하면
RangeError.TOO_LOW
또는RangeError.TOO_HIGH
오류가 발생합니다. 대부분의 전환 액션의 허용 범위는[1,30]
입니다.이 속성은
AD_CALL
또는WEBSITE_CALL
전환 액션에서 설정할 수 없습니다. 값을 지정하면VALUE_MUST_BE_UNSET
오류가 발생합니다.