انواع آگهی

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

ساختن

اسکریپت‌ها می‌توانند بااستفاده از روش newAd() در نمونه‌های AdGroup آگهی ایجاد کنند. این مورد AdBuilderSpace را برمی‌گرداند که سازندگانی برای انواع آگهی پشتیبانی‌شده ایجاد می‌کند.

تکه‌کد زیر نحوه ایجاد آگهی جستجوهای واکنش‌گرا را نشان می‌دهد:

let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
    .withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
    .withDescriptions(["Description 1", "Description 2"])
    .withFinalUrl("http://www.example.com")
    .withPath1("path1")
    .withPath2("path2")
    .build();

بازرسی

برخی‌از اطلاعات مرتبط با همه انواع آگهی‌ها بلافاصله ازطریق Ad دردسترس قرار می‌گیرد، مانند شناسه آگهی و وضعیت تأیید. علاوه‌براین، هر آگهی را می‌توان موقتاً متوقف، فعال، یا برداشته شود.

برای دسترسی به فیلدهای مختص نوع آگهی، مثل عنوان‌های آگهی جستجوی واکنش‌گرا، از روش asType() برای ایجاد AdViewSpace استفاده کنید. این کار دسترسی به نسخه گسترش‌یافته Ad را فراهم می‌کند که روش‌های خاص نوع را نشان می‌دهد.

قطعه کد زیر عنوان‌های هر آگهی جستجوی واکنش‌گرا را دریافت می‌کند:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
}

توجه داشته باشید که شرط Type = RESPONSIVE_SEARCH_AD تضمین می‌کند که هر آگهی از تکرارگر یک آگهی جستجوی واکنش‌گرا است. تلاش برای مشاهده آگهی با نوع نادرست منجر به خطایی می‌شود که اجرای دستورات شما را متوقف می‌کند، بنابراین مهم است که فیلدهای خاص نوع را فقط زمانی مشاهده کنید که نوع آگهی مشخص باشد.

قطعه کد زیر نشان می‌دهد که چگونه می‌توان بااستفاده از روش Ad.isType() تعیین کرد که آیا آگهی از نوع صحیح است یا نه:

if (ad.isType().responsiveSearchAd()) {
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  let descriptions = responsiveSearchAd.getDescriptions();
}

درحالی‌که نمی‌توانید آگهی‌ها را براساس نوشتار عنوان بااستفاده از انتخاب‌کننده‌های استاندارد فیلتر کنید، می‌توانید آن‌ها را در جاوا اسکریپت پس‌از بازیابی فیلتر کنید:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  // Filter for ads containing a specific headline.
  if (headlines.some(h => h.getText().includes("Special Offer"))) {
    console.log(`Found ad with ID ${ad.getId()}`);
  }
}

گزارش

از نمای ad_group_ad می‌توان برای پُرسمان فیلدهای آگهی علاوه‌بر آمار معمولی استفاده کرد. برای مثال، می‌توانید بااستفاده از ad_group_ad.ad.type براساس نوع آگهی فیلتر کنید. تکه‌کد زیر نحوه بازیابی آمار برای همه آگهی‌های جستجوی واکنش‌گرا را نشان می‌دهد:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad_group.id, " +
          "ad_group_ad.ad.id, " +
          "metrics.clicks, " +
          "metrics.impressions, " +
          "metrics.cost " +
  "FROM ad_group_ad " +
  "WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
    "AND segments.date DURING LAST_7_DAYS");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let clicks = row.metrics.clicks;
  ...
}

فیلتر کردن براساس محتوای دارایی

برای فیلتر کردن آگهی‌های جستجوی واکنش‌گرا براساس محتوای عنوان‌ها یا توضیحات آن‌ها در مقیاس بزرگ، از منبع ad_group_ad_asset_view استفاده کنید. این نما هر عنوان و شرح را به‌عنوان ردیفی جداگانه درنظر می‌گیرد، و به شما امکان می‌دهد نوشتار دارایی را فیلتر کنید.

قطعه کد زیر آمار همه آگهی‌های جستجوی واکنش‌گرا را که حاوی عنوان خاصی هستند بازیابی می‌کند:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad.id, " +
          "asset.text_asset.text, " +
          "metrics.clicks, " +
          "metrics.impressions " +
  "FROM ad_group_ad_asset_view " +
  "WHERE asset.text_asset.text LIKE '%Special Offer%' " +
    "AND ad_group_ad_asset_view.field_type = 'HEADLINE'");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let text = row.asset.textAsset.text;
  let clicks = row.metrics.clicks;
  console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}

برای اطلاعات بیشتر درباره گزارش‌دهی در اسکریپت‌ها، به راهنمای گزارش‌ها مراجعه کنید.