মৌলিক ব্যবহার

এই নির্দেশিকায় গুগল অ্যাডস এপিআই-এর জন্য পার্ল ক্লায়েন্ট লাইব্রেরি ব্যবহারের প্রাথমিক বিষয়গুলো ব্যাখ্যা করা হয়েছে।

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

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

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

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

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

ক্লায়েন্টটি চালু হয়ে গেলে, আপনি বিভিন্ন এপিআই সার্ভিসের ইনস্ট্যান্স তৈরি করতে পারবেন। উদাহরণস্বরূপ, ক্যাম্পেইনগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য, আপনাকে একটি CampaignService ইনস্ট্যান্স তৈরি করতে হবে:

use strict;
use warnings;

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

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

এপিআই কল করুন

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

use strict;
use warnings;
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::V25::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::V25::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};
}

ত্রুটিগুলি পরিচালনা করুন

এপিআই কল করার ফলে ত্রুটি হতে পারে। ডিফল্টরূপে, die_on_faults মান 0 ( false ) থাকে, যার ফলে কোনো এপিআই ত্রুটি ঘটলে সার্ভিস মেথডগুলো একটি সতর্কবার্তা দেয় এবং একটি Google::Ads::GoogleAds::GoogleAdsException অবজেক্ট রিটার্ন করে। রিটার্ন করা রেসপন্সটি একটি GoogleAdsException কিনা তা আপনি যাচাই করতে পারেন এবং প্রতিটি GoogleAdsError এন্ট্রি পরীক্ষা করার জন্য get_google_ads_failure() কল করতে পারেন।

বিকল্পভাবে, যদি আপনি 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::V25::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::V25::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};
  }
}

অন্যান্য উদাহরণ অন্বেষণ করুন

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

perl examples/basic_operations/get_campaigns.pl -help