Get started. Enter an app name (e.g. "TurtleReport for [your company]") and your support email.', 'turtlereport' ), $tly_link( 'https://console.cloud.google.com/auth/branding', 'Google Auth Platform → Branding' ) ), $tly_allowed ); ?>
Audience, choose External. Choose Internal only if you use Google Workspace and everyone who connects is in your organisation (Internal apps have no 7-day limit and no warning screen).', 'turtlereport' ), $tly_allowed ); ?>
Publish app so the status reads In production. Important: apps left in Testing lose their sign-in after 7 days.', 'turtlereport' ), $tly_link( 'https://console.cloud.google.com/auth/audience', 'Google Auth Platform → Audience' ) ), $tly_allowed ); ?>
"Google hasn\'t verified this app" at sign-in? That\'s expected for your own app: click Advanced → Go to [app name] (unsafe). Unverified apps allow up to 100 Google accounts, plenty when only admins connect. You don\'t need Google verification for your own use.', 'turtlereport' ), $tly_allowed ); ?>
Web application. Name: anything.', 'turtlereport' ), $tly_allowed ); ?>
Authorized JavaScript origins empty. Under Authorized redirect URIs, click Add URI and paste this exact address:', 'turtlereport' ), $tly_allowed ); ?>
Create. Copy the Client ID and Client secret now. Google shows the full secret only once. If you lose it, open the client and use Add secret.', 'turtlereport' ), $tly_allowed ); ?>
tick every box. Unticked boxes mean missing data.', 'turtlereport' ), $tly_allowed ); ?>
Create service account. Give it a name (e.g. "turtlereport-reports") and click Create and continue.', 'turtlereport' ), $tly_link( 'https://console.cloud.google.com/iam-admin/serviceaccounts', 'IAM & Admin → Service accounts' ) ), $tly_allowed ); ?>
Permissions and Principals with access steps. It needs no Cloud roles. Click Done.', 'turtlereport' ), $tly_allowed ); ?>
Keys tab, then Add key → Create new key → JSON → Create. A .json file downloads. Treat it like a password.', 'turtlereport' ), $tly_allowed ); ?>
"Service account key creation is disabled"? Many Google Cloud organisations enforce the iam.disableServiceAccountKeyCreation policy by default. Someone with the Organization Policy Administrator role can turn it off for this project under IAM & Admin → Organization policies → Disable service account key creation → Manage policy → Override parent\'s policy → Not enforced. If that\'s not possible, use Method A instead.', 'turtlereport' ), $tly_allowed ); ?>
Search Console: in %s, open the property → Settings → Users and permissions → Add user. Paste the service account email, choose Restricted, click Add. You must be an owner of the property.', 'turtlereport' ), $tly_link( 'https://search.google.com/search-console', 'Search Console' ) ), $tly_allowed ); ?>
GA4: in %s, click Admin (gear icon) → under Property, Property access management → + → Add users. Paste the email, untick "Notify new users by email", choose the Viewer role, click Add. Use Account access management instead to cover every property in the account.', 'turtlereport' ), $tly_link( 'https://analytics.google.com/', 'Google Analytics' ) ), $tly_allowed ); ?>
Who can see this report, tick roles or add users. Administrators see everything; everyone else sees only the sites they were given. Access is checked on the server for every request.', 'turtlereport' ), $tly_allowed ); ?>
Report viewer role and give them their site. They log straight in to their report and don\'t see the rest of wp-admin.', 'turtlereport' ), '' . esc_html__( 'create a user', 'turtlereport' ) . '' ), $tly_allowed ); ?>
Different Google accounts per source? If, say, Search Console is in one Google account and GA4 in another, add a connection for each. In the site, pick the main connection, then choose another under Google account next to the source that lives elsewhere.', 'turtlereport' ), $tly_allowed ); ?>
A property isn\'t in the list? The list shows only what that connection\'s Google account can open. On the Connections screen, click Check connection: it shows the account email and what it can see, and says exactly whom to add where. After adding a user in Google, wait a few minutes and click Reload lists from Google.', 'turtlereport' ), $tly_allowed ); ?>
Application for Basic API Access. You\'ll need your Cloud project number (shown on the console\'s Welcome/Dashboard page).', 'turtlereport' ), $tly_link( 'https://support.google.com/business/contact/api_default', 'Google\'s Business Profile API contact form' ) ), $tly_allowed ); ?>
Requests per minute limit of 0 means not approved yet.', 'turtlereport' ), $tly_link( 'https://console.cloud.google.com/iam-admin/quotas', 'IAM & Admin → Quotas & System Limits' ) ), $tly_allowed ); ?>
My Business Account Management API, My Business Business Information API and Business Profile Performance API in the API Library.', 'turtlereport' ), $tly_allowed ); ?>
Reconnect or change permissions, tick Also read Business Profile, and sign in again. Use the Google account that manages the profile.', 'turtlereport' ), $tly_allowed ); ?>