Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Tiktok Ads Laravel Package

jeffersongoncalves/laravel-tiktok-ads

Laravel wrapper for the TikTok Ads API that lets you manage campaigns, ad groups, creatives, and reporting from your PHP application. Provides a fluent client, configurable credentials, OAuth support, and Laravel-friendly integration for building and automating TikTok advertising workflows.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Build vs. buy for the TikTok Ads integration. The core question this answers is whether to spend engineering weeks writing and maintaining a TikTok Business API v1.3 HTTP wrapper or adopt one. This package covers the highest-value 20% of the surface area — advertiser info, campaign list/create/status updates, ad groups, integrated reporting, and custom audiences — which maps closely to the read-and-adjust workflows most products need first. That is enough to make "buy" the default answer for an MVP or internal tool, and enough to shrink a "build" estimate to a thin adapter layer plus the resources this package doesn't cover.

Roadmap sequencing. The resource coverage tells you what is cheap and what is expensive. Campaign status updates and integrated reports are near-free to ship, so an "optimize/automate my TikTok campaigns" or "unified ad reporting" feature is a low-risk next-quarter candidate. Ads/creatives, pixels, catalogs, business center, and targeting search are not in this release, so any feature depending on creative management or audience discovery carries a real build cost the package won't absorb. Use this list as a feasibility filter when a stakeholder asks for a TikTok capability by name.

Architecture and multi-tenancy decisions. Config is a single TIKTOK_ACCESS_TOKEN and TIKTOK_ADVERTISER_ID per environment. That is fine for a single-tenant app or an agency running one ad account, and it is a genuine scoping constraint for a multi-tenant SaaS where each customer brings their own advertiser account. For the SaaS case, the decision is whether to fork, wrap, or run per-tenant config at runtime before adopting — decide this before it shows up as a mid-sprint surprise.

Token lifecycle ownership. The package takes an access token; it does not appear to own OAuth, refresh, or revocation. That's an explicit scope boundary, and it means "users connect their TikTok Ads account" is still a product you have to build (consent flow, encrypted storage, refresh jobs, failure UX). Budget for it.

Platform support as a market filter. PHP 8.2+ with Laravel 12/13 only. If your app is on Laravel 10/11 or PHP 8.1, this is not adoptable without an upgrade project, which changes the cost calculus entirely.

When to Consider This Package

Adopt when most of the following hold:

  • You are on Laravel 12/13 and PHP 8.2+ already, with no upgrade runway needed.
  • Your near-term scope is campaign read/create/status, ad group visibility, reporting pulls, and custom audience sync — not creative or catalog management.
  • You have one advertiser account per deployment, or you're willing to manage per-tenant configuration yourself.
  • You already have (or will build) OAuth token acquisition and refresh outside the package.
  • You want a thin, idiomatic Laravel HTTP client with a facade and container binding rather than a hand-rolled service class — i.e., you value convention and DI over completeness.
  • You can absorb first-release risk: v1.0.0 has no production track record, no stated test suite, no deprecation policy, and no evidence of release cadence yet. Pin the version and wrap it behind your own interface so a swap is a day, not a quarter.

Look elsewhere — or plan to build — when:

  • You need the broader Marketing API surface (ads and creatives, pixels, catalogs, business center, targeting/demographic search). This package is a subset, and the gaps are the expensive ones.
  • You need multi-tenant, per-request advertiser switching as a core primitive; the single-token config model means you'd be fighting the design.
  • You need webhooks, batching, or built-in rate-limit/retry handling to be first-class rather than your own concern.
  • You need a maintained, versioned support commitment — a 1.0.0 with an undocumented maintainer and single release is an unproven dependency for a revenue-critical path.
  • You're not on the supported Laravel/PHP matrix.

How to Pitch It (Stakeholders)

For executives: TikTok Ads is a channel our customers and internal teams already spend money on. Rather than building our own integration to TikTok's Business API — weeks of engineering plus ongoing maintenance against a versioned, changing external API — we can adopt a Laravel package that already handles advertiser info, campaign creation and status changes, ad groups, reporting, and custom audiences. That lets us ship a reporting-and-optimization capability quickly and defer the expensive pieces (creative management, audiences discovery) until we've validated demand. The trade-off is that it's a brand-new 1.0.0 with a single advertiser per deployment and no built-in account-connection flow, so we'd treat it as a component behind our own interface, not a foundation — low switching cost if it doesn't hold up.

For engineering: Idiomatic Laravel — HTTP client wrapper, facade, container binding, config via env. Small, readable surface. Two caveats to design around: config is single-token/single-advertiser, so any multi-tenant story needs a runtime configuration layer; and OAuth/refresh, rate limiting, retries, and error normalization are ours to own. Pin the version, wrap it behind an internal adapter, and vendor the TikTok API version explicitly (TIKTOK_ADS_API_VERSION) so an upstream API change doesn't move under us silently. Verify the test story before it touches a billing-adjacent path.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel