শুরু হচ্ছে

কনভার্সন রেকর্ড করার জন্য আপনাকে অবশ্যই আপনার গুগল অ্যাডস কনভার্সন অ্যাকাউন্টে কনভার্সন ট্র্যাকিং চালু করতে হবে। এই নির্দেশিকায় বিস্তারিতভাবে বলা হয়েছে কীভাবে কনভার্সন ট্র্যাকিং চালু আছে কিনা তা নিশ্চিত করবেন, চালু না থাকলে কীভাবে তা চালু করবেন এবং বিদ্যমান কনভার্সন অ্যাকশনগুলো সম্পর্কে তথ্য সংগ্রহ করবেন।

বেশিরভাগ কনভার্সন অ্যাকশন ট্র্যাক করার জন্য আপনার পক্ষ থেকে অতিরিক্ত পদক্ষেপেরও প্রয়োজন হয়। বিভিন্ন ধরনের কনভার্সন অ্যাকশন এবং সেগুলোর প্রয়োজনীয়তা সম্পর্কে আরও তথ্যের জন্য, ‘ক্রিয়েট কনভার্সন অ্যাকশনস’ গাইডটি দেখুন।

গুগলের সাথে কনভার্সন ডেটা শেয়ার করার অনুমতি আপনার আছে কিনা, তা নিশ্চিত করা অত্যন্ত জরুরি। এটি দুটি উপায়ের যেকোনো একটিতে করা যেতে পারে:

  1. অ্যাকাউন্ট-স্তরের ডিফল্ট সম্মতি সেটিংস কনফিগার করুন। Google Ads UI- তে, Tools -> Data Manager -> Consent settings -> Default consent settings-এ ক্লিক করুন।
  2. প্রতিটি ইম্পোর্ট করা কনভার্সনে ClickConversion.consent ফিল্ডটি সেট করুন।

রূপান্তর ট্র্যাক করতে আপনার ওয়েবসাইট সেট আপ করুন।

আপনি যদি আপনার অফলাইন কনভার্সন ইম্পোর্ট ইন্টিগ্রেশন শুরু করেন, তাহলে প্রথম ধাপ হলো ' Configure the Google tag for enhanced conversions for leads' গাইডের ধাপগুলো অনুসরণ করে আপনার ওয়েবসাইটকে লিডসের জন্য উন্নত কনভার্সন ট্র্যাক করার জন্য কনফিগার করা। এছাড়াও আপনি 'Configure Google Tag Manager for enhanced conversions for leads' গাইডের ধাপগুলো অনুসরণ করে আপনার ওয়েবসাইট কনফিগার করতে পারেন।

আপনার গুগল অ্যাডস কনভার্সন অ্যাকাউন্টে কনভার্সন ট্র্যাকিং চালু করুন।

আপনার রূপান্তর ট্র্যাকিং সেটআপ সম্পর্কে তথ্য পুনরুদ্ধার করুন

আপনি 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 API রিকোয়েস্টে customer_id হিসেবে Google Ads কনভার্সন কাস্টমার আইডিটি দিতে হবে। উল্লেখ্য যে, কনভার্সন ট্র্যাকিং চালু না থাকলেও এই ফিল্ডটি পূরণ হয়ে যায়।

conversion_tracking_status ফিল্ডটি নির্দেশ করে যে কনভার্সন ট্র্যাকিং সক্রিয় আছে কিনা এবং অ্যাকাউন্টটি ক্রস-অ্যাকাউন্ট কনভার্সন ট্র্যাকিং ব্যবহার করছে কিনা।

Google Ads কনভার্সন কাস্টমারের অধীনে একটি কনভার্সন অ্যাকশন তৈরি করুন।

যদি conversion_tracking_status এর মান NOT_CONVERSION_TRACKED হয়, তাহলে অ্যাকাউন্টটির জন্য কনভার্সন ট্র্যাকিং সক্রিয় করা নেই। নিচের উদাহরণের মতো Google Ads কনভার্সন অ্যাকাউন্টে অন্তত একটি ConversionAction তৈরি করে কনভার্সন ট্র্যাকিং সক্রিয় করুন। বিকল্পভাবে, আপনি যে কনভার্সন টাইপটি সক্রিয় করতে চান, তার জন্য হেল্প সেন্টারের নির্দেশাবলী অনুসরণ করে UI-তে একটি কনভার্সন অ্যাকশন তৈরি করতে পারেন।

উল্লেখ্য যে, গুগল অ্যাডস এপিআই (Google Ads API)-এর মাধ্যমে পাঠানো হলে এনহ্যান্সড কনভার্সন (enhanced conversions) স্বয়ংক্রিয়ভাবে চালু হয়ে যায়, কিন্তু গুগল অ্যাডস ইউআই (Google Ads UI)-এর মাধ্যমে এগুলো বন্ধ করা যেতে পারে।

কোডের উদাহরণ

জাভা

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

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V24::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-তে কনভার্সন অ্যাকশন তৈরি করার বিষয়ে আরও নির্দেশনার জন্য, Create Conversion Actions দেখুন।

একটি বিদ্যমান রূপান্তর ক্রিয়া পুনরুদ্ধার করুন

নিম্নলিখিত কোয়েরিটি ব্যবহার করে আপনি একটি বিদ্যমান কনভার্সন অ্যাকশনের বিবরণ পুনরুদ্ধার করতে পারেন। নিশ্চিত করুন যে অনুরোধে থাকা কাস্টমার আইডিটি উপরে আপনার চিহ্নিত করা 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 নিম্নলিখিত কনভার্সন অ্যাকশনগুলো রিটার্ন করে:

  • ক্রস-অ্যাকাউন্ট রূপান্তর ট্র্যাকিংয়ের জন্য অ্যাকাউন্ট দ্বারা ব্যবহৃত ম্যানেজার অ্যাকাউন্ট দ্বারা সংজ্ঞায়িত সমস্ত রূপান্তর কার্যক্রম।
  • গ্রাহকের অর্জিত পরিসংখ্যান সহ সমস্ত রূপান্তর কার্যক্রম, যার মধ্যে সিস্টেম-সংজ্ঞায়িত কার্যক্রম এবং ম্যানেজারের মালিকানাধীন কার্যক্রমও অন্তর্ভুক্ত, এমনকি যদি সেই ম্যানেজার পরবর্তীতে আনলিঙ্ক করেও দেয়।
  • গ্রাহক তার নিজের অ্যাকাউন্টে যে সমস্ত কার্যকলাপ নির্ধারণ করেছেন
  • লিঙ্ক করা গুগল অ্যানালিটিক্স প্রপার্টিতে তৈরি হওয়া অ্যানালিটিক্স কনভার্সন। এর মধ্যে সেইসব অ্যানালিটিক্স কনভার্সনের অ্যাকশনও অন্তর্ভুক্ত, যেগুলো গুগল অ্যাডস-এ ইম্পোর্ট করা হয়নি এবং যেগুলোর স্ট্যাটাস ' HIDDEN )।

ক্লায়েন্ট অ্যাকাউন্ট তৈরি করার সময় আপনি গুগল অ্যাডস এপিআই ব্যবহার করে ক্রস-কনভার্সন ট্র্যাকিং চালু করতে পারেন।

নতুন Customer তৈরি করার সময়, conversion_tracking_setting.google_ads_conversion_customer কে সেই ম্যানেজার অ্যাকাউন্টের রিসোর্স নামে সেট করুন, যেটি ক্লায়েন্ট অ্যাকাউন্টের পক্ষ থেকে কনভার্সন অ্যাকশনগুলো পরিচালনা করবে। এই ম্যানেজার অ্যাকাউন্টটিকেই নতুন ক্লায়েন্ট অ্যাকাউন্ট create অনুরোধটি জারি করতে হবে।

ক্লায়েন্ট অ্যাকাউন্ট তৈরি এবং আপডেট উভয় সময়েই আপনি গুগল অ্যাডস এপিআই ব্যবহার করে ক্রস-কনভার্সন ট্র্যাকিংয়ে অংশগ্রহণ করতে পারেন।

বিদ্যমান কোনো ক্লায়েন্ট অ্যাকাউন্ট আপডেট করার সময়, আপনি conversion_tracking_setting.google_ads_conversion_customer ফিল্ডটি সেট করে ক্রস-অ্যাকাউন্ট কনভার্সন ট্র্যাকিং চালু করতে পারেন। এই ফিল্ডটি সেই ম্যানেজার অ্যাকাউন্টের রিসোর্স নামে সেট করতে হবে, যেটি ক্লায়েন্ট অ্যাকাউন্টের পক্ষ থেকে কনভার্সন অ্যাকশনগুলো পরিচালনা করবে। এই ম্যানেজার অ্যাকাউন্টটিকেই ক্লায়েন্ট অ্যাকাউন্টের জন্য update অনুরোধটি জারি করতে হবে।

দ্রষ্টব্য: গুগল অ্যাডস এপিআই ব্যবহার করে কোনো ক্লায়েন্ট অ্যাকাউন্টের ক্রস-অ্যাকাউন্ট কনভার্সন ট্র্যাকিং সেটিংস পরিবর্তন করার সুবিধাটি শুধুমাত্র অনুমোদিত তালিকার অন্তর্ভুক্ত। এটি ব্যবহার করতে, আপনার অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন।

যখন আপনি ক্রস-অ্যাকাউন্ট কনভার্সন ট্র্যাকিং চালু করেন, অথবা কোনো বিদ্যমান ক্লায়েন্ট অ্যাকাউন্টের জন্য কনভার্সন ট্র্যাকিং ম্যানেজার পরিবর্তন করেন, তখন সেই একই সতর্কতাগুলো প্রযোজ্য হবে, যেন আপনি এই পরিবর্তনটি UI-তে করছেন। বিশেষত:

  • ক্লায়েন্ট অ্যাকাউন্টটি তার নতুন কনভার্সন ট্র্যাকিং ম্যানেজারের ডিফল্ট কনভার্সন ভ্যালু রুলস এবং ডিফল্ট কাস্টমার লাইফসাইকেল গোলগুলো গ্রহণ করবে।
  • যে ক্যাম্পেইনগুলো একটি নির্দিষ্ট কনভার্সন অ্যাকশনকে টার্গেট করে, সেগুলো কনভার্সন ম্যানেজার অ্যাকাউন্টের ডিফল্ট কনভার্সন গোল ব্যবহার করতে শুরু করবে। আপনি যদি একটি নির্দিষ্ট কনভার্সন অ্যাকশনকে টার্গেট করা চালিয়ে যান, তবে তা অসামঞ্জস্যপূর্ণ আচরণ তৈরি করতে পারে, কারণ ম্যানেজার অ্যাকাউন্টের গোলগুলো ক্লায়েন্ট অ্যাকাউন্টের গোলের মতো নাও হতে পারে। নিশ্চিত করুন যে আপনার ক্যাম্পেইনগুলো সঠিক গোলের জন্য অপ্টিমাইজ করা আছে।
  • যদি কোনো অ্যাকাউন্ট একাধিক ম্যানেজার অ্যাকাউন্টের অধীনে থাকে, তবে এটি শুধুমাত্র একজন ম্যানেজারের কনভার্সন অ্যাকশন ব্যবহার করতে পারবে। যদি কোনো কনভার্সন ট্র্যাকিং অ্যাকাউন্ট নির্দিষ্ট করা না থাকে, তবে অ্যাকাউন্টটি ডিফল্টরূপে নিজেকেই কনভার্সন ট্র্যাকিং অ্যাকাউন্ট হিসেবে ব্যবহার করবে।

রূপান্তর ক্রিয়া তৈরি করুন

কনভার্সন পরিমাপ করতে, আপনি যে type কনভার্সন অ্যাকশন ট্র্যাক করতে চান তার জন্য একটি ConversionAction সেট আপ করুন। উদাহরণস্বরূপ, একটি অনলাইন কেনাকাটা এবং একটি ফোন কলের জন্য ভিন্ন ভিন্ন কনভার্সন অ্যাকশনের প্রয়োজন হয়।

এপিআই-তে নতুন কনভার্সন অ্যাকশন সেট আপ করার সেরা উপায় হলো নিচের 'অ্যাড কনভার্সন অ্যাকশন' কোড উদাহরণটি ব্যবহার করা। এই স্যাম্পলটি আপনার জন্য ব্যাকগ্রাউন্ডের সমস্ত অথেনটিকেশন টাস্ক পরিচালনা করে এবং আপনাকে একটি ConversionAction তৈরি করার পুরো প্রক্রিয়াটি ধাপে ধাপে দেখিয়ে দেয়।

বেশিরভাগ কনভার্সন অ্যাকশন ট্র্যাক করার জন্য আপনার পক্ষ থেকে অতিরিক্ত কিছু পদক্ষেপেরও প্রয়োজন হয়। উদাহরণস্বরূপ, আপনার ওয়েবসাইটে কনভার্সন ট্র্যাক করতে, আপনাকে ওয়েবসাইটের কনভার্সন পেজে `<conversion>` ট্যাগ নামক একটি কোড স্নিপেট যোগ করতে হবে। অন্যান্য ধরনের কনভার্সন অ্যাকশনের বিস্তারিত প্রয়োজনীয়তার জন্য, আমাদের হেল্প সেন্টার আর্টিকেলটি দেখুন।

কোডের উদাহরণ

নিম্নলিখিত কোড উদাহরণটি একটি নতুন কনভার্সন অ্যাকশন তৈরি করার প্রক্রিয়াটি ধাপে ধাপে দেখাবে। বিশেষত, এটি UPLOAD_CLICKS type একটি কনভার্সন অ্যাকশন তৈরি করে। এটি 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.V24.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::V24::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V24::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

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

কার্ল

আপনি এই উদাহরণটি আপনার ক্লায়েন্ট লাইব্রেরির রিমার্কেটিং ফোল্ডারে এবং কোড উদাহরণ সংগ্রহে দেখতে পারেন: অ্যাড কনভার্সন অ্যাকশন কোড উদাহরণ

বৈধতা

গুগল অ্যাডস এবং গুগল অ্যাডস এপিআই বিভিন্ন ধরনের কনভার্সন অ্যাকশন সমর্থন করে, তাই অ্যাকশনের type উপর ভিত্তি করে কিছু ভ্যালিডেশন নিয়ম ভিন্ন হয়ে থাকে।

কনভার্সন অ্যাকশন তৈরি করার সময় সবচেয়ে সাধারণ ত্রুটি হলো DUPLICATE_NAME )। প্রতিটি কনভার্সন অ্যাকশনের জন্য একটি অনন্য নাম ব্যবহার করা নিশ্চিত করুন।

ConversionAction ফিল্ডগুলো সেট করার জন্য এখানে কিছু পরামর্শ দেওয়া হলো:

সমস্ত এনাম ফিল্ড
যেকোনো 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 অ্যাট্রিবিউটটি অপরিবর্তনীয় এবং এটি শুধুমাত্র নতুন কনভার্সন তৈরি করার সময় সেট করা যায়।

UNKNOWN type কোনো কনভার্সন অ্যাকশন আপডেট করলে 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 ত্রুটি দেখা দেয়।