اکثر موجودیتهای گوگل ادز یک متد getId() دارند که شناسه آنها را برمیگرداند. اگرچه در بیشتر موارد کاملاً ضروری نیست، اما شناسهها میتوانند در موارد زیر مفید باشند:
- کار با گزارشها
- شناسهها (IDs) روش خوبی برای پیوند دادن یک ردیف گزارش به موجودیت واقعی گوگل ادز (Google Ads) ارائه میدهند.
- نگهداری نگاشت با یک پایگاه داده خارجی
- ممکن است شما از قبل اطلاعات مبتنی بر شناسه را در پایگاه داده خود ذخیره کرده باشید.
- به دنبال کمی افزایش عملکرد هستم
واکشی بر اساس شناسهها اغلب سریعتر از روشهای دیگر است. کد مربوط به واکشی یک موجودیت واحد نیز کمی آسانتر است:
let campaigns = AdsApp.campaigns() .withIds([678678]) .get(); // versus let campaigns = AdsApp.campaigns() .withCondition("Name='My Campaign'") .get();
منحصر به فرد بودن
شناسههای کمپین و شناسههای گروههای تبلیغاتی منحصر به فرد هستند: هیچ دو کمپین یا گروه تبلیغاتی هرگز شناسه یکسانی نخواهند داشت. با این حال، تبلیغات و کلمات کلیدی دارای شناسههای ترکیبی هستند: شناسه منحصر به فرد یک کلمه کلیدی ترکیبی از شناسه گروه تبلیغاتی و شناسه کلمه کلیدی آن است. به همین ترتیب، شناسه منحصر به فرد یک تبلیغ ترکیبی از شناسه گروه تبلیغاتی و شناسه تبلیغ آن است. این موضوع پیامدهایی برای نحوه فراخوانی selector.withIds() دارد.
برای کمپینها و گروههای تبلیغاتی، selector.withIds() آرایهای از اعداد را انتظار دارد:
let ids = [123123, 234234, 345345];
let campaignSelector = AdsApp.campaigns().withIds(ids);
با این حال، برای تبلیغات و کلمات کلیدی، selector.withIds() به آرایهای از آرایههای دو عنصری نیاز دارد که عنصر اول، شناسه گروه تبلیغاتی است. قطعه کد زیر سه کلمه کلیدی را از یک گروه تبلیغاتی بازیابی میکند:
let adGroupId = 123123;
let keywordSelector = AdsApp.keywords().withIds([
[adGroupId, 234234],
[adGroupId, 345345],
[adGroupId, 456456]
]);
همین ساختار هنگام دریافت تبلیغات نیز اعمال میشود.
کارتهای شناسایی موقت
هنگام کار با یک درخواست mutate با چندین عملیات، گاهی اوقات نیاز به استفاده از شناسههای موقت برای پیوند منابع به یکدیگر خواهید داشت، زیرا نام کامل منابع تا زمانی که پاسخ API را دریافت نکنید، در دسترس نخواهد بود. شناسههای موقت باید اعداد منفی باشند که از -1 شروع میشوند و نمیتوانند در همان درخواست mutate تکرار شوند. برای استفاده مؤثر از شناسههای موقت، باید کدی بنویسید تا مطمئن شوید که شناسههای موقت تکراری ایجاد نمیکنید:
let nextId = -1;
function getNextTempId() {
const ret = nextId;
nextId -= 1;
return ret;
}
هر فراخوانی متوالی تابع getNextTempId عددی یک واحد کمتر از عدد قبلی را برمیگرداند. از آنجایی که همه شناسههای موقت باید منفی باشند، از -۱ شروع کنید.
شناسههای موقت در بین کارها یا درخواستهای تغییر به خاطر سپرده نمیشوند. برای ارجاع به منبعی که در درخواست تغییر قبلی ایجاد شده است، از نام واقعی منبع آن استفاده کنید.