حملات الفيديو

تتيح لك النصوص البرمجية في "إعلانات 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. يمكنك إنشاء إعلانات فيديو جديدة باستخدام newVideoAd() طريقة VideoAdGroup.

أشكال إعلانات الفيديو

تختلف أشكال إعلانات الفيديو المتوافقة حسب نوع حملة الفيديو. لضمان اختيار النوع المناسب من حملة الفيديو، أضِف مكالمة 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 video discovery
  • إعلان ملصق صغير

يمكنك اختيار هذه الحملات باستخدام withCondition:

const campaignIterator = AdsApp.videoCampaigns()
  .withCondition("AdvertisingChannelSubType = null")
  .get();

يمكن تشغيل "الإعلانات أثناء عرض الفيديو" قبل بدء الفيديوهات الأخرى أو أثناء عرضها أو بعد انتهائها، ما يتيح للمستخدمين خيار التخطّي بعد فترة محدّدة. تظهر "إعلانات video discovery" على "الشبكة الإعلانية" وصفحات مختلفة على YouTube، ولن يتم تشغيلها إلا إذا نقر المستخدم بنشاط على الصورة المصغّرة للإعلان أولاً. تبلغ مدة عرض إعلانات الملصقات الصغيرة 6 ثوانٍ أو أقل ويمكن أن تظهر على فيديوهات YouTube أو على المواقع الإلكترونية والتطبيقات التابعة للشركاء على "الشبكة الإعلانية". للحصول على التفاصيل الكاملة حول كل نوع من أنواع الإعلانات هذه، يمكنك الاطّلاع على لمحة عن أشكال إعلانات الفيديو.

إنشاء المجموعة الإعلانية

يمكنك إنشاء مجموعة إعلانات فيديو من خلال طريقة 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()):

مثال:

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();
}