# Platform (Ad Delivery) Tasks

Module scope: the shared platform-adapter contract and one adapter per ad network (Meta, Google, TikTok, Taboola, LinkedIn) — create/read/update/report operations, auth, error handling, retries. See `docs/TASKS.md` for the full-program index.

Corresponds to `App\Contracts\PlatformAdapter`, `App\Services\Platforms\*Adapter`, `App\Services\Platforms\PlatformAdapterFactory`, and `config/creative.php`'s `platform_adapters` map.

| Tasks | Hours |
|---|---|
| 6 | 232 |

---

## Id: 03
- **Phase:** Architecture
- **Priority:** P0
- **Area:** Product & Architecture
- **Task:** Design platform adapter/MCP interface so Meta, Google, TikTok, Taboola, LinkedIn use one contract
- **Description:** Define a shared interface (create/read/update/report operations, auth, error shapes) that every platform integration implements, so the orchestration layer and optimization engine can call any ad platform the same way. This is what makes adding a 6th platform later a contained, additive change instead of a rewrite.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 16

## Id: 13
- **Phase:** MVP
- **Priority:** P0
- **Area:** Meta Integration
- **Task:** Implement Meta MCP operations, mapping, error handling, retries and campaign creation
- **Description:** Build the Meta (Facebook/Instagram) adapter implementing the shared platform contract from task 03 — field mapping, campaign creation, error handling, and retry logic against Meta's Marketing API.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 36

## Id: 14
- **Phase:** MVP
- **Priority:** P0
- **Area:** Google Ads MCP
- **Task:** Build Google Ads MCP/adapter for campaign creation, reads, updates and reporting
- **Description:** Build the Google Ads adapter implementing the shared platform contract — campaign creation, reads/updates, and performance reporting against the Google Ads API.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 48

## Id: 15
- **Phase:** MVP
- **Priority:** P0
- **Area:** TikTok MCP
- **Task:** Build TikTok MCP/adapter for campaign creation, reads, updates and reporting
- **Description:** Build the TikTok Ads adapter implementing the shared platform contract — campaign creation, reads/updates, and performance reporting against the TikTok Marketing API.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 44

## Id: 16
- **Phase:** MVP
- **Priority:** P0
- **Area:** Taboola MCP
- **Task:** Build Taboola MCP/adapter for campaign creation, reads, updates and reporting
- **Description:** Build the Taboola adapter implementing the shared platform contract — campaign creation, reads/updates, and performance reporting against the Taboola Backstage API.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 44

## Id: 17
- **Phase:** MVP
- **Priority:** P0
- **Area:** LinkedIn MCP
- **Task:** Build LinkedIn MCP/adapter for campaign creation, reads, updates and reporting
- **Description:** Build the LinkedIn Ads adapter implementing the shared platform contract — campaign creation, reads/updates, and performance reporting against the LinkedIn Marketing API.
- **Primary Role/Assignee:** Unassigned
- **Estimated Hours:** 44

---

## Current implementation status

`App\Contracts\PlatformAdapter` (task 03) is done. `MetaAdapter` (task 13) is partially done — `createCampaign`/`attachCreative`/`publish` only, gated on `META_ACCESS_TOKEN`/`META_AD_ACCOUNT_ID`; no reads/reporting/retries yet. `GoogleAdapter`, `TikTokAdapter`, `TaboolaAdapter`, `LinkedInAdapter` (tasks 14-17) are stub classes extending `UnimplementedPlatformAdapter` that throw `PlatformNotImplementedException` — real implementations are unstarted.
