Noizu.Google (Noizu Google v0.2.3)

Copy Markdown View Source

Google REST API client for Elixir.

OAuth2 bearer auth, Finch + Jason HTTP, structured errors, and thin wrappers for Search Console, GA4 Admin/Data, AdSense Management, and Google Ads.

Quick start

# config/runtime.exs
config :noizu_google,
  access_token: System.get_env("GOOGLE_ACCESS_TOKEN"),
  client_id: System.get_env("GOOGLE_CLIENT_ID"),
  client_secret: System.get_env("GOOGLE_CLIENT_SECRET")

client = Noizu.Google.client()

{:ok, sites} = Noizu.Google.Api.SearchConsole.Sites.list(client: client)

{:ok, report} =
  Noizu.Google.Api.SearchConsole.SearchAnalytics.query(
    "https://example.com/",
    %{
      startDate: "2026-01-01",
      endDate: "2026-01-31",
      dimensions: ["query"]
    },
    client: client
  )

{:ok, props} =
  Noizu.Google.Api.AnalyticsAdmin.Properties.list(
    filter: "parent:accounts/123",
    client: client
  )

Architecture

API namespaces

ModuleGoogle surface
Api.SearchConsole.SitesSearch Console sites
Api.SearchConsole.SearchAnalyticssearchAnalytics/query
Api.SearchConsole.Sitemapssitemaps list/get/submit/delete
Api.AnalyticsAdmin.AccountsGA4 Admin accounts
Api.AnalyticsAdmin.PropertiesGA4 properties
Api.AnalyticsAdmin.DataStreamsGA4 data streams
Api.AnalyticsData.ReportsGA4 Data API runReport
Api.AdSense.AccountsAdSense accounts
Api.AdSense.AdClientsAdSense ad clients
Api.AdSense.AdUnitsAdSense ad units
Api.AdSense.ReportsAdSense reports:generate
Api.Ads.CustomersGoogle Ads search / mutate / conversion actions

Pass %Client{} via opts[:client] (or omit to use application config defaults).

See the HexDocs extras for the OAuth runbook and ADR-001 (MCP + Terraform).

Summary

Functions

Default AdSense Management API base URL.

Default GA4 Admin API base URL.

Default GA4 Data API base URL.

Default general Google APIs base URL.

Build a client from options / application config.

Default Google Ads API base URL.

Default Search Console (webmasters v3) base URL.

Functions

adsense_base()

Default AdSense Management API base URL.

analytics_admin_base()

Default GA4 Admin API base URL.

analytics_data_base()

Default GA4 Data API base URL.

api_base()

Default general Google APIs base URL.

client(opts \\ [])

@spec client(keyword() | map()) :: Noizu.Google.Client.t()

Build a client from options / application config.

webmasters_base()

Default Search Console (webmasters v3) base URL.