parseDisplayAdResponseBanner method

  1. @override
Future<Map<String, dynamic>?> parseDisplayAdResponseBanner({
  1. required String adData,
  2. required String adUnit,
  3. required String cliUbid,
})
override

Implementation

@override
Future<Map<String, dynamic>?> parseDisplayAdResponseBanner({
  required String adData,
  required String adUnit,
  required String cliUbid,
}) async {
  try {
    final arguments = <String, dynamic>{
      "adData": adData,
      "adUnit": adUnit,
      "cliUbid": cliUbid,
    };

    // Add platform-specific ad type parameter
    if (Platform.isIOS) {
      arguments["decodingType"] = AdType.banner.decodingType.value;
    } else if (Platform.isAndroid) {
      arguments["displayAdFormat"] = AdType.banner.displayAdFormat.value;
    }

    final result = await MethodHandler.invokeNativeMethod(
      'parseDisplayAdResponseBanner',
      arguments: arguments,
    );
    return _normalizeAdData(result, 'parseDisplayAdResponseBanner')
        ?.cast<String, dynamic>();
  } on OsmosException {
    rethrow;
  } catch (e) {
    throw OsmosException(
      errorCode: OsmosErrorCodes.renderAdsError,
      details:
          'Failed to parse display ad response for banner: ${e.toString()}',
      nativeError: e,
    );
  }
}