What accounts for difference in count and minutes viewed between two adaptive group datasets?

I am trying to use the curl command to batch fetch analytic data to create a report. Can you please clarify the meaning of fields I am viewing so that I am interpreting the data correctly, specifically the count and minutes viewed fields in streamMinutesViewedAdaptiveGroups and videoPlaybackEventsAdaptiveGroups datasets?

The goal is to get a report for one day that has the 1) uid of each video that was viewed, the 2) countries in which they were viewed, 3) the number of people who viewed each video in a country, and the 4) total number of minutes each video was viewed in each country.

  1. Why is the count value for streamMinutesViewedAdaptiveGroups and videoPlaybackEventsAdaptiveGroups so different? The count for streamed viewing is much higher than video plays.
  2. What is the reason minutesViewed and timeViewedMinutes are not the same for streamMinutesViewedAdaptiveGroups and videoPlaybackEventsAdaptiveGroups?
  3. Are the minutes viewed using streamMinutesViewedAdaptiveGroups and videoPlaybackEventsAdaptiveGroups completely separate, or is some of the streaming data represented in the playback data?
  4. Are the difference in count and minutes viewed because of server vs client data? Or, streaming vs video plays? Or something else?
  5. If viewing speed is set to 2x for a 4-minute video, will the minutes viewed be recorded as 4 minutes or 2 minutes?
  6. If a person has ad blocking turned on, will that video be included in the results?
  7. Is the date/time for a viewing the same as that on the Cloudflare server? If so, how do we offset to get the time in Asia that a video was viewed?

Some of the videos in our system are viewed using FVPlayer, but other videos are viewed through embedding the Cloudflare player.

To give examples of the differences I am seeing, below are two curl commands that were run using the same timeframe, which was the previous day in YYYY-MM-DD format.

In one curl command I have used graphql with streamMinutesViewedAdaptiveGroups having this --data argument:

–data ‘{“query”:"query {\n viewer {\n accounts(filter:{\n accountTag:"’${ACCOUNT_ID}‘"\n\n }) {\n streamMinutesViewedAdaptiveGroups(\n filter: {\n date_leq: "’${ENDDATE}‘"\n date_geq: "’${STARTDATE}‘"\n }\n orderBy:[uid_ASC]\n limit: 10000\n ) {\n count \n sum{minutesViewed\n} dimensions{\n uid\n clientCountryName\n }\n }\n }\n }\n}\n\n"}’

It yields these results:
uid country count minutesViewed
767f81aec3dea233a42361a0071bb6d9 TW 570 38
767f81aec3dea233a42361a0071bb6d9 US 143 10
8ffc27a09d9150b604929a80e638ce6f GB 64 4
8ffc27a09d9150b604929a80e638ce6f TW 609 41
8ffc27a09d9150b604929a80e638ce6f US 401 27
98ef22fa71aa719468b02ab141015052 NL 85 6
98ef22fa71aa719468b02ab141015052 TW 945 63
98ef22fa71aa719468b02ab141015052 US 239 16
c966c027bbbfa482c801b47194213f19 NL 4 0
c966c027bbbfa482c801b47194213f19 TW 962 64
c966c027bbbfa482c801b47194213f19 US 140 9

In a second curl command I have used videoPlaybackEventsAdaptiveGroups having this --data argument:
–data ‘{“query”:"query {\n viewer {\n accounts(filter:{\n accountTag:"’${ACCOUNT_ID}‘"\n\n }) {\n videoPlaybackEventsAdaptiveGroups(\n filter: {\n date_leq: "’${ENDDATE}‘"\n date_geq: "’${STARTDATE}‘"\n }\n orderBy:[uid_ASC]\n limit: 10000\n ) {\n count\n sum {\n timeViewedMinutes\n }\n dimensions{\n uid\n clientCountryName\n }\n }\n }\n }\n}\n\n"}’

It yields these results:
uid country count timeViewedMinutes
767f81aec3dea233a42361a0071bb6d9 TW 6 46
767f81aec3dea233a42361a0071bb6d9 US 2 10
8ffc27a09d9150b604929a80e638ce6f GB 0 2
8ffc27a09d9150b604929a80e638ce6f TW 7 49
8ffc27a09d9150b604929a80e638ce6f US 2 27
98ef22fa71aa719468b02ab141015052 NL 0 5
98ef22fa71aa719468b02ab141015052 TW 9 74
98ef22fa71aa719468b02ab141015052 US 1 211
c966c027bbbfa482c801b47194213f19 NL 0 5
c966c027bbbfa482c801b47194213f19 TW 9 68
c966c027bbbfa482c801b47194213f19 US 3 14

Any help you can give so that I interpret Cloudflare data would be greatly appreciated?

Thanks,
Mark