/resources/campaign.proto

--- v22/resources/campaign.proto    2026-01-23 15:36:23.000000000 +0000
+++ v23/resources/campaign.proto    2026-01-23 15:36:31.000000000 +0000
@@ -686,20 +686,23 @@
     }
   ];

-  // The date when campaign started in serving customer's timezone in YYYY-MM-DD
-  // format.
-  optional string start_date = 63;
-
   // The resource name of the campaign group that this campaign belongs to.
   optional string campaign_group = 76 [(google.api.resource_reference) = {
     type: "googleads.googleapis.com/CampaignGroup"
   }];

-  // The last day of the campaign in serving customer's timezone in YYYY-MM-DD
-  // format. On create, defaults to 2037-12-30, which means the campaign will
-  // run indefinitely. To set an existing campaign to run indefinitely, set this
-  // field to 2037-12-30.
-  optional string end_date = 64;
+  // The date and time when campaign started in serving. The timestamp is in
+  // the customer's time zone and in "yyyy-MM-dd HH:mm:ss" format. Set the time
+  // component to 00:00:00 for daily granularity, time granularity is only
+  // supported for some campaign types.
+  optional string start_date_time = 104;
+
+  // The last day and time of the campaign in serving customer's timezone in
+  // "yyyy-MM-dd HH:mm:ss" format. Set the time component to 23:59:59 for daily
+  // granularity, time granularity is only supported for some campaign types. On
+  // create, defaults to running indefinitely. To set an existing campaign to
+  // run indefinitely, clear this field.
+  optional string end_date_time = 105;

   // Suffix used to append query parameters to landing pages that are served
   // with parallel tracking.