- How do I install spotonlive/laravel-google-ads?
- Install it with Composer using composer require spotonlive/laravel-google-ads, then publish the package config file with the vendor:publish command. The package registers its service provider and facade automatically, so you can start using it right away. After publishing, populate the developer token, client ID, client secret, refresh token, and login-customer-id values in your .env file. Verify first that Composer resolves the package against your Laravel version, since the dependency constraints are from a 2022 release.
- Which Laravel versions does this Google Ads package support?
- Because the only release dates from April 2022, it almost certainly declares illuminate/support at ^8.0 or ^9.0. On Laravel 10 or 11, Composer will likely refuse to resolve the dependency without a fork or an inline constraint override. Check composer.json on the repository before you commit to it. If you are on a newer Laravel release, plan for a fork rather than a straight install.
- What credentials or environment variables do I need to configure?
- You need a Google Ads developer token, an OAuth client ID and client secret, a refresh token, and a login-customer-id for manager account access. These are read from the publishable config file, which pulls from your .env. Note that refresh tokens from an OAuth consent screen still in Testing mode expire after seven days, so publish the app or use a service account flow for anything long-lived.
- Does this wrapper work with the current Google Ads API version?
- Probably not without changes. The package delegates to Google's official googleads/google-ads-php SDK and was last released in 2022, so the pinned SDK version likely targets an API version that has since been sunset. Google retires Ads API versions on a roughly annual cadence and calls hard-fail afterwards. Confirm the SDK version and any hardcoded API version string in a short spike before relying on it.
- How do I fetch campaigns, ad groups, or performance reports with it?
- You call the package through its facade, which delegates to a thin wrapper around the official Google Ads PHP client. Whether you get raw GAQL passthrough or only opinionated query helpers is the key question to verify, since raw GAQL is what most reporting code actually needs. If only curated builders exist, you may be limited to the queries the author anticipated.
- Does it support manager accounts (MCC) and login-customer-id?
- The package documents login-customer-id as a configuration value, which is required for MCC hierarchies. What is less clear is how it selects the operating customer ID on each call when you work across multiple accounts. Ambiguous handling here is the most common cause of USER_PERMISSION_DENIED errors, so test a multi-account scenario explicitly.
- Is it safe to use with Laravel Octane or queued jobs?
- Treat this as unverified. If the facade resolves a singleton client that holds mutable account context on the instance, concurrent requests under Octane or parallel queue workers could leak state between jobs. Audit how the wrapper binds the client in the container and whether per-call account selection is passed as an argument or set on a shared object. If it is shared, resolve a fresh instance per job or avoid it in long-running workers.
- How are API errors and rate limits handled?
- There is no evidence of retry or backoff logic around Google's per-developer-token rate limits. Errors likely surface as raw SDK exceptions leaking through the facade rather than typed package exceptions. That means you should wrap calls in your own try/catch and implement exponential backoff for quota and transient errors. Also decide up front how you want to normalize Google's error payloads into your application's exception layer.
- Is this package actively maintained and production ready?
- It has a single 2022 release, modest star counts, and effectively one maintainer, with no visible CI or test suite. The Laravel-side code is small enough to audit in an afternoon, but its release cadence does not match the Google Ads API deprecation calendar. For read-mostly reporting on Laravel 8 or 9 it can serve as a starting point; for a Laravel 11 codebase or heavy write operations, expect to fork and own it.
- What are the alternatives to this Laravel Google Ads wrapper?
- The most direct option is using Google's official googleads/google-ads-php SDK yourself with a small service provider and config file, which gives you full control over API version and error handling. Many teams write a thin in-house adapter of roughly the same size as this package. Adopting the wrapper as-is, forking it, or replacing it with your own binding are the three realistic paths, in ascending order of effort.