Skip to main content

GoogleClient

Struct GoogleClient 

Source
pub struct GoogleClient { /* private fields */ }
Expand description

Low-level client for the Google Ads REST API.

Implementations§

Source§

impl GoogleClient

Source

pub fn new( access_token: SecretString, developer_token: String, customer_id: &str, login_customer_id: Option<&str>, ) -> Result<Self>

Create a new client for the given customer account.

customer_id and login_customer_id accept dashed form (123-456-7890); dashes are stripped.

§Errors

Returns an error if the underlying HTTP client cannot be built.

Source

pub fn new_with_base_url( access_token: SecretString, developer_token: String, customer_id: &str, login_customer_id: Option<&str>, base_url: String, ) -> Result<Self>

Create a new client with a custom base URL (e.g. for wiremock tests). Starts with no retries so tests stay deterministic; production constructors opt in via Self::with_retry_policy.

§Errors

Returns an error if the underlying HTTP client cannot be built.

Source

pub const fn with_retry_policy(self, policy: RetryPolicy) -> Self

Replace the retry policy (reads retry transient failures, writes only rate limits and connection failures).

Source

pub fn customer_id(&self) -> &str

The customer ID (dashes stripped).

Source

pub async fn search(&self, query: &str) -> Result<Value>

Run a GAQL query through googleAds:search.

§Errors

Returns MktError::ApiError for non-2xx responses and MktError::Http for transport failures.

Source

pub async fn search_page( &self, query: &str, page_token: Option<&str>, ) -> Result<Value>

Run a GAQL query requesting a specific results page.

§Errors

Returns MktError::ApiError for non-2xx responses and MktError::Http for transport failures.

Source

pub async fn mutate(&self, resource: &str, operations: &Value) -> Result<Value>

Send mutate operations to a resource endpoint, e.g. mutate("campaigns", ops) posts to customers/{cid}/campaigns:mutate.

§Errors

Returns MktError::ApiError for non-2xx responses and MktError::Http for transport failures.

Source

pub async fn mutate_atomic(&self, operations: &Value) -> Result<Value>

Send cross-resource operations to the atomic googleAds:mutate endpoint as one transactional request.

operations is the mutateOperations array, where each entry wraps a per-resource operation (e.g. campaignBudgetOperation, campaignOperation). Operations may reference resources created earlier in the same array via temporary negative IDs. partialFailure is disabled so either every operation succeeds or none is applied, and responseContentType requests the mutated resource names back.

§Errors

Returns MktError::ApiError for non-2xx responses and MktError::Http for transport failures.

Trait Implementations§

Source§

impl Debug for GoogleClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more