Skip to content

Get site activity analytics — views, visits, and edits per site.

Permissions

Requires delegated permission Sites.Read.All.

Reference

View source

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()

← Back to OneDrive / SharePoint v2 — Sites