diff --git a/api/audio_codecs/audio_encoder.h b/api/audio_codecs/audio_encoder.h
index a77894b..a1f36ae 100644
--- a/api/audio_codecs/audio_encoder.h
+++ b/api/audio_codecs/audio_encoder.h
@@ -48,10 +48,17 @@
   // call. If this value is not set, it indicates that the FEC controller is
   // disabled.
   rtc::Optional<uint32_t> fec_action_counter;
-  // Number of actions taken by the ANA frame length controller since the start
-  // of the call. If this value is not set, it indicates that the frame length
-  // controller is disabled.
-  rtc::Optional<uint32_t> frame_length_action_counter;
+  // Number of times the ANA frame length controller decided to increase the
+  // frame length since the start of the call. If this value is not set, it
+  // indicates that the frame length controller is disabled.
+  rtc::Optional<uint32_t> frame_length_increase_counter;
+  // Number of times the ANA frame length controller decided to decrease the
+  // frame length since the start of the call. If this value is not set, it
+  // indicates that the frame length controller is disabled.
+  rtc::Optional<uint32_t> frame_length_decrease_counter;
+  // The uplink packet loss fractions as set by the ANA FEC controller. If this
+  // value is not set, it indicates that the ANA FEC controller is not active.
+  rtc::Optional<float> uplink_packet_loss_fraction;
 };
 
 // This is the interface class for encoders in AudioCoding module. Each codec
diff --git a/api/statstypes.cc b/api/statstypes.cc
index 67bf49e..687b6b2 100644
--- a/api/statstypes.cc
+++ b/api/statstypes.cc
@@ -594,8 +594,12 @@
       return "googAnaDtxActionCounter";
     case kStatsValueNameAnaFecActionCounter:
       return "googAnaFecActionCounter";
-    case kStatsValueNameAnaFrameLengthActionCounter:
-      return "googAnaFrameLengthActionCounter";
+    case kStatsValueNameAnaFrameLengthIncreaseCounter:
+      return "googAnaFrameLengthIncreaseCounter";
+    case kStatsValueNameAnaFrameLengthDecreaseCounter:
+      return "googAnaFrameLengthDecreaseCounter";
+    case kStatsValueNameAnaUplinkPacketLossFraction:
+      return "googAnaUplinkPacketLossFraction";
     case kStatsValueNameRetransmitBitrate:
       return "googRetransmitBitrate";
     case kStatsValueNameRtt:
diff --git a/api/statstypes.h b/api/statstypes.h
index 219995e..378b014 100644
--- a/api/statstypes.h
+++ b/api/statstypes.h
@@ -212,7 +212,9 @@
     kStatsValueNameAnaChannelActionCounter,
     kStatsValueNameAnaDtxActionCounter,
     kStatsValueNameAnaFecActionCounter,
-    kStatsValueNameAnaFrameLengthActionCounter,
+    kStatsValueNameAnaFrameLengthIncreaseCounter,
+    kStatsValueNameAnaFrameLengthDecreaseCounter,
+    kStatsValueNameAnaUplinkPacketLossFraction,
     kStatsValueNameRetransmitBitrate,
     kStatsValueNameRtt,
     kStatsValueNameSecondaryDecodedRate,
diff --git a/media/engine/webrtcvoiceengine_unittest.cc b/media/engine/webrtcvoiceengine_unittest.cc
index 67fde12..edb861e 100644
--- a/media/engine/webrtcvoiceengine_unittest.cc
+++ b/media/engine/webrtcvoiceengine_unittest.cc
@@ -550,8 +550,12 @@
     stats.ana_statistics.channel_action_counter = rtc::Optional<uint32_t>(432);
     stats.ana_statistics.dtx_action_counter = rtc::Optional<uint32_t>(543);
     stats.ana_statistics.fec_action_counter = rtc::Optional<uint32_t>(654);
-    stats.ana_statistics.frame_length_action_counter =
+    stats.ana_statistics.frame_length_increase_counter =
         rtc::Optional<uint32_t>(765);
+    stats.ana_statistics.frame_length_decrease_counter =
+        rtc::Optional<uint32_t>(876);
+    stats.ana_statistics.uplink_packet_loss_fraction =
+        rtc::Optional<float>(987.0);
     stats.typing_noise_detected = true;
     return stats;
   }
@@ -591,8 +595,12 @@
               stats.ana_statistics.dtx_action_counter);
     EXPECT_EQ(info.ana_statistics.fec_action_counter,
               stats.ana_statistics.fec_action_counter);
-    EXPECT_EQ(info.ana_statistics.frame_length_action_counter,
-              stats.ana_statistics.frame_length_action_counter);
+    EXPECT_EQ(info.ana_statistics.frame_length_increase_counter,
+              stats.ana_statistics.frame_length_increase_counter);
+    EXPECT_EQ(info.ana_statistics.frame_length_decrease_counter,
+              stats.ana_statistics.frame_length_decrease_counter);
+    EXPECT_EQ(info.ana_statistics.uplink_packet_loss_fraction,
+              stats.ana_statistics.uplink_packet_loss_fraction);
     EXPECT_EQ(info.typing_noise_detected,
               stats.typing_noise_detected && is_sending);
   }
diff --git a/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc b/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
index c29b1e8..5695a38 100644
--- a/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
+++ b/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
@@ -298,8 +298,12 @@
             default_stats.channel_action_counter);
   EXPECT_EQ(ana_stats.dtx_action_counter, default_stats.dtx_action_counter);
   EXPECT_EQ(ana_stats.fec_action_counter, default_stats.fec_action_counter);
-  EXPECT_EQ(ana_stats.frame_length_action_counter,
-            default_stats.frame_length_action_counter);
+  EXPECT_EQ(ana_stats.frame_length_increase_counter,
+            default_stats.frame_length_increase_counter);
+  EXPECT_EQ(ana_stats.frame_length_decrease_counter,
+            default_stats.frame_length_decrease_counter);
+  EXPECT_EQ(ana_stats.uplink_packet_loss_fraction,
+            default_stats.uplink_packet_loss_fraction);
 }
 
 }  // namespace webrtc
diff --git a/pc/statscollector.cc b/pc/statscollector.cc
index b964283..a14967a 100644
--- a/pc/statscollector.cc
+++ b/pc/statscollector.cc
@@ -240,9 +240,17 @@
     report->AddInt(StatsReport::kStatsValueNameAnaFecActionCounter,
                    *info.ana_statistics.fec_action_counter);
   }
-  if (info.ana_statistics.frame_length_action_counter) {
-    report->AddInt(StatsReport::kStatsValueNameAnaFrameLengthActionCounter,
-                   *info.ana_statistics.frame_length_action_counter);
+  if (info.ana_statistics.frame_length_increase_counter) {
+    report->AddInt(StatsReport::kStatsValueNameAnaFrameLengthIncreaseCounter,
+                   *info.ana_statistics.frame_length_increase_counter);
+  }
+  if (info.ana_statistics.frame_length_decrease_counter) {
+    report->AddInt(StatsReport::kStatsValueNameAnaFrameLengthDecreaseCounter,
+                   *info.ana_statistics.frame_length_decrease_counter);
+  }
+  if (info.ana_statistics.uplink_packet_loss_fraction) {
+    report->AddFloat(StatsReport::kStatsValueNameAnaUplinkPacketLossFraction,
+                     *info.ana_statistics.uplink_packet_loss_fraction);
   }
 }
 
diff --git a/pc/statscollector_unittest.cc b/pc/statscollector_unittest.cc
index 5734676..6597e95 100644
--- a/pc/statscollector_unittest.cc
+++ b/pc/statscollector_unittest.cc
@@ -454,13 +454,27 @@
   ASSERT_TRUE(sinfo.ana_statistics.fec_action_counter);
   EXPECT_EQ(rtc::ToString<uint32_t>(*sinfo.ana_statistics.fec_action_counter),
             value_in_report);
-  EXPECT_TRUE(GetValue(report,
-                       StatsReport::kStatsValueNameAnaFrameLengthActionCounter,
-                       &value_in_report));
-  ASSERT_TRUE(sinfo.ana_statistics.frame_length_action_counter);
+  EXPECT_TRUE(GetValue(
+      report, StatsReport::kStatsValueNameAnaFrameLengthIncreaseCounter,
+      &value_in_report));
+  ASSERT_TRUE(sinfo.ana_statistics.frame_length_increase_counter);
   EXPECT_EQ(rtc::ToString<uint32_t>(
-                *sinfo.ana_statistics.frame_length_action_counter),
+                *sinfo.ana_statistics.frame_length_increase_counter),
             value_in_report);
+  EXPECT_TRUE(GetValue(
+      report, StatsReport::kStatsValueNameAnaFrameLengthDecreaseCounter,
+      &value_in_report));
+  ASSERT_TRUE(sinfo.ana_statistics.frame_length_decrease_counter);
+  EXPECT_EQ(rtc::ToString<uint32_t>(
+                *sinfo.ana_statistics.frame_length_decrease_counter),
+            value_in_report);
+  EXPECT_TRUE(GetValue(report,
+                       StatsReport::kStatsValueNameAnaUplinkPacketLossFraction,
+                       &value_in_report));
+  ASSERT_TRUE(sinfo.ana_statistics.uplink_packet_loss_fraction);
+  EXPECT_EQ(
+      rtc::ToString<float>(*sinfo.ana_statistics.uplink_packet_loss_fraction),
+      value_in_report);
 }
 
 // Helper methods to avoid duplication of code.
@@ -489,8 +503,12 @@
       rtc::Optional<uint32_t>(115);
   voice_sender_info->ana_statistics.fec_action_counter =
       rtc::Optional<uint32_t>(116);
-  voice_sender_info->ana_statistics.frame_length_action_counter =
+  voice_sender_info->ana_statistics.frame_length_increase_counter =
       rtc::Optional<uint32_t>(117);
+  voice_sender_info->ana_statistics.frame_length_decrease_counter =
+      rtc::Optional<uint32_t>(118);
+  voice_sender_info->ana_statistics.uplink_packet_loss_fraction =
+      rtc::Optional<float>(119.0);
 }
 
 void UpdateVoiceSenderInfoFromAudioTrack(
