الإعداد

تتيح لك الأحداث المخصّصة إضافة توسّط العرض الإعلاني بدون انقطاع لشبكة مواقع إعلانية ليست شبكة مواقع إعلانية متوافقة. ويمكنك إجراء ذلك من خلال تنفيذ محوِّل حدث مخصّص لشبكة المواقع الإعلانية التي تريد دمجها.

يمكنك العثور على نموذج كامل لمشروع حدث مخصّص في مستودع GitHub.

المتطلبات الأساسية

قبل أن تتمكّن من إنشاء أحداث مخصّصة، عليك أولاً دمج أحد التنسيقات التالية للإعلانات في تطبيقك:

إنشاء حدث مخصّص في واجهة المستخدِم

يجب أولاً إنشاء حدث مخصّص في واجهة مستخدم AdMob. اطّلِع على التعليمات الواردة في مقالة إضافة حدث مخصّص.

عليك تقديم ما يلي:

اسم الفئة

الاسم المؤهَّل بالكامل للفئة التي تنفِّذ محوِّل الحدث المخصَّص، على سبيل المثال، SampleCustomEvent، أو MediationExample.SampleCustomEventSwift في حال تنفيذ فئتك باستخدام Swift

يجب إدخال اسم الهدف إذا كان لديك أهداف متعدّدة في مشروعك أو إذا كان اسم المشروع مختلفًا عن اسم الهدف. باستخدام الاسم المستهدَف، سيبدو على النحو التالي: appName_targetName.className. بالإضافة إلى ذلك، تذكَّر استبدال أي أحرف غير أبجدية رقمية، مثل الشُرطات، بشرطات سفلية. مثال:

التصنيف

اسم فريد يحدّد مصدر الإعلان

المَعلمة

وسيطة سلسلة اختيارية يتم تمريرها إلى محوِّل الحدث المخصّص

تنفيذ GADMediationAdapter

الخطوة الأولى لإنشاء حدث مخصّص هي تنفيذ بروتوكول GADMediationAdapter كما هو موضّح في فئة SampleCustomEvent في مثالنا.

تقع على عاتق هذه الفئة مسؤولية تلقّي الرسائل من AdMob وتفويض مسؤولية إنشاء شكل الإعلان الصحيح.

إعداد المحوِّل

عند بدء حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، يتمّ setUpWithConfiguration:completionHandler: استدعاء جميع المحوِّلات التابعة لجهات خارجية والأحداث المخصّصة المتوافقة التي تمّ إعدادها للتطبيق ضمن واجهة مستخدم AdMob. استخدِم هذه الطريقة للقيام بأي إعداد أو إعداد مبدئي ضروريَين لحزمة تطوير البرامج (SDK) المطلوبة التابعة لجهة خارجية لحدثك المخصّص.

Swift

import GoogleMobileAds

class SampleCustomEvent: NSObject, GADMediationAdapter {

  static func setUpWith(
    _ configuration: GADMediationServerConfiguration,
    completionHandler: @escaping GADMediationAdapterSetUpCompletionBlock
  ) {
    // This is where you will initialize the SDK that this custom event is built
    // for. Upon finishing the SDK initialization, call the completion handler
    // with success.
    completionHandler(nil)
  }
}

Objective-C

#import "SampleCustomEvent.h"

@implementation SampleCustomEvent

+ (void)setUpWithConfiguration:(nonnull GADMediationServerConfiguration *)configuration
             completionHandler:(nonnull GADMediationAdapterSetUpCompletionBlock)completionHandler {
  // This is where you initialize the SDK that this custom event is built
  // for. Upon finishing the SDK initialization, call the completion handler
  // with success.
  completionHandler(nil);
}

أرقام إصدارات التقارير

يجب أن تُبلغ جميع الأحداث المخصّصة لحزمة "SDK لإعلانات Google على الأجهزة الجوّالة" عن إصدار محوِّل الحدث المخصّص نفسه وإصدار حزمة تطوير البرامج (SDK) التابعة لجهة خارجية التي تتعامل معها الأحداث المخصّصة. يتم الإبلاغ عن الإصدارات على أنّها عناصر GADVersionNumber:

Swift

static func adSDKVersion() -> GADVersionNumber {
  let versionComponents = String(SampleSDKVersion).components(
    separatedBy: ".")

  if versionComponents.count >= 3 {
    let majorVersion = Int(versionComponents[0]) ?? 0
    let minorVersion = Int(versionComponents[1]) ?? 0
    let patchVersion = Int(versionComponents[2]) ?? 0

    return GADVersionNumber(
      majorVersion: majorVersion, minorVersion: minorVersion, patchVersion: patchVersion)
  }

  return GADVersionNumber()
}

static func adapterVersion() -> GADVersionNumber {
  let versionComponents = String(SampleAdSDK.SampleAdSDKVersionNumber).components(
    separatedBy: ".")
  var version = GADVersionNumber()
  if versionComponents.count == 4 {
    version.majorVersion = Int(versionComponents[0]) ?? 0
    version.minorVersion = Int(versionComponents[1]) ?? 0
    version.patchVersion = Int(versionComponents[2]) * 100 + Int(versionComponents[3])
  }
  return version
}

Objective-C

+ (GADVersionNumber)adSDKVersion {
  NSArray *versionComponents =
      [SampleSDKVersion componentsSeparatedByString:@"."];
  GADVersionNumber version = {0};
  if (versionComponents.count >= 3) {
    version.majorVersion = [versionComponents[0] integerValue];
    version.minorVersion = [versionComponents[1] integerValue];
    version.patchVersion = [versionComponents[2] integerValue];
  }
  return version;
}

+ (GADVersionNumber)adapterVersion {
  NSArray *versionComponents =
      [SampleCustomEventAdapterVersion componentsSeparatedByString:@"."];
  GADVersionNumber version = {0};
  if (versionComponents.count == 4) {
    version.majorVersion = [versionComponents[0] integerValue];
    version.minorVersion = [versionComponents[1] integerValue];
    version.patchVersion = [versionComponents[2] integerValue] * 100 +
                           [versionComponents[3] integerValue];
  }
  return version;
}

طلب إعلان

لطلب إعلان، يُرجى الرجوع إلى التعليمات الخاصة بشكل الإعلان: