প্রাথমিক ব্যবহার

এই নির্দেশিকা Google Ads API-এর জন্য Perl ক্লায়েন্ট লাইব্রেরি ব্যবহারের প্রাথমিক বিষয়গুলি ব্যাখ্যা করে।

ক্লায়েন্ট শুরু করুন

লাইব্রেরি ব্যবহার করা শুরু করতে, Google::Ads::GoogleAds::Client-এর ইনস্ট্যান্স তৈরি করুন। কনফিগারেশন গাইডে বিস্তারিতভাবে যেমন বলা আছে, ক্লায়েন্টকে বিভিন্ন উপায়ে কনফিগার করা যেতে পারে। একটি সাধারণ পদ্ধতি হল googleads.properties ফাইল ব্যবহার করা:

use strict;
use warnings;
use Google::Ads::GoogleAds::Client;

my $api_client = Google::Ads::GoogleAds::Client->new();

পরিষেবা তৈরি করুন

ক্লায়েন্ট শুরু হয়ে গেলে, আপনি বিভিন্ন API পরিষেবার ইনস্ট্যান্স তৈরি করতে পারবেন। যেমন, ক্যাম্পেনের সাথে ইন্টার‍্যাক্ট করতে, আপনাকে একটি CampaignService ইনস্ট্যান্স তৈরি করতে হবে:

use strict;
use warnings;

my $campaign_service = $api_client->CampaignService();

ডিফল্ট হিসেবে, $api_client আপনার ইনস্টল করা লাইব্রেরি রিলিজের DEFAULT_API_VERSION-এর জন্য পরিষেবা লোড করে (লেটেস্ট রিলিজে V26; v25.1-এর মতো মাইনর রিলিজ তাদের মেজর ভার্সন মডিউল, V25 ব্যবহার করে)। নির্দিষ্ট কোনও কাজ করা API ভার্সন টার্গেট করতে, version => "V26"-কে Client->new({...})-এ পাস করুন অথবা $api_client->set_version("V26")-কে কল করুন।

API কল করা

ক্যাম্পেন পেতে কীভাবে API কল করতে হয় তার একটি উদাহরণ এখানে দেওয়া হল। এই স্নিপেট ক্লায়েন্ট ইনিশিয়ালাইজ করা, পরিষেবা তৈরি করা এবং পদ্ধতি কল করার বিষয়টি দেখায়।

use strict;
use warnings;
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::V26::Services::GoogleAdsService::SearchGoogleAdsRequest;

# Initialize the Google Ads client. See the Configuration guide for options.
my $api_client = Google::Ads::GoogleAds::Client->new();

# Get the GoogleAdsService.
my $google_ads_service = $api_client->GoogleAdsService();

# Specify the customer ID and query.
my $customer_id = "INSERT_CUSTOMER_ID_HERE";
my $query = "SELECT campaign.name, campaign.status FROM campaign";

# Create a search request.
my $search_request =
  Google::Ads::GoogleAds::V26::Services::GoogleAdsService::SearchGoogleAdsRequest
  ->new({
    customerId => $customer_id,
    query      => $query,
  });

# Execute the search request.
my $search_response = $google_ads_service->search($search_request);

# Iterate over the results and print campaign names.
foreach my $google_ads_row (@{$search_response->{results} || []}) {
  printf "Campaign with resource name '%s' and name '%s'.\n",
    $google_ads_row->{campaign}->{resourceName},
    $google_ads_row->{campaign}->{name};
}

সমস্যা ম্যানেজ করা

API কলের ফলে সমস্যা হতে পারে। ডিফল্ট হিসেবে, die_on_faults হল 0 (false), যার ফলে API সংক্রান্ত সমস্যা হলে, পরিষেবা পদ্ধতি একটি সতর্কতা জারি করে এবং Google::Ads::GoogleAds::GoogleAdsException অবজেক্ট ফিরিয়ে দেয়। আপনি চেক করে দেখতে পারেন যে ফেরত আসা উত্তরটি GoogleAdsException কিনা এবং get_google_ads_failure()-এ কল করে আলাদা আলাদা GoogleAdsError এন্ট্রি চেক করতে পারেন।

বিকল্প হিসেবে, আপনি যদি Client->new({...})-এ die_on_faults => 1 সেট করেন (অথবা $api_client->set_die_on_faults(1) কল করেন), কোনও API সংক্রান্ত সমস্যা হলে, পরিষেবা পদ্ধতিগুলি র-JSON সমস্যা সংক্রান্ত উত্তর সহ die() কল করে, যা আপনি eval ব্লকে (if ($@)) ধরতে পারবেন।

use strict;
use warnings;
use Scalar::Util qw(blessed);
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::V26::Services::GoogleAdsService::SearchGoogleAdsRequest;

my $api_client = Google::Ads::GoogleAds::Client->new();
my $google_ads_service = $api_client->GoogleAdsService();
my $customer_id = "INSERT_CUSTOMER_ID_HERE";
my $query = "SELECT campaign.name, campaign.status FROM campaign";
my $search_request =
  Google::Ads::GoogleAds::V26::Services::GoogleAdsService::SearchGoogleAdsRequest
  ->new({
    customerId => $customer_id,
    query      => $query,
  });

my $search_response = $google_ads_service->search($search_request);

if (blessed($search_response)
  && $search_response->isa("Google::Ads::GoogleAds::GoogleAdsException"))
{
  printf "An API exception occurred (HTTP %s, status '%s'): %s\n",
    $search_response->get_code(),
    $search_response->get_status(),
    $search_response->get_message();

  my $google_ads_failure = $search_response->get_google_ads_failure();
  if ($google_ads_failure) {
    foreach my $error (@{$google_ads_failure->{errors} || []}) {
      my ($error_type, $error_value) = %{$error->{errorCode} || {}};
      printf "  Error code (%s): %s\n",
        $error_type  || "unknown",
        $error_value || "UNKNOWN";
      printf "  Message: %s\n", $error->{message};
    }
  }
} else {
  foreach my $google_ads_row (@{$search_response->{results} || []}) {
    printf "Campaign name: %s\n", $google_ads_row->{campaign}->{name};
  }
}

অন্যান্য উদাহরণ এক্সপ্লোর করুন

আপনি উদাহরণ ডিরেক্টরি থেকে বেশ কিছু উপযোগী কোড স্যাম্পেল খুঁজে পেতে পারেন। অধিকাংশ উদাহরণের জন্য প্যারামিটার প্রয়োজন। আপনি প্যারামিটারগুলিকে আর্গুমেন্ট হিসেবে পাস করতে পারেন (সাজেস্ট করা হয়েছে) অথবা সোর্স কোডে INSERT_XXXXX_HERE ভ্যালু এডিট করতে পারেন। উদাহরণস্বরূপ, ব্যবহারের বিবৃতি দেখতে, কমান্ড-লাইন আর্গুমেন্ট হিসেবে -help পাস করুন।

perl examples/basic_operations/get_campaigns.pl -help