انواع تبلیغات

گوگل ادز از انواع مختلفی از تبلیغات، مانند تبلیغات متنی، تصویری و موبایلی، پشتیبانی می‌کند. این راهنما نحوه ایجاد، بازیابی و گزارش تبلیغات با استفاده از اسکریپت‌های گوگل ادز را پوشش می‌دهد. برای مرور کلی انواع تبلیغات پشتیبانی شده توسط گوگل ادز، به راهنمای 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.`);
}

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