Get site activity analytics — views, visits, and edits per site.¶
Permissions
Requires delegated permission Sites.Read.All.
Reference¶
import argparse
from office365.graph_client import GraphClient
from tests.settings import client_id, client_secret, tenant
def main():
parser = argparse.ArgumentParser(description="Get site activity analytics — views, visits, and edits per site")
parser.parse_args()
client = (
GraphClient(tenant=tenant)
.with_client_secret(client_id, client_secret)
.require_application_permission("Sites.Read.All")
)
sites = client.sites.order_by("displayName").get_all().execute_query()
print(f"{'Site':45s} {'Views':>8s} {'Visits':>8s} {'Edits':>8s}")
print("-" * 75)
for s in sites:
try:
analytics = s.analytics.get().execute_query()
views = analytics.all_time.access.viewCount or 0
visits = analytics.all_time.access.actionCount or 0
edits = analytics.all_time.edit.viewCount or 0
print(f"{s.display_name or '':45s} {views:>8d} {visits:>8d} {edits:>8d}")
except Exception:
print(f"{s.display_name or '':45s} {'N/A':>8s}")
if __name__ == "__main__":
main()