مسائل رایج

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

خطاهای رایج جاوا اسکریپت

در اینجا به برخی از خطاهای رایج جاوا اسکریپت اشاره می‌کنیم.

اسکریپت با خطای "نمی‌توان تابع را پیدا کرد: FUNCTION_NAME" از کار می‌افتد.

این معمولاً نتیجه‌ی غلط املایی نام تابع در اسکریپت است.

  1. بررسی کنید که نام تابع به درستی نوشته شده باشد و حروف بزرگ و کوچک آن درست باشند؛ مثلاً AdsApp.keywordz() منجر به این خطا خواهد شد، زیرا keywordz یک تابع معتبر در کلاس AdsApp نیست. AdsApp.Keywords() نیز به دلیل املای نادرست حروف بزرگ و کوچک برای تابع keywords() با شکست مواجه خواهد شد.

  2. بررسی کنید که تابع وجود داشته باشد؛ مثلاً، AdsApp.keywords().next() با شکست مواجه خواهد شد زیرا AdsApp.keywords() یک KeywordSelector برمی‌گرداند در حالی که next() یک متد برای یک شیء KeywordIterator است. کد صحیح AdsApp.keywords().get().next() خواهد بود.

اسکریپت من اجرا می‌شود، اما هیچ کاری انجام نمی‌دهد

رایج‌ترین دلیل این مشکل این است که شما تابعی دارید که عملیاتی را انجام می‌دهد، اما آن را از متد main() فراخوانی نمی‌کنید. این معمولاً زمانی اتفاق می‌افتد که قطعه کدهایی را از مستندات ما کپی-پیست می‌کنید.

رویکرد کدگذاری قطعه کد
نسخه ۱ (کار نمی‌کند)
function main() {
  // Call to getCampaigns is missing, so this script does nothing.
}

function getCampaigns() {
  // AdsApp.campaigns() will return all Search and Display campaigns
  // that are not removed by default.
  let campaignIterator = AdsApp.campaigns().get();
  console.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    let campaign = campaignIterator.next();
    console.log(campaign.getName());
  }
}
نسخه ۲ (کار نمی‌کند)
function main() {
  // Call to getCampaigns is missing, so this script does nothing.

  function getCampaigns() {
    // AdsApp.campaigns() will return all Search and Display campaigns
    // that are not removed by default.
    let campaignIterator = AdsApp.campaigns().get();
    console.log('Total campaigns found : ' +
        campaignIterator.totalNumEntities());
    while (campaignIterator.hasNext()) {
      let campaign = campaignIterator.next();
      console.log(campaign.getName());
    }
  }
}
نسخه ۳ (کار می‌کند)
function main() {
  getCampaigns();
}

function getCampaigns() {
  // AdsApp.campaigns() will return all Search and Display campaigns
  // that are not removed by default.
  let campaignIterator = AdsApp.campaigns().get();
  console.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    let campaign = campaignIterator.next();
    Logger.log(campaign.getName());
  }
}

هنگام ارتقاء اسکریپت‌هایم، خطای "نمی‌توان تابع getFinalUrl را پیدا کرد" دریافت می‌کنم.

ممکن است هنگام تغییر اسکریپت خود برای کار با URL های ارتقا یافته با این خطا مواجه شوید. این اتفاق زمانی رخ می‌دهد که فراخوانی‌های ad.getDestinationUrl() را با ad.getFinalUrl() جایگزین می‌کنید. getFinalUrl() بخشی از کلاس AdUrls است، بنابراین باید کد خود را به ad.urls().getFinalUrl() تغییر دهید:

    function main() {
      // Incorrect snippet. getFinalUrl is not a member of the Ad class.
      let ad = AdsApp.ads().get().next();
      let url = ad.getFinalUrl();

      // Correct snippet.
      let ad = AdsApp.ads().get().next();
      let url = ad.urls().getFinalUrl();
    }

من هیچ آماری برای X ندارم

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

  1. محدوده تاریخی که آمار یا گزارش‌های مربوط به آن را بازیابی می‌کنید، بررسی کنید.

  2. اگر آمار سطح حساب را برای یک اسکریپت مدیریت تبلیغات که حساب‌های با ارزهای مختلف را مدیریت می‌کند، بازیابی کنید، هزینه را به ارز حساب مدیریت دریافت خواهید کرد.

  3. ممکن است گوگل ادز هنوز داده‌های مورد نظر شما را نداشته باشد. برای جزئیات بیشتر به راهنمای به‌روز بودن داده‌ها مراجعه کنید.

چگونه از ویژگی X استفاده کنم؟

برای مثال‌هایی از نحوه استفاده از یک ویژگی خاص، به قطعه کدها و راه‌حل‌های ما مراجعه کنید. اگر قطعه کد مناسبی پیدا نکردید، می‌توانید در دیسکورد درخواست خود را مطرح کنید.

هنوز به پشتیبانی نیاز دارید؟

اگر در زمینه‌ای که می‌توانیم به شما کمک کنیم به کمک نیاز دارید، از صفحه دریافت کمک دیدن کنید.