تتيح لك نصوص "إعلانات Google" إدارة حملات👏 الفيديو المستندة إلى YouTube وإعداد تقارير عنها. يمكنك استخدام النصوص البرمجية لإدارة حملات الفيديو الحالية وإنشاء المجموعات الإعلانية والإعلانات وإدارتها وإعداد استهداف الحملات وعرض التقارير. ومع ذلك، لا يمكنك استخدام النصوص البرمجية ل إنشاء حملات فيديو.
استرداد الحملات والمجموعات الإعلانية للفيديو
تتوفّر "حملات الفيديو" من خلال مجموعة
videoCampaigns
العنصر
AdsApp
. يمكنك استردادها كما تفعل عادةً مع الحملات في النصوص البرمجية:
const campaignName = "My first video campaign";
const campaignIterator = AdsApp.videoCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
بعد استرداد حملة، يمكنك الحصول على مجموعاتها الإعلانية بطريقة مشابهة:
const adGroupIterator = campaign.videoAdGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
بدلاً من ذلك، يمكنك استخدام الطريقة AdsApp.videoAdGroups()
:
const adGroupIterator = AdsApp.videoAdGroups()
.withCondition(`campaign.name = "${campaignName}" AND ad_group.name = "${adGroupName}")
.get();
for (const adGroup of adGroupIterator) {
...
}
تصميم إعلانات فيديو
تتيح لك نصوص "إعلانات Google" البرمجية استرداد إعلانات الفيديو باستخدام videoAds()
طريقة
VideoAdGroup
.
يمكنك إنشاء إعلانات فيديو جديدة باستخدام VideoAdGroup
newVideoAd()
.
أشكال إعلانات الفيديو
تختلف أشكال إعلانات الفيديو المتاحة حسب نوع حملة الفيديو. للتأكّد من اختيار نوع حملة الفيديو المناسب، أضِف withCondition
مكالمة
على AdvertisingChannelSubType
.
تحتوي بعض حملات الفيديو على أنواع فرعية تحدّ من أنواع الإعلانات المتوافقة ضمن تلك الحملة. وعلى وجه التحديد، لا تتيح "حملات VIDEO_ACTION
" سوى استخدام نوع الإعلان VIDEO_RESPONSIVE
، ولا تتيح "حملات VIDEO_NON_SKIPPABLE
" سوى استخدام نوع الإعلان NON_SKIPPABLE_INSTREAM_VIDEO_AD
.
إنّ أفضل طريقة للعمل على أنواع معيّنة من الحملات هي استخدام عبارة
withCondition
في أداة الاختيار. يمكنك تعديل القيمة
AdvertisingChannelSubType
لنوع الحملة التي تهمّك:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
.get();
توفّر "حملات الفيديو" التي لا تتضمّن نوعًا فرعيًا أشكال إعلانات الفيديو التالية:
- TrueView ضمن البث
- TrueView video discovery
- إعلان ملصق صغير
يمكنك اختيار هذه الحملات باستخدام withCondition
:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = null")
.get();
يمكن عرض "الإعلانات أثناء عرض الفيديو" قبل الفيديوهات الأخرى أو خلالها أو بعدها، ما يتيح للمستخدمين خيار تخطّيها بعد مرور وقت محدّد. تظهر إعلانات "الإعلان أثناء التصفّح" على "الشبكة الإعلانية" وصفحات مختلفة على YouTube، ولن يتم تشغيلها إلا إذا نقر مستخدم بشكل نشط على الصورة المصغّرة للإعلان أولاً. تبلغ مدة إعلانات الملصقات الصغيرة 6 ثوانٍ أو أقل، ويمكن أن تظهر على فيديوهات YouTube أو على الفيديوهات في المواقع الإلكترونية والتطبيقات للشركاء على "شبكة Google الإعلانية". للاطّلاع على التفاصيل الكاملة حول كل نوع من أنواع الإعلانات هذه، يُرجى الاطّلاع على لمحة عن أشكال إعلانات الفيديو.
إنشاء المجموعة الإعلانية
يمكنك إنشاء مجموعة إعلانية للفيديو من خلال newVideoAdGroupBuilder()
طريقة حملة الفيديو. عليك تحديد نوع المجموعة الإعلانية واسم المجموعة الإعلانية عند إنشائها. يجب أن يكون نوع المجموعة الإعلانية أحد الأنواع التالية، ولا يمكن تغييره بعد إنشاء المجموعة الإعلانية:
TRUE_VIEW_IN_STREAM
TRUE_VIEW_IN_DISPLAY
BUMPER
VIDEO_RESPONSIVE
(لـVIDEO_ACTION
حملة فقط)NON_SKIPPABLE_INSTREAM_VIDEO_AD
(لـVIDEO_NON_SKIPPABLE
حملة فقط)
مثال:
const videoAdGroup =
videoCampaign.newVideoAdGroupBuilder()
.withAdGroupType("TRUE_VIEW_IN_STREAM")
.withName("Video Ad Group")
.build()
.getResult();
إنشاء مادة عرض الفيديو
يجب أن تشير إعلانات الفيديو بشكل عام إلى مادة عرض فيديو. يحدّد هذا الخيار الفيديو الذي
سيتم تشغيله مع الإعلان. لا يمكنك تحميل فيديو باستخدام النصوص البرمجية، ولكن يمكنك
ربط فيديو حالي على YouTube حمّلته سابقًا لاستخدامه في إعلاناتك.
يمكنك إجراء ذلك من خلال إنشاء علامة
Asset
باستخدام العلامة
YouTubeVideoAssetBuilder
.
const assetOperation = AdsApp.adAsset().newYouTubeVideoAssetBuilder()
.withName("name")
// This is the ID in the URL for the YouTube video.
.withYouTubeVideoId(youTubeVideoId)
.build();
const videoAsset = assetOperation.getResult();
إنشاء الإعلان
لإنشاء إعلان جديد، استخدِم طريقة "أداة الإنشاء" التي تتطابق مع نوع المجموعة الإعلانية
(مرتبطة بعد newVideoAd()
):
inStreamAdBuilder()
videoDiscoveryAdBuilder()
bumperAdBuilder()
responsiveVideoAdBuilder()
(لـVIDEO_ACTION
حملة فقط)nonSkippableAdBuilder()
(لـVIDEO_NON_SKIPPABLE
حملة فقط)
مثال:
const videoAd = videoAdGroup.newVideoAd()
.inStreamAdBuilder()
.withAdName("Video Ad")
.withFinalUrl(
"http://www.example.com/video-ad")
// Specify the video asset created in the last step.
.withVideo(video)
.build()
.getResult();
استهداف الفيديو
هناك نوعان مختلفان من الاستهداف ذي الصلة لحملات الفيديو. يمثّل الرمز
VideoCampaignTargeting
أي استهداف يتمّ على مستوى الحساب "لحملات الفيديو"
بشكل عام، ويمكن الوصول إليه باستخدام AdsApp.videoCampaignTargeting()
. لا يمكن تعديل هذه القيمة
من خلال النصوص البرمجية، ولكن يمكن الاطّلاع عليها.
يتيح لك النوع الآخر من الاستهداف تحديد معايير حملات الفيديو
والمجموعات الإعلانية لفيديوهات فرديًا. يمكن الوصول إلى ذلك باستخدام الأسلوب
videoTargeting()
في الحملة أو المجموعة الإعلانية، ويوفّر هذا الأسلوب إمكانية الوصول إلى
أداة الاختيار وأدوات الإنشاء لكلّ من المعايير الموجبة والسلبية لجميع الأنواع
القابلة للتطبيق على مستوى الاستهداف هذا. تتوفّر أيضًا طريقة AdsApp.videoTargeting()
لعرض المعايير على مستوى الحساب، وتتضمّن مجموعة مختلفة من المعايير عن AdsApp.videoCampaignTargeting()
. مثل
VideoCampaignTargeting
، لا يمكنك إدارة هذه المعايير باستخدام النصوص البرمجية.
في ما يلي مثال على استبعاد موضع إعلان معيّن في حملة:
videoCampaign.videoTargeting().newPlacementBuilder()
.withUrl("http://www.example.com")
.exclude();
تعمل معايير الخصائص الديمغرافية (العمر والجنس) بشكلٍ مختلف قليلاً عن
أنواع المعايير الأخرى. عند إنشاء مجموعة إعلانية جديدة، يتمّ إنشاء معايير لكل قيمة ممكنة من قيمَي العمر والجنس تلقائيًا، وتستهدف هذه المجموعة الإعلانية كلّها. يمكنك استبعاد فئة ديمغرافية من خلال جلب استراتيجية التسويق
الحالية واستدعاء الطريقة exclude()
عليها، ويمكنك إعادة تضمين
فئة ديمغرافية مستبعدة من خلال العثور على استهداف الاستبعاد الحالي واستدعاء
include()
.
في ما يلي مثال على استبعاد جنس معيّن من مجموعة إعلانية:
const videoGenderIterator = videoAdGroup.videoTargeting()
.genders()
.withCondition('GenderType = "GENDER_MALE"')
.get();
if (videoGenderIterator.hasNext()) {
const videoGender = videoGenderIterator.next();
videoGender.exclude();
}