API で新しいコンバージョン アクションを設定するには、クライアント ライブラリの リマーケティング フォルダにあるコンバージョン アクションを追加するコードサンプルを使用することをおすすめします。このサンプルはすべてのバックグラウンド認証タスクを処理し、ConversionAction
を作成する方法について説明します。
Google Ads API では primary_for_goal
フィールドが自動的に設定されますが、このフィールドを明示的に設定することで、コンバージョン アクションがコンバージョン目標と組み合わせた場合のアカウントのレポートと入札に与える影響を制御できます。
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() .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.V13.ConversionActionService); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(), 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([ '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( $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 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) = @_; # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V13::Resources::ConversionAction->new({ name => "Earth to Mars Cruises Conversion #" . uniqid(), category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V13::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V13::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 広告と Google Ads API はさまざまなコンバージョン アクションをサポートしているため、アクションの type
によって検証ルールが異なります。ConversionAction
の作成時に注意すべきルールのリストを以下に示します。
- すべての列挙型フィールド
- 列挙型フィールドを
UNKNOWN
に設定しようとすると、RequestError.INVALID_ENUM_VALUE
エラーが発生します。 app_id
app_id
属性は不変で、新しいアプリ コンバージョンを作成する場合にのみ設定できます。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
オペレーションでこの値を設定すると、2022 年 8 月 22 日以降は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
エラーが発生します。