הגדרה

אירועים בהתאמה אישית מאפשרים להוסיף לרשימת הרשתות בתהליך בחירת הרשת (Mediation) ב-Waterfall רשת מודעות שאינה רשת מודעות נתמכת. כדי לעשות את זה, מטמיעים מתאם של אירועים בהתאמה אישית ברשת המודעות שרוצים לשלב.

תוכלו למצוא פרויקט לדוגמה של אירוע בהתאמה אישית במאגר שלנו ב-GitHub.

דרישות מוקדמות

כדי ליצור אירועים בהתאמה אישית, קודם צריך לשלב באפליקציה אחת מהפורמטים הבאים של מודעות:

יצירת אירוע מותאם אישית בממשק המשתמש

קודם צריך ליצור אירוע בהתאמה אישית בממשק המשתמש של AdMob. הוראות מפורטות זמינות במאמר הוספת אירוע בהתאמה אישית.

תצטרכו לספק את הפרטים הבאים:

שם המחלקה

השם המלא של המחלקה שמטמיעה את המתאם של האירוע המותאם אישית – לדוגמה, SampleCustomEvent או אם המחלקה מוטמעת ב-Swift,‏ MediationExample.SampleCustomEventSwift.

אם יש כמה יעדים בפרויקט או אם שם הפרויקט שונה משם היעד, צריך לציין את שם היעד. עם שם היעד, זה ייראה כך: appName_targetName.className. בנוסף, חשוב לזכור להחליף כל תו שאינו אלפאנומרי, כמו מקפים, בקו תחתון. דוגמה.

תווית

שם ייחודי שמגדיר את מקור המודעה.

פרמטר

ארגומנט מחרוזת אופציונלי שמועבר למתאם האירועים המותאם אישית.

הטמעה של GADMediationAdapter

השלב הראשון ביצירת אירוע מותאם אישית הוא הטמעה של פרוטוקול GADMediationAdapter, כמו שמוצג במחלקה SampleCustomEvent בדוגמה שלנו.

האחריות של המחלקה הזו היא לקבל הודעות מ-AdMob ולהעביר את האחריות ליצירת פורמט המודעה הנכון.

אתחול המתאם

כש-Google Mobile Ads SDK עובר אתחול, setUpWithConfiguration:completionHandler: מופעל בכל המתאמים הנתמכים של צד שלישי ובאירועים מותאמים אישית שהוגדרו לאפליקציה בממשק המשתמש של AdMob. כדאי להשתמש בשיטה הזו כדי לבצע את ההגדרה או ההפעלה הנדרשות בערכת ה-SDK של הצד השלישי שנדרשת לאירוע המותאם אישית.

Swift

import GoogleMobileAds

class SampleCustomEvent: NSObject, MediationAdapter {

  static func setUpWith(
    _ configuration: MediationServerConfiguration,
    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);
}

מספרי גרסאות של דוחות

כל האירועים המותאמים אישית חייבים לדווח ל-Google Mobile Ads SDK גם את הגרסה של מתאם האירועים המותאמים אישית עצמו וגם את הגרסה של ה-SDK של הצד השלישי שאיתו מתבצעת האינטראקציה של ממשקי האירועים המותאמים אישית. הגרסאות מדווחות כאובייקטים GADVersionNumber:

Swift

static func adSDKVersion() -> VersionNumber {
  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 VersionNumber(
      majorVersion: majorVersion, minorVersion: minorVersion, patchVersion: patchVersion)
  }

  return VersionNumber()
}

static func adapterVersion() -> VersionNumber {
  let versionComponents = String(SampleAdSDK.SampleAdSDKVersionNumber).components(
    separatedBy: ".")
  var version = VersionNumber()
  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;
}

בקשה להצגת מודעה

כדי לבקש מודעה, צריך לפעול לפי ההוראות שספציפיות לפורמט המודעה: