شروع به کار

برای ثبت تبدیل، باید ردیابی تبدیل را در حساب تبدیل Google Ads خود فعال کنید. این راهنما جزئیاتی را در مورد چگونگی تأیید فعال بودن ردیابی تبدیل، فعال کردن آن در صورتی که قبلاً فعال نشده است، و بازیابی اطلاعات مربوط به اقدامات تبدیل موجود ارائه می دهد.

اکثر اقدامات تبدیل نیز برای ردیابی آنها به مراحل اضافی نیاز دارند. برای اطلاعات بیشتر در مورد انواع مختلف اقدام تبدیل و الزامات آنها، به راهنمای ایجاد اقدامات تبدیل مراجعه کنید.

وب سایت خود را برای ردیابی تبدیل ها تنظیم کنید

اگر یکپارچه‌سازی واردات تبدیل آفلاین خود را شروع می‌کنید، اولین قدم این است که مراحل موجود در راهنمای پیکربندی برچسب Google برای تبدیل‌های پیشرفته برای سرنخ‌ها را دنبال کنید تا وب‌سایت خود را برای ردیابی تبدیل‌های پیشرفته برای سرنخ‌ها پیکربندی کنید. همچنین می‌توانید با دنبال کردن مراحل موجود در راهنمای پیکربندی Google Tag Manager برای تبدیل‌های پیشرفته برای سرنخ‌ها، از Google Tag Manager برای پیکربندی وب‌سایت خود استفاده کنید.

ردیابی تبدیل را در حساب تبدیل Google Ads خود فعال کنید

اطلاعات مربوط به تنظیمات ردیابی تبدیل خود را بازیابی کنید

می‌توانید تنظیمات ردیابی تبدیل حساب خود را بررسی کنید و با جستجو در منبع Customer برای ConversionTrackingSetting ، تأیید کنید که ردیابی تبدیل فعال است. درخواست زیر را با GoogleAdsService.SearchStream صادر کنید:

SELECT
  customer.conversion_tracking_setting.google_ads_conversion_customer,
  customer.conversion_tracking_setting.conversion_tracking_status,
  customer.conversion_tracking_setting.conversion_tracking_id,
  customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer

فیلد google_ads_conversion_customer حساب Google Ads را نشان می‌دهد که تبدیل‌ها را برای این مشتری ایجاد و مدیریت می‌کند. برای مشتریانی که از ردیابی تبدیل بین حساب‌ها استفاده می‌کنند، این شناسه یک حساب مدیر است. شناسه مشتری تبدیل Google Ads باید به عنوان customer_id در درخواست‌های Google Ads API برای ایجاد و مدیریت تبدیل‌ها ارائه شود. توجه داشته باشید که حتی اگر ردیابی تبدیل فعال نباشد، این قسمت پر است.

فیلد conversion_tracking_status نشان می‌دهد که آیا ردیابی تبدیل فعال است و آیا حساب از ردیابی تبدیل بین حساب‌ها استفاده می‌کند یا خیر.

یک اقدام تبدیل تحت مشتری تبدیل Google Ads ایجاد کنید

اگر مقدار conversion_tracking_status NOT_CONVERSION_TRACKED باشد، ردیابی تبدیل برای حساب فعال نیست. با ایجاد حداقل یک ConversionAction در حساب تبدیل Google Ads، مانند مثال زیر، ردیابی تبدیل را فعال کنید. همچنین، می‌توانید با دنبال کردن دستورالعمل‌های موجود در مرکز راهنمایی برای نوع تبدیلی که می‌خواهید فعال کنید، یک اقدام تبدیل در رابط کاربری ایجاد کنید.

توجه داشته باشید که وقتی از طریق Google Ads API ارسال می‌شود، تبدیل‌های پیشرفته به‌طور خودکار فعال می‌شوند، اما می‌توان آن‌ها را از طریق رابط کاربری Google Ads غیرفعال کرد.

نمونه کد

جاوا

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());
    }
  }
}
      

سی شارپ

public void Run(GoogleAdsClient client, long customerId)
{
    // Get the ConversionActionService.
    ConversionActionServiceClient conversionActionService =
        client.GetService(Services.V19.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
        );
    }
}
      

پایتون

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}".'
    )
      

روبی

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
      

پرل

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::V19::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V19::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;
}
      

مطمئن شوید که conversion_action_type روی مقدار ConversionActionType صحیح تنظیم شده است. برای راهنمایی بیشتر در مورد ایجاد کنش‌های تبدیل در Google Ads API، به ایجاد کنش‌های تبدیل مراجعه کنید.

یک اقدام تبدیل موجود را بازیابی کنید

می‌توانید جزئیات یک اقدام تبدیل موجود را با ارسال عبارت زیر بازیابی کنید. مطمئن شوید که شناسه مشتری در درخواست روی مشتری تبدیل Google Ads که در بالا شناسایی کرده‌اید و نوع اقدام تبدیل روی مقدار ConversionActionType صحیح تنظیم شده است.

SELECT
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'

ردیابی تبدیل بین حساب ها

اگر از ردیابی تبدیل بین حساب‌ها استفاده می‌کنید، ConversionActionService اقدامات تبدیل زیر را برمی‌گرداند:

  • همه اقدامات تبدیل تعریف شده توسط حساب مدیر که توسط حساب برای ردیابی تبدیل بین حساب‌ها استفاده می‌شود
  • همه اقدامات تبدیلی که مشتری در مورد آنها آمار جمع آوری کرده است، از جمله اقدامات تعریف شده توسط سیستم، و اقدامات متعلق به مدیر، حتی اگر مدیر متعاقباً پیوند را لغو کند.
  • تمام اقداماتی که مشتری در حساب خود تعریف کرده است
  • تبدیل تجزیه و تحلیل ایجاد شده در ویژگی های مرتبط Google Analytics. این شامل کنش‌هایی برای تبدیل‌های Analytics است که به Google Ads وارد نشده‌اند و وضعیت HIDDEN دارند.

با شروع v19.1 ، می‌توانید از Google Ads API برای انتخاب ردیابی تبدیل متقابل هنگام ایجاد حساب‌های مشتری استفاده کنید.

هنگام ایجاد یک Customer جدید، conversion_tracking_setting.google_ads_conversion_customer را روی نام منبع حساب مدیر تنظیم کنید که باید اقدامات تبدیل را از طرف حساب مشتری مدیریت کند. این حساب مدیر باید حسابی باشد که درخواست create حساب مشتری جدید را صادر می کند.

برای انتخاب ردیابی تبدیل متقابل برای حساب‌های مشتری موجود ، باید از رابط کاربری Google Ads به دنبال این دستورالعمل‌ها استفاده کنید.

ایجاد اقدامات تبدیل

برای اندازه‌گیری تبدیل‌ها، یک ConversionAction برای type کنش تبدیلی که می‌خواهید ردیابی کنید، تنظیم کنید. به عنوان مثال، یک خرید آنلاین و یک تماس تلفنی به اقدامات تبدیل متفاوتی نیاز دارد.

بهترین راه برای تنظیم کنش‌های تبدیل جدید در API این است که از مثال کد Add Conversion Action زیر استفاده کنید. نمونه تمام وظایف احراز هویت پس‌زمینه را برای شما انجام می‌دهد و شما را در ایجاد ConversionAction راهنمایی می‌کند.

اکثر اقدامات تبدیل نیز برای ردیابی آنها به مراحل اضافی نیاز دارند. به عنوان مثال، برای ردیابی تبدیل ها در وب سایت خود، باید یک قطعه کد به نام تگ را به صفحه تبدیل وب سایت خود اضافه کنید. برای جزئیات دقیق سایر انواع اقدام تبدیل، به مقاله مرکز راهنمایی ما مراجعه کنید.

نمونه کد

مثال کد زیر شما را در فرآیند ایجاد یک اقدام تبدیل جدید راهنمایی می کند. به طور خاص، یک عمل تبدیل با type تنظیم شده روی UPLOAD_CLICKS ایجاد می کند. این همان جریان رابط کاربری Google Ads است که با ایجاد یک کنش تبدیل جدید با استفاده از Import > وارد کردن دستی با استفاده از API یا آپلودها > ردیابی تبدیل‌ها از روی کلیک‌ها انجام می‌شود . همچنین category روی DEFAULT قرار می دهد.

تنظیمات پیش فرض زیر اعمال می شود:

جاوا

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());
    }
  }
}
      

سی شارپ

public void Run(GoogleAdsClient client, long customerId)
{
    // Get the ConversionActionService.
    ConversionActionServiceClient conversionActionService =
        client.GetService(Services.V19.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
        );
    }
}
      

پایتون

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}".'
    )
      

روبی

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
      

پرل

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::V19::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V19::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

value_settings برای یک اقدام تبدیل WEBSITE_CALL یا AD_CALL باید 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 می شود.