ایجاد کنش های تبدیل

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

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

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

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

تبدیل های وب سایت

تبدیل وب سایت به شما امکان می دهد اقدامات وب سایت مانند فروش آنلاین، کلیک روی پیوند، بازدید از صفحه و ثبت نام را دنبال کنید.

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

ConversionAction شامل چندین نوع تبدیل وب سایت است که در API با فیلد type در هر TagSnippet فهرست شده در قسمت tag_snippets یک ConversionAction مشخص می شود.

TagSnippet کد رهگیری را ارائه می دهد که باید در وب سایت شما گنجانده شود تا اقدامات تبدیل شما را ردیابی کند. برای تبدیل کلیک بر روی وب‌سایت و شماره تلفن، به event_snippet نیاز است، که باید در صفحات وب قرار گیرد که نشان‌دهنده یک عمل تبدیل مانند تأیید تسویه حساب یا صفحه ارسال فرم سرنخ، و global_site_tag است که باید در هر صفحه وب‌سایت شما نصب شود. شما می توانید هر دوی این ویژگی ها را با ConversionActionService بازیابی کنید. برای اطلاعات بیشتر در مورد نحوه برچسب گذاری صفحات خود ، مرکز راهنمایی ما را بررسی کنید.

جدول زیر پارامترهای API معادل را برای استفاده برای هر منبع در رابط وب Google Ads نشان می دهد:

نوع کد رهگیری منبع تبلیغات گوگل
WEBPAGE وب سایت، وب سایت (Google Analytics (GA4))
WEBPAGE_ONCLICK وب سایت، وب سایت (Google Analytics (GA4))
CLICK_TO_CALL شماره تلفن کلیک می کند
--- وب سایت (Google Analytics (UA))

تبدیل برنامه

تبدیل برنامه به شما امکان می دهد نصب برنامه تلفن همراه یا خرید برنامه را از فروشگاه Google Play دنبال کنید.

جدول زیر پارامترهای معادل ConversionActionType API را برای استفاده برای هر منبع در رابط وب Google Ads نشان می دهد:

نوع اقدام تبدیل منبع تبلیغات گوگل
GOOGLE_PLAY_DOWNLOAD Google Play > Installs
GOOGLE_PLAY_IN_APP_PURCHASE Google Play > خریدهای درون برنامه ای

اگر به دنبال ردیابی سایر اقدامات برنامه تلفن همراه با استفاده از ویژگی های Google Analytics 4 یا تجزیه و تحلیل برنامه های شخص ثالث هستید. به انواع اقدام تبدیل اضافی مراجعه کنید.

تبدیل تماس تلفنی

ردیابی تبدیل تماس تلفنی به شما امکان می‌دهد تماس‌های تبلیغاتی، تماس‌های با شماره‌ای در وب‌سایت خود و کلیک بر روی شماره‌ها را در سایت‌های تلفن همراه ردیابی کنید.

جدول زیر پارامترهای معادل 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 ، این ردیاب نیاز دارد که event_snippet و global_site_tag به وب‌سایت شما اضافه شود تا شماره بازارسال پویا Google برای ردیابی تماس در شماره‌های فهرست‌شده در وب‌سایت شما بازیابی شود. علاوه بر این، باید یک دارایی تماس راه‌اندازی کنید و آن را در سطح مشتری، کمپین یا گروه تبلیغاتی پیوند دهید .

تبدیل های آفلاین را وارد کنید

جدول زیر پارامترهای معادل ConversionActionType API را برای استفاده برای هر منبع در رابط وب Google Ads و پیوندی به مستندات برای هر نوع اقدام تبدیل خاص نشان می دهد:

نوع اقدام تبدیل منبع تبلیغات گوگل راهنمای راه اندازی API
UPLOAD_CLICKS ردیابی تبدیل ها از کلیک ها و تبدیل های پیشرفته برای سرنخ ها راهنمای کلیک های آپلود
راهنمای تبدیل های پیشرفته برای سرنخ ها
UPLOAD_CALLS ردیابی تبدیل ها از تماس ها راهنمای راه اندازی API
STORE_SALES ردیابی تبدیل های فروش فروشگاه راهنمای راه اندازی API

تبدیل های پیشرفته برای وب

تبدیل‌های پیشرفته برای وب به شما این امکان را می‌دهد که داده‌های تبدیل شخص اول را برای کنش‌های تبدیل WEBPAGE در عرض ۲۴ ساعت پس از یک رویداد تبدیل به‌جای همزمان ارسال کنید. این امکان یافتن داده های شخص اول از منابع مختلف، مانند پایگاه داده مشتری یا سیستم CRM را فراهم می کند.

انواع اقدام تبدیل اضافی

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

تبدیل SKAdNetwork

اگر کمپین‌های برنامه iOS را اجرا می‌کنید و SKAdNetwork را پیاده‌سازی کرده‌اید، می‌توانید با استفاده از منابع زیر به داده‌های SKAdNetwork ارائه‌شده به Google در سطح Customer و Campaign دسترسی داشته باشید:

فیلد گزارش شرح
metrics.sk_ad_network_conversions تعداد تبدیل های گزارش شده توسط اپل. این معیار را فقط می توان با هر ترکیبی از segments.sk_ad_network_conversion_value و بخش های مربوط به تاریخ تقسیم کرد.
segments.sk_ad_network_conversion_value

ارزش یک تبدیل گزارش شده توسط اپل. این بخش را نمی توان برای هیچ معیار دیگری به جز metrics.sk_ad_network_conversions اعمال کرد و فقط می تواند با بخش های مربوط به تاریخ ترکیب شود.

اگر اپل مقدار 0 را گزارش کند مقدار 0 برگردانده می شود و در غیر این صورت هیچ مقداری وجود ندارد. برای تمایز بین این دو مورد ، حضور میدان را بررسی کنید.

همچنین می‌توانید از طریق CustomerSkAdNetworkConversionValueSchema نگاشت ارزش تبدیل SKAdNetwork را برای مشتریان مرتبط خاص با برنامه‌های iOS ذخیره کنید.

نمونه کد پایتون

#!/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="v16"
    )

    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 Analytics مرتبط دارای یکی از مقادیر type زیر است:

  • تبدیل ویژگی GA4:

    • GOOGLE_ANALYTICS_4_CUSTOM
    • GOOGLE_ANALYTICS_4_PURCHASE

    همچنین می‌توانید شناسه دارایی GA4، نام دارایی و نام رویداد را از قسمت google_analytics_4_settings بازیابی کنید.

  • تبدیل ویژگی Universal Analytics:

    • UNIVERSAL_ANALYTICS_GOAL
    • UNIVERSAL_ANALYTICS_TRANSACTION

می توانید تغییرات زیر را در تبدیل ویژگی GA4 ایجاد کنید:

هر تلاشی برای اصلاح سایر ویژگی‌های یک تبدیل GA4 وارد شده یا هر ویژگی تبدیل Universal Analytics وارد شده منجر به خطای MUTATE_NOT_ALLOWED می‌شود. این تغییرات را فقط می‌توانید با استفاده از رابط کاربری Google Ads انجام دهید.

Firebase و تجزیه و تحلیل برنامه های شخص ثالث

برای وارد کردن تجزیه و تحلیل برنامه های شخص ثالث یا تبدیل های Firebase ، status ConversionAction را با استفاده از روش mutate ConversionActionService از 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

فروش فروشگاه

اگرچه نمی‌توانید اقدامات تبدیل STORE_SALES یا STORE_SALES_DIRECT_UPLOAD را با استفاده از Google Ads API ایجاد کنید، API از بارگذاری تراکنش‌های فروش فروشگاه پشتیبانی می‌کند.

  • 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 ایجاد می کند. این همان جریان رابط کاربری 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.V16.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::V16::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V16::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V16::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 می شود.