שימוש בהפעלה של מתאם שניתן להגדרה (אלפא)

בחירת פלטפורמה: Android iOS Android (גרסה קודמת)

כברירת מחדל, Google Mobile Ads SDK מאתחל את כל המתאמים של בחירת הרשת שמשויכים לאפליקציה במהלך האתחול. הפעלה של כל מתאם יכולה להימשך יותר מ-30 שניות, מה שמוביל לזמן אחזור משמעותי לפני שהמודעה הראשונה יכולה להיטען.

כדי לפתור את הבעיה, מערכת AdMob מספקת את התכונה "הפעלה של מתאם שניתן להגדרה". התכונה הזו מאפשרת לכם לקבוע אילו מתאמים יופעלו בחשיפה הראשונה של המודעה, וכך לצמצם את זמן האחזור של החשיפה הזו.

המדריך הזה עוסק בנושאים הבאים שקשורים להפעלה של מתאם שניתן להגדרה:

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

  • כדי להביע הסכמה לשימוש בתכונה הזו, מוסיפים את #import <GoogleMobileAds/GoogleMobileAds_Beta.h> ב-Objective-C או את import GoogleMobileAds_Private ב-Swift.

    Swift

    import GoogleMobileAds
    import GoogleMobileAds_Private
    

    Objective-C

    #import <GoogleMobileAds/GoogleMobileAds.h>
    #import <GoogleMobileAds/GoogleMobileAds_Beta.h>
    

יצירת הגדרה של מתאם

הגדרת אתחול של מתאם מנחה את Google Mobile Ads SDK לאתחל רק את המתאמים הנדרשים. כך מתאמים מיותרים לא חוסמים את הבקשה הראשונה להצגת מודעה, נחסכים משאבי מחשוב וזמן האחזור של החשיפה הראשונה של המודעה מתקצר משמעותית.

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

לתת עדיפות לפורמט מודעה או ליחידת מודעות ספציפיים

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

בדוגמה הבאה נוצרת הגדרת אתחול של מתאם, שמאתחלת רק את המתאמים הנדרשים לתהליך בחירת הרשת (Mediation) בשביל יחידת מודעות ספציפית להצגה בפתיחת האפליקציה, עם זמן קצוב לתפוגה של חמש שניות:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdUnitIDs = [adUnitID]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdUnitIDs = [NSSet setWithArray:@[ kTestAdUnitID ]];
adapterConfig.initializationTimeout = 5.0;

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

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdFormats = [AdFormat.appOpen.rawValue as NSNumber]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdFormats = [NSSet setWithArray:@[ @(GADAdFormatAppOpen) ]];
adapterConfig.initializationTimeout = 5.0;

אתחול של מתאמים ספציפיים לתהליך בחירת הרשת (Mediation)

אם אתם יודעים בדיוק אילו שותפים בתהליך בחירת הרשת בדרך כלל ממלאים את החשיפה הראשונה של המודעה, אתם יכולים להפעיל רק את המתאם הספציפי הזה על ידי ציון שם המחלקה של המתאם בהגדרת ההפעלה של המתאם. כדי לא להמתין למתאמים הנותרים שלא אותחלו במהלך המכרז, צריך לשלב את זה עם דילוג מפורש על המתאמים שלא אותחלו והגדרת זמן קצוב לתפוגה של Google Mobile Ads SDK.

בדוגמה הבאה נוצרת הגדרת אתחול של מתאם, שמאתחלת מתאם ספציפי של מנגנון בחירת הרשת ומגדירה זמן קצוב לתפוגה של חמש שניות:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;

החרגה של מתאמי גישור ספציפיים

אם אתם מבחינים שמתאמים מסוימים של תהליך בחירת הרשת (Mediation) גורמים באופן עקבי לזמן אחזור ארוך, אתם יכולים להחריג את המתאמים האלה ולהפעיל אותם בשלב מאוחר יותר.

בדוגמה הבאה נוצרת הגדרת אתחול של מתאמים, שבה מתאמים ספציפיים לא מאותחלים ומוגדר זמן קצוב לתפוגה של חמש שניות:

Swift

let adapterConfig = MediationInitializationConfiguration()
adapterConfig.excludedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0

Objective-C

GADMediationInitializationConfiguration *adapterConfig =
    [[GADMediationInitializationConfiguration alloc] init];
adapterConfig.excludedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;

דילוג על מתאמים שלא אותחלו

אם אתם מתכננים להפעיל או להחריג מתאמים ספציפיים של תהליך בחירת הרשת, אתם יכולים להגדיר את הבקשה להצגת מודעה כך שתדלג על מתאמים שלא הופעלו ועדיין נמצאים ב-Waterfall.

אם לא יוצרים הגדרת מתאם, עדיין אפשר להגדיר את הבקשה להצגת מודעה כך שתדלג על מתאמים שלא אותחלו. Google Mobile Ads SDK שולח בקשה להצגת מודעה בלי לחכות שהזמן הקצוב לתפוגה של המתאמים יסתיים או שההפעלה שלהם תיכשל.

בדוגמה הבאה, ה-SDK מופעל עם הגדרת הפעלה של מתאם, ונוצרת בקשה להצגת מודעה בפתיחת האפליקציה שמדלגת על מתאמים שלא הופעלו:

Swift

await MobileAds.shared.start(with: adapterInitializationConfig)

// Make your ad request after adapter initialization completes.
let request = Request()
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters.
request.skipUninitializedAdapters = true

do {
  let _ = try await AppOpenAd.load(with: adUnitID, request: request)
} catch {
  print("Failed to load app open ad with error: \(error.localizedDescription)")
  // TODO: Handle error
}

// Handle non time-sensitive tasks after the ad has loaded regardless of whether ad load
// succeeded.
performPostLaunchSetup()

Objective-C


[[GADMobileAds sharedInstance]
    startWithMediationInitializationConfiguration:adapterInitializationConfig
                                completionHandler:^(GADInitializationStatus *_Nonnull status) {
                                  // Make your ad request after adapter initialization
                                  // completes.
                                  GADRequest *request = [GADRequest request];
                                  // Set this to guarantee that the ad request
                                  // doesn't wait for any other uninitialized adapters
                                  request.shouldSkipUninitializedAdapters = YES;

                                  [GADAppOpenAd
                                      loadWithAdUnitID:adUnitID
                                               request:request
                                      completionHandler:^(GADAppOpenAd *_Nullable ad,
                                                          NSError *_Nullable error) {
                                       if (error) {
                                         NSLog(@"Failed to load app open ad with error: %@",
                                               error.localizedDescription);
                                       }

                                       // Handle non time-sensitive tasks after the
                                       // ad has loaded regardless of whether ad load succeeded.
                                       [self performPostLaunchSetup];
                                     }];
                                }];

מאתחלים את שאר המתאמים

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

בדוגמה הבאה, שאר המתאמים מאותחלים באמצעות הגדרה ריקה:

Swift


// Provide start with nil to initialize any adapters
// not initialized with configurable initialization.
MobileAds.shared.start(with: nil) { status in
  // Remaining adapters are now initialized.
}

Objective-C


// Call start with nil to initialize any adapters not initialized via configurable initialization.
[[GADMobileAds sharedInstance]
    startWithMediationInitializationConfiguration:nil
                                completionHandler:^(GADInitializationStatus *_Nonnull status) {
                                  // Remaining adapters are now initialized.
                                }];