شروع به کار

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

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

بسیار مهم است که تأیید کنید اجازه اشتراک‌گذاری داده‌های تبدیل با گوگل را دارید. این کار را می‌توان به یکی از دو روش زیر انجام داد:

  1. تنظیمات رضایت پیش‌فرض در سطح حساب را پیکربندی کنید. در رابط کاربری گوگل ادز ، روی ابزارها -> مدیر داده -> تنظیمات رضایت -> تنظیمات رضایت پیش‌فرض کلیک کنید.
  2. فیلد ClickConversion.consent را برای هر تبدیل وارد شده تنظیم کنید.

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

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

ردیابی تبدیل را در حساب تبدیل گوگل ادز خود فعال کنید

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

شما می‌توانید تنظیمات ردیابی تبدیل حساب کاربری خود را بررسی کنید و با جستجوی منبع 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 نشان‌دهنده حساب کاربری گوگل ادز است که تبدیل‌ها را برای این مشتری ایجاد و مدیریت می‌کند. برای مشتریانی که از ردیابی تبدیل بین حساب‌های کاربری استفاده می‌کنند، این شناسه یک حساب کاربری مدیر است. شناسه مشتری تبدیل گوگل ادز باید به عنوان customer_id در درخواست‌های API گوگل ادز برای ایجاد و مدیریت تبدیل‌ها ارائه شود. توجه داشته باشید که این فیلد حتی اگر ردیابی تبدیل فعال نباشد، پر می‌شود.

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

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

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

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

مثال کد

جاوا

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.V22.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;
    }
}
      

پی اچ پی

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: GoogleAdsClient, customer_id: str) -> None:
    conversion_action_service: ConversionActionServiceClient = (
        client.get_service("ConversionActionService")
    )

    # Create the operation.
    conversion_action_operation: ConversionActionOperation = client.get_type(
        "ConversionActionOperation"
    )

    # Create conversion action.
    conversion_action: ConversionAction = 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: ConversionAction.ValueSettings = (
        conversion_action.value_settings
    )
    value_settings.default_value = 15.0
    value_settings.always_use_default_value = True

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

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V22::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 تنظیم شده است. برای راهنمایی بیشتر در مورد ایجاد اقدامات تبدیل در API تبلیغات گوگل، به بخش ایجاد اقدامات تبدیل مراجعه کنید.

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

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

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

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

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

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

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

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

از v20 ، می‌توانید از API گوگل ادز برای فعال کردن ردیابی تبدیل متقابل، چه هنگام ایجاد و چه هنگام به‌روزرسانی حساب‌های کاربری، استفاده کنید.

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

توجه: استفاده از API گوگل ادز برای تغییر تنظیمات ردیابی تبدیل بین حساب‌های کاربری یک حساب کاربری، فقط یک ویژگی مجاز است. برای استفاده از آن، با مدیر حساب خود تماس بگیرید.

وقتی ردیابی تبدیل بین حساب‌های کاربری را انتخاب می‌کنید، یا مدیر ردیابی تبدیل را برای یک حساب کاربری موجود تغییر می‌دهید، همان ملاحظاتی که هنگام ایجاد این تغییر در رابط کاربری اعمال می‌کنید، اعمال می‌شود. به طور خاص:

  • حساب کاربری، قوانین پیش‌فرض ارزش تبدیل و اهداف پیش‌فرض چرخه عمر مشتریِ مدیر جدید ردیابی تبدیل را اتخاذ خواهد کرد.
  • کمپین‌هایی که یک اقدام تبدیل خاص را هدف قرار می‌دهند، به استفاده از اهداف تبدیل پیش‌فرض حساب مدیر تبدیل تغییر خواهند کرد. اگر به هدف قرار دادن یک اقدام تبدیل خاص ادامه دهید، می‌تواند رفتار متناقضی ایجاد کند، زیرا ممکن است حساب مدیر اهداف مشابهی با حساب مشتری نداشته باشد. مطمئن شوید که کمپین‌های شما برای اهداف درست بهینه شده‌اند.
  • اگر یک حساب کاربری متعلق به بیش از یک حساب کاربری مدیر باشد، فقط می‌تواند از اقدامات تبدیل از یک مدیر استفاده کند. اگر هیچ حساب کاربری ردیابی تبدیل مشخص نشده باشد، حساب کاربری به طور پیش‌فرض از خودش به عنوان حساب ردیابی تبدیل استفاده می‌کند.

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

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

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

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

مثال کد

مثال کد زیر شما را در فرآیند ایجاد یک عمل تبدیل جدید راهنمایی می‌کند. به طور خاص، یک عمل تبدیل با type تنظیم شده روی UPLOAD_CLICKS ایجاد می‌کند. همچنین 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.V22.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;
    }
}
      

پی اچ پی

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: GoogleAdsClient, customer_id: str) -> None:
    conversion_action_service: ConversionActionServiceClient = (
        client.get_service("ConversionActionService")
    )

    # Create the operation.
    conversion_action_operation: ConversionActionOperation = client.get_type(
        "ConversionActionOperation"
    )

    # Create conversion action.
    conversion_action: ConversionAction = 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: ConversionAction.ValueSettings = (
        conversion_action.value_settings
    )
    value_settings.default_value = 15.0
    value_settings.always_use_default_value = True

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

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V22::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) در کتابخانه‌ی کلاینت خود و در مجموعه‌ی مثال‌های کد مشاهده کنید: مثال کد «افزودن مثال کد اقدام تبدیل» .

اعتبارسنجی‌ها

گوگل ادز و رابط برنامه‌نویسی کاربردی گوگل ادز از طیف گسترده‌ای از اقدامات تبدیل پشتیبانی می‌کنند، بنابراین برخی از قوانین اعتبارسنجی بر اساس 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_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 می‌شود.