Ad Manager SOAP API থেকে মাইগ্রেট করুন

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

নিম্নলিখিত নির্দেশিকা Ad Manager SOAP API এবং Ad Manager API (Beta)-এর মধ্যে পার্থক্যগুলিকে রূপরেখা দেয়৷

শিখুন

স্ট্যান্ডার্ড অ্যাড ম্যানেজার SOAP API পরিষেবা পদ্ধতিগুলি Ad Manager API-এর সমতুল্য ধারণা রয়েছে৷ Ad Manager API-এ একক সত্তা পড়ার পদ্ধতিও রয়েছে। নিম্নলিখিত টেবিলটি Order পদ্ধতির জন্য একটি উদাহরণ ম্যাপিং দেখায়:

SOAP পদ্ধতি REST পদ্ধতি
getOrdersByStatement networks.orders.get
networks.orders.list

প্রমাণীকরণ

অ্যাড ম্যানেজার API (বিটা) দিয়ে প্রমাণীকরণ করতে, আপনি আপনার বিদ্যমান অ্যাড ম্যানেজার SOAP API শংসাপত্রগুলি ব্যবহার করতে পারেন বা নতুন তৈরি করতে পারেন। যেকোনো একটি বিকল্পের সাথে, আপনাকে প্রথমে আপনার Google ক্লাউড প্রকল্পে Ad Manager API সক্ষম করতে হবে। আরো বিস্তারিত জানার জন্য, প্রমাণীকরণ দেখুন।

আপনি যদি একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের পাথে পরিবেশ পরিবর্তনশীল GOOGLE_APPLICATION_CREDENTIALS সেট করে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র সেট আপ করুন৷ আরো বিস্তারিত জানার জন্য, দেখুন কিভাবে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র কাজ করে

আপনি যদি ইনস্টল করা অ্যাপ্লিকেশন শংসাপত্রগুলি ব্যবহার করেন তবে নিম্নলিখিত বিন্যাসে একটি JSON ফাইল তৈরি করুন এবং এর পরিবর্তে পরিবেশ পরিবর্তনশীলটিকে তার পথে সেট করুন:

{
  "client_id": "CLIENT_ID",
  "client_secret": "CLIENT_SECRET",
  "refresh_token": "REFRESH_TOKEN",
  "type": "authorized_user"
}

নিম্নলিখিত মানগুলি প্রতিস্থাপন করুন:

  • CLIENT_ID : আপনার নতুন বা বিদ্যমান ক্লায়েন্ট আইডি।
  • CLIENT_SECRET : আপনার নতুন বা বিদ্যমান ক্লায়েন্টের গোপনীয়তা।
  • REFRESH_TOKEN : আপনার নতুন বা বিদ্যমান রিফ্রেশ টোকেন।

লিনাক্স বা ম্যাকোস

export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH

উইন্ডোজ

set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH

ফিল্টার পার্থক্য বুঝুন

অ্যাড ম্যানেজার এপিআই (বিটা) ক্যোয়ারী ল্যাঙ্গুয়েজ সমস্ত প্রকাশক কোয়েরি ল্যাঙ্গুয়েজ (পিকিউএল) বৈশিষ্ট্য সমর্থন করে, তবে উল্লেখযোগ্য সিনট্যাক্স পার্থক্য বিদ্যমান।

Order অবজেক্টের তালিকা করার জন্য এই উদাহরণটি প্রধান পরিবর্তনগুলিকে তুলে ধরে যেমন বাইন্ড ভেরিয়েবল অপসারণ, কেস সংবেদনশীল অপারেটর, এবং আলাদা ক্ষেত্রগুলির সাথে ORDER BY এবং LIMIT ধারাগুলি প্রতিস্থাপন:

অ্যাড ম্যানেজার SOAP API

<filterStatement>
  <query>WHERE name like "PG_%" and lastModifiedDateTime &gt;= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
  <values>
    <key>lastModifiedDateTime</key>
    <value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
      <value>
        <date>
          <year>2024</year>
          <month>1</month>
          <day>1</day>
        </date>
        <hour>0</hour>
        <minute>0</minute>
        <second>0</second>
        <timeZoneId>America/New_York</timeZoneId>
      </value>
    </value>
  </values>
</filterStatement>

অ্যাড ম্যানেজার API (বিটা)

JSON বিন্যাস

{
  "filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
  "pageSize": 500,
  "orderBy":  "name"
}

ইউআরএল এনকোড করা হয়েছে

GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"

অ্যাড ম্যানেজার এপিআই (বিটা) অ্যাড ম্যানেজার SOAP API থেকে নিম্নলিখিত সিনট্যাক্স পার্থক্য সহ সমস্ত PQL ক্ষমতা সমর্থন করে:

  • অ্যাড ম্যানেজার এপিআই (বিটা) এ অপারেটর AND এবং OR কেস সংবেদনশীল । ছোট হাতের অক্ষর and এবং or খালি আক্ষরিক অনুসন্ধান স্ট্রিং হিসাবে গণ্য করা হয়, ক্ষেত্র জুড়ে অনুসন্ধান করার জন্য অ্যাড ম্যানেজার API (বিটা) এর একটি বৈশিষ্ট্য।

    বড় হাতের অপারেটর ব্যবহার করুন

    // Matches unarchived Orders where order.notes has the value 'lorem ipsum'.
    notes = "lorem ipsum" AND archived = false
    

    ছোট হাতের অক্ষরকে আক্ষরিক হিসাবে বিবেচনা করা হয়

    // Matches unarchived Orders where order.notes has the value 'lorem ipsum'
    // and any field in the order has the literal value 'and'.
    notes = "lorem ipsum" and archived = false
    
  • * অক্ষরটি স্ট্রিং ম্যাচিংয়ের জন্য একটি ওয়াইল্ডকার্ড। অ্যাড ম্যানেজার এপিআই (বিটা) like অপারেটরকে সমর্থন করে না।

    অ্যাড ম্যানেজার SOAP API PQL

    // Matches orders where displayName starts with the string 'PG_'
    displayName like "PG_%"
    

    অ্যাড ম্যানেজার API (বিটা)

    // Matches orders where displayName starts with the string 'PG_'
    displayName = "PG_*"
    
  • ক্ষেত্রের নাম অবশ্যই তুলনা অপারেটরের বাম দিকে উপস্থিত হবে:

    বৈধ ফিল্টার

    updateTime > "2024-01-01T00:00:00Z"
    

    অবৈধ ফিল্টার

    "2024-01-01T00:00:00Z" < updateTime
    
  • অ্যাড ম্যানেজার API (বিটা) বাইন্ড ভেরিয়েবল সমর্থন করে না। সমস্ত মান ইনলাইন করা আবশ্যক.

  • স্পেস সম্বলিত স্ট্রিং লিটারেলগুলি অবশ্যই ডবল কোটে মোড়ানো উচিত, উদাহরণস্বরূপ, "Foo bar" । আপনি স্ট্রিং লিটারেল মোড়ানোর জন্য একক উদ্ধৃতি ব্যবহার করতে পারবেন না।

ধারা দ্বারা আদেশ সরান

অ্যাড ম্যানেজার এপিআই (বিটা) এ একটি সাজানোর অর্ডার নির্দিষ্ট করা ঐচ্ছিক। আপনি যদি আপনার ফলাফল সেটের জন্য একটি সাজানোর ক্রম নির্দিষ্ট করতে চান, তাহলে PQL ORDER BY ধারাটি সরিয়ে দিন এবং পরিবর্তে orderBy ক্ষেত্র সেট করুন:

GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc

অফসেট থেকে পেজিনেশন টোকেনে স্থানান্তর করুন

Ad Manager API (Beta) বড় ফলাফল সেটের মাধ্যমে পেজ করার জন্য LIMIT এবং OFFSET ক্লজের পরিবর্তে পেজিনেশন টোকেন ব্যবহার করে।

অ্যাড ম্যানেজার এপিআই (বিটা) পৃষ্ঠার আকার নিয়ন্ত্রণ করতে একটি pageSize প্যারামিটার ব্যবহার করে। Ad Manager SOAP API-এর LIMIT ক্লজের বিপরীতে, একটি পৃষ্ঠার আকার বাদ দিলে সম্পূর্ণ ফলাফল সেটটি ফিরে আসে না । পরিবর্তে, তালিকা পদ্ধতিটি 50 এর একটি ডিফল্ট পৃষ্ঠার আকার ব্যবহার করে। নিম্নলিখিত উদাহরণটি URL প্যারামিটার হিসাবে pageSize এবং pageToken সেট করে:

# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50

# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}

অ্যাড ম্যানেজার SOAP API-এর বিপরীতে, অতিরিক্ত পৃষ্ঠা থাকলেও অ্যাড ম্যানেজার API (বিটা) অনুরোধ করা পৃষ্ঠার আকারের চেয়ে কম ফলাফল দিতে পারে। অতিরিক্ত ফলাফল আছে কিনা তা নির্ধারণ করতে nextPageToken ক্ষেত্রটি ব্যবহার করুন।

যদিও পেজিনেশনের জন্য অফসেটের প্রয়োজন নেই, আপনি মাল্টিথ্রেডিংয়ের জন্য skip ফিল্ড ব্যবহার করতে পারেন। মাল্টিথ্রেডিং করার সময়, আপনি একই ফলাফল সেট থেকে পড়ছেন তা নিশ্চিত করতে প্রথম পৃষ্ঠা থেকে পেজিনেশন টোকেন ব্যবহার করুন:

# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}

# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50