انتقال اضافی‌های شبکه به آداپتورها

برخی‌از آداپتورهای شبکه از پارامترهای اضافی پشتیبانی می‌کنند که می‌توانند هنگام ایجاد درخواست آگهی به آداپتور ارسال شوند. به این موارد «شبکه‌های اضافی» گفته می‌شود.

افزونه Google Mobile Ads میاناهای برنامه‌سازی کاربردی را در Android و iOS ارائه می‌دهد که به شما امکان می‌دهد موارد اضافی شبکه را به آداپتورهای میانجی ارسال کنید. برای انجام این کار، باید MediationNetworkExtrasProvider را در Android و FLTMediationNetworkExtrasProvider را در iOS پیاده‌سازی کنید، و سپس پیاده‌سازی ارائه‌دهنده موارد اضافی را در افزونه ثبت کنید. سپس افزونه از آن استفاده خواهد کرد تا هنگام ایجاد درخواست آگهی در Android یا iOS، از موارد اضافی شبکه عبور کند.

MediationNetworkExtrasProvider خود را در Android ثبت کنید

پیاده‌سازی MediationNetworkExtrasProvider را ایجاد کنید:

class MyMediationNetworkExtrasProvider implements MediationNetworkExtrasProvider {

  @Override
  public Map<Class<? extends MediationExtrasReceiver>, Bundle> getMediationExtras(
      String adUnitId, @Nullable String identifier) {
    // This example passes extras to the AppLovin adapter.
    // This method is called with the ad unit of the associated ad request, and
    // an optional string parameter which comes from the dart ad request object.
    Bundle appLovinBundle = new AppLovinExtras.Builder().setMuteAudio(true).build();
    Map<Class<? extends MediationExtrasReceiver>, Bundle> extras = new HashMap<>();
    extras.put(ApplovinAdapter.class, appLovinBundle);
    // Note: You can pass extras to multiple adapters by adding more entries.
    return extras;
  }
}

سپس آن را در GoogleMobileAdsPlugin ثبت کنید:

// Register a MediationNetworkExtrasProvider with the plugin.
public class MainActivity extends FlutterActivity {

  @Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    super.configureFlutterEngine(flutterEngine);

    // Register your MediationNetworkExtrasProvider to provide network extras to ad requests.
    GoogleMobileAdsPlugin.registerMediationNetworkExtrasProvider(
        flutterEngine, new MyMediationNetworkExtrasProvider());
  }
}

می‌توانید ببینید کدام موارد اضافی توسط شبکه‌های مختلف پشتیبانی می‌شوند و چگونه آن‌ها را در مرجع Android برای شبکه خاص بسازید.

ثبت FLTMediationNetworkExtrasProvider در iOS

پیاده‌سازی FLTMediationNetworkExtrasProvider را ایجاد کنید:

@implementation MyFLTMediationNetworkExtrasProvider

- (NSArray<id<GADAdNetworkExtras>> *_Nullable)getMediationExtras:(NSString *_Nonnull)adUnitId
                                       mediationExtrasIdentifier:
                                           (NSString *_Nullable)mediationExtrasIdentifier {
  // This example passes extras to the AppLovin adapter.
  // This method is called with the ad unit of the associated ad request, and
  // an optional string parameter which comes from the dart ad request object.
  GADMAdapterAppLovinExtras *appLovinExtras = [[GADMAdapterAppLovinExtras alloc] init];
  appLovinExtras.muteAudio = NO;
  // Note: You can pass extras to multiple adapters by adding more entries.

  return @[ appLovinExtras ];
}
@end

و آن را با FLTGoogleMobileAdsPlugin ثبت کنید:


@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GeneratedPluginRegistrant registerWithRegistry:self];

  // Register your network extras provider if you want to provide
  // network extras to specific ad requests.
  MyFLTMediationNetworkExtrasProvider *networkExtrasProvider =
      [[MyFLTMediationNetworkExtrasProvider alloc] init];
  [FLTGoogleMobileAdsPlugin registerMediationNetworkExtrasProvider:networkExtrasProvider
                                                          registry:self];
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

@end

می‌توانید ببینید کدام موارد اضافی توسط شبکه‌های مختلف پشتیبانی می‌شوند و چگونه آن‌ها را در مرجع iOS برای شبکه خاص بسازید.