このガイドでは、Google Ads API を使用して作成できるコンバージョン アクションの種類のリスト、それらのアクションを Google 広告のウェブ インターフェースにマッピングする方法、新しいコンバージョン アクションを作成する方法を示す詳細なコード例について説明します。
コンバージョンを測定するには、トラッキングするコンバージョン アクションの type
に ConversionAction
を設定します。たとえばオンライン購入と電話問い合わせとでは、使用するコンバージョン アクションが異なります。
API で新しいコンバージョン アクションを設定する場合は、以下のコンバージョン アクションの追加コードサンプルを使用することをおすすめします。このサンプルは、すべてのバックグラウンド認証タスクを処理し、ConversionAction
の作成手順を説明します。
また、コンバージョン アクションの多くでは、コンバージョンをトラッキングするために追加の手順が必要となります。たとえば、ウェブサイトでコンバージョンをトラッキングするには、ウェブサイトのコンバージョン ページにタグと呼ばれるコード スニペットを追加する必要があります。他のコンバージョン アクション タイプの詳細な要件については、ヘルプセンター記事をご覧ください。
ウェブサイト コンバージョン
ウェブサイトのコンバージョンを使用すると、オンライン販売、リンクのクリック、ページビュー、登録などのウェブサイト アクションをトラッキングできます。
ウェブサイトでコンバージョンをトラッキングするには、ConversionActionType
を WEBPAGE
に設定した ConversionAction
を作成し、タグと呼ばれるコード スニペットをウェブサイトのコンバージョン ページに追加する必要があります。
ConversionAction
には、複数の種類のウェブサイト コンバージョンが含まれます。API 内で区別されるのは、ConversionAction
の tag_snippets フィールドにリストされている各 TagSnippet
の type
フィールドです。
TagSnippet
は、コンバージョン アクションをトラッキングするためにウェブサイトに含める必要があるトラッキング コードを提供します。[ウェブサイト] と [電話番号のクリック数] に対応するコンバージョンをトラッキングするには、コンバージョン アクションの発生を検出するウェブページ(購入確認ページや見込み顧客フォーム送信ページなど)に event_snippet
を設置し、ウェブサイトのすべてのページに global_site_tag
を挿入する必要があります。これらの属性はどちらも ConversionActionService
で取得できます。ページにタグを付ける方法について詳しくは、ヘルプセンターをご覧ください。
次の表は、Google 広告のウェブ インターフェースにおけるコンバージョンの「発生元」にそれぞれ対応する API パラメータを示したものです。
トラッキング コードの種類 | Google 広告のソース |
---|---|
WEBPAGE |
ウェブサイト、ウェブサイト(Google アナリティクス(GA4)) |
WEBPAGE_ONCLICK |
ウェブサイト、ウェブサイト(Google アナリティクス(GA4)) |
CLICK_TO_CALL |
電話番号のクリック数 |
アプリ コンバージョン
アプリ コンバージョンを使用すると、Google Play ストアからモバイルアプリのインストールやアプリ内購入をトラッキングできます。
次の表は、Google 広告のウェブ インターフェースにおけるコンバージョンの「発生元」にそれぞれ対応する ConversionActionType
API パラメータを示したものです。
コンバージョン アクションの種類 | Google 広告のソース |
---|---|
GOOGLE_PLAY_DOWNLOAD |
Google Play > インストール |
GOOGLE_PLAY_IN_APP_PURCHASE |
Google Play > アプリ内購入 |
Google アナリティクス 4 プロパティまたは第三者のアプリ分析を使用して他のモバイルアプリ アクションをトラッキングするには、その他のコンバージョン アクションの種類をご覧ください。
通話コンバージョン
通話コンバージョンのトラッキングでは、広告経由の通話、ウェブサイトに掲載された電話番号への問い合わせ、モバイルサイトでの電話番号のクリックをトラッキングできます。
次の表は、Google 広告のウェブ インターフェースにおけるコンバージョンの「発生元」にそれぞれ対応する ConversionActionType
API パラメータを示したものです。
コンバージョン アクションの種類 | Google 広告のソース |
---|---|
AD_CALL |
電話番号表示オプションを使用した広告や電話専用広告でのコール コンバージョン |
WEBSITE_CALL |
ウェブサイトに掲載した電話番号への問い合わせ |
CLICK_TO_CALL |
モバイルサイト上で電話番号をクリックします。 |
AD_CALL
AD_CALL
コンバージョン アクションは、Google 広告のウェブ インターフェースでは [広告からの電話] コンバージョンとして表示されます。AD_CALL
コンバージョン アクションを作成したら、CallAsset
を作成するときに、そのリソース名を call_conversion_action
フィールドに指定します。通話アセットを使用すると、広告に電話番号を直接表示できます。
通話コンバージョンは、通話時間が指定の秒数(デフォルトでは 60 秒)を超えた場合にカウントされます。
WEBSITE_CALL
WEBSITE_CALL
コンバージョン アクションは、Google 広告のウェブ インターフェースでは [ウェブサイトからの電話] コンバージョンとして表示されます。
AD_CALL
とは異なり、このトラッカーでは、ウェブサイトに記載の電話番号への通話をトラッキングするため動的に割り当てられるGoogle 広告専用転送電話番号を取得するために、event_snippet
と global_site_tag
をウェブサイトに追加する必要があります。また、電話番号アセットを設定し、お客様、キャンペーン、または広告グループ単位でリンクする必要があります。
CLICK_TO_CALL
CLICK_TO_CALL
コンバージョン アクションは、Google 広告のウェブ インターフェースでは [モバイルサイト上の電話番号のクリック] コンバージョンとして表示されます。
CLICK_TO_CALL
タイプは、電話(通話)そのものをトラッキングするわけではない点で AD_CALL
タイプと異なります。CLICK_TO_CALL
では、モバイル デバイスでの電話番号のクリックのみがトラッキングされます。電話をトラッキングする Google 広告専用転送電話番号を利用できない場合に役立ちます。
オフライン コンバージョンのインポート
次の表は、Google 広告のウェブ インターフェースにおけるコンバージョンの「発生元」にそれぞれ対応する ConversionActionType
API パラメータと、各コンバージョン アクション タイプのドキュメントへのリンクを示したものです。
コンバージョン アクションの種類 | Google 広告のソース | API 設定ガイド |
---|---|---|
UPLOAD_CLICKS |
クリックに起因するコンバージョンとリードの拡張コンバージョンをトラッキングする | クリックをアップロードするガイド
リードの拡張コンバージョン ガイド |
UPLOAD_CALLS |
電話での問い合わせによるコンバージョンをトラッキング | API 設定ガイド |
STORE_SALES |
店舗販売コンバージョンをトラッキングする | API 設定ガイド |
拡張コンバージョン
拡張コンバージョンを使用すると、既存のコンバージョン タグにメールアドレス、氏名、住所、電話番号などのファースト パーティのコンバージョン データを補足することで、コンバージョン測定の精度を高めることができます。
次の表に、各拡張コンバージョン タイプにそれぞれ対応する API パラメータを示します。
コンバージョン アクションの種類 | 拡張コンバージョンの種類 | API 設定ガイド |
---|---|---|
UPLOAD_CLICKS |
リードの拡張コンバージョン
ウェブサイトで獲得した見込み顧客やユーザーが行ったオフライン取引の測定を改善します |
API 設定ガイド |
WEBPAGE |
拡張コンバージョン(ウェブ向け)
オンライン コンバージョンの測定を改善 |
API 設定ガイド |
その他のコンバージョン アクション タイプ
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 SKAdNetwork のインストールを促す広告が掲載されたアプリ ID。 |
segments.sk_ad_network_source_domain |
iOS SKAdNetwork のインストールを促す広告が掲載されたウェブサイト。null 値は、このセグメントが適用されない(iOS 以外のキャンペーンなど)か、Apple から送信されたポストバックに含まれていなかったことを意味します。 |
segments.sk_ad_network_source_type |
iOS SKAdNetwork のインストールを促す広告が掲載されたソースタイプ。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
GA4 プロパティ ID、プロパティ名、イベント名は
google_analytics_4_settings
フィールドから取得することもできます。
GA4 プロパティのコンバージョンには、次の変更を加えることができます。
status
フィールドをHIDDEN
からENABLED
に変更して、GA4 プロパティから Google 広告アカウントにコンバージョンをインポートします。primary_for_goal
フィールドとcategory
フィールドを変更して、Google 広告の入札とレポートに与える影響を指定します。name
またはvalue_settings
を更新します。remove
オペレーションを使用して、Google 広告アカウントからコンバージョンを削除します。
インポートした GA4 コンバージョンの他の属性や、インポートしたユニバーサル アナリティクスのコンバージョンの任意の属性を変更しようとすると、MUTATE_NOT_ALLOWED
エラーが発生します。これらの変更は、Google 広告の管理画面でのみ行うことができます。
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 広告アカウントに他のタイプのコンバージョン アクションが含まれている場合、クエリとレポートで、ConversionAction.type
が UNKNOWN
のコンバージョン アクションが返されることがあります。この API は、これらのコンバージョン アクションの管理はサポートしていませんが、metrics.conversions
や metrics.conversions_value
などの主要なコンバージョン指標の完全な結果を提供するために、レポートで返します。
サンプルコード
次のコードサンプルは、新しいコンバージョン アクションを作成するプロセスを示しています。具体的には、type
が UPLOAD_CLICKS
に設定されたコンバージョン アクションが作成されます。これは、[インポート] > [API またはアップロードを使用した手動インポート] > [クリックからのコンバージョンをトラッキング] を使用して新しいコンバージョン アクションを作成するときと同じ Google 広告の管理画面のフローです。また、category
を DEFAULT
に設定します。
次のデフォルト設定が適用されます。
Google Ads API では
primary_for_goal
フィールドが自動的に設定されますが、このフィールドを明示的に設定して、コンバージョン アクションがコンバージョン目標と組み合わせた場合のアカウントのレポートと入札に与える影響を制御できます。Google Ads API では、
counting_type
が自動的にMANY_PER_CLICK
に設定されます。詳しくは、コンバージョンのカウント方法についてをご覧ください。Google Ads API では、
attribution_model_settings
フィールドをAttributionModel
のGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
値に設定することで、アトリビューション モデルをデータドリブンに設定します。アトリビューション モデルについて詳しくは、こちらのヘルプセンター記事をご覧ください。
Java
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; }
この例は、クライアント ライブラリの [Remarketing] フォルダと、コードサンプル コレクションの コンバージョン アクションの追加コードサンプルでも確認できます。
検証
Google 広告と Google Ads API はさまざまなコンバージョン アクションをサポートしているため、一部の検証ルールはアクションの type
によって異なります。
コンバージョン アクションを作成する際に最もよく発生するエラーは DUPLICATE_NAME
です。コンバージョン アクションごとに一意の名前を使用していることを確認してください。
ConversionAction
フィールドを設定する際のヒントを次に示します。
- すべての列挙型フィールド
- 列挙型フィールドを
UNKNOWN
に設定しようとすると、RequestError.INVALID_ENUM_VALUE
エラーが発生します。 app_id
app_id
属性は不変で、新しいアプリ コンバージョンを作成するときにのみ設定できます。attribution_model_settings
- これを非推奨のオプションに設定すると、
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
エラーが発生します。Google 広告では、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
エラーが発生します。