Некоторые сетевые адаптеры поддерживают дополнительные параметры, которые могут быть переданы адаптеру при создании запроса на рекламу. Они называются сетевыми экстра-параметрами.
The Google Mobile Ads plugin provides APIs on Android and iOS that let you pass network extras to mediation adapters. To do so, you need to implement MediationNetworkExtrasProvider on Android and FLTMediationNetworkExtrasProvider on iOS, and then register your extras provider implementation with the plugin. Afterwards the plugin will use it to pass through network extras when it creates the ad request on Android or 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 для конкретной сети можно посмотреть, какие дополнительные функции поддерживаются различными сетями и как их настроить.
Полный пример на GitHub
Наш пример демонстрирует, как задавать пользовательские параметры в AppLovin при интеграции.