parseDisplayAdResponseMultiAdCarousel method

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

Implementation

@override
Future<List<Map<String, dynamic>>?> parseDisplayAdResponseMultiAdCarousel({
  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.multiCarousel.decodingType.value;
    } else if (Platform.isAndroid) {
      arguments["displayAdFormat"] =
          AdType.multiCarousel.displayAdFormat.value;
    }

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