> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useadstudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Adstudio MCP

> ChatGPT, Claude, Muse veya herhangi bir MCP istemcisini Adstudio'nun salt okunur MCP sunucusu üzerinden reklam hesaplarınıza bağlayın.

Adstudio MCP, barındırılan bir [Model Context Protocol](https://modelcontextprotocol.io) sunucusudur. Zaten kullandığınız yapay zekâ asistanının, Adstudio çalışma alanlarınıza bağlı reklam verisini okumasını ve *"CPA geçen hafta neden fırladı?"* gibi soruları hesaplarınızdaki gerçek rakamlarla yanıtlamasını sağlar.

|                             |                                                                   |
| --------------------------- | ----------------------------------------------------------------- |
| **Endpoint**                | `https://useadstudio.com/api/mcp`                                 |
| **Taşıma**                  | Streamable HTTP (MCP 2025-06-18)                                  |
| **Kimlik doğrulama**        | OAuth 2.1 + PKCE, dinamik istemci kaydı, refresh token rotasyonu  |
| **Bugün canlı platformlar** | Google Ads, Meta Ads, TikTok Ads                                  |
| **Erişim**                  | Salt okunur. Hiçbir araç bir reklam hesabında değişiklik yapamaz. |

## Nasıl çalışır

<Steps>
  <Step title="Reklam hesaplarınızı Adstudio'ya bağlayın">
    Google Ads, Meta Ads ve TikTok Ads hesapları, ürünün geri kalanında olduğu gibi **Ayarlar → Entegrasyonlar**'dan bir kez bağlanır. MCP sunucusu platform kimlik bilgilerini hiçbir zaman kendisi istemez.
  </Step>

  <Step title="MCP bağlantınızı oluşturun">
    **Ayarlar → MCP**'de kişisel bir bağlantı oluşturursunuz. Bu bağlantı üye olduğunuz her çalışma alanına, sonradan katıldıklarınız dahil, ulaşır ve her çalışma alanı için platform bazlı **Okuma** ve **Yazma** anahtarları gösterir. Yalnızca etkinleştirdikleriniz erişilebilir; yazma henüz hiçbir araç tarafından sunulmuyor, anahtar gelecek sürümler için niyeti kaydeder.
  </Step>

  <Step title="Bir istemciyi yetkilendirin">
    `https://useadstudio.com/api/mcp` adresini ChatGPT, Claude, Muse veya herhangi bir MCP istemcisine ekleyin. İstemci Adstudio'nun yetkilendirme sunucusunu keşfeder, tarayıcıda Adstudio'ya giriş yapar ve bağlantıyı onaylarsınız. Adımlar aşağıda, **İstemci bağlama** bölümünde.
  </Step>

  <Step title="Sorun">
    Asistan önce hesaplarınızı listeler, sonra her çağrıda açıkça bir çalışma alanı, platform ve hesap adlandırır. Hiçbir şey tahmin edilmez veya varsayılan alınmaz. Neler çekebildiği aşağıda, **Araçlar** bölümünde.
  </Step>
</Steps>

## Asistan neler yapabilir

* **Kapsamı keşfetme**: üye olduğunuz çalışma alanları, her birinde bağlı platformlar, seçili reklam hesabı ve orada okumaya izin verilip verilmediği.
* **Performans sorgulama**: hesap, kampanya, reklam grubu, reklam seti veya reklam düzeyinde harcama, gösterim, tıklama, dönüşüm, dönüşüm değeri, gösterim payı, erişim, sıklık, CPM, CTR, CPC ve video metrikleri; karşılaştırma dönemi ve tek bir kırılımla (tarih, cihaz, yerleşim, yayıncı platformu, konum, yaş, cinsiyet).
* **Yapıya göz atma**: kampanyalar, reklam grupları, reklam setleri ve reklamlar; durum ve türleriyle, metriksiz.
* **Kreatifleri inceleme**: başlıklar, gövde metni, açıklamalar, medya, hedef URL'ler ve otomasyon özellikleri.

Her yanıt **kaynak bilgisi** (kaynak, alınma zamanı, para birimi, dönem, saat dilimi, atıf modeli) ve alınamayan her şeyi nedeniyle birlikte adlandıran bir **unresolved** listesi taşır. Asistanın tahmin etmesi gerekmez.

## İzinler ve güvenlik

* Bağlantı çalışma alanına değil **kişiye** aittir ve o kişinin rolünü asla aşamaz. Üyeler okur; yöneticiler ek olarak yazma anahtarlarını açabilir.
* Kapsam **her istekte yeniden okunur**. Ayarlar → MCP'de geri alınan bir izin token süresi dolduğunda değil, bir sonraki çağrıda geçerli olur.
* Ayarlar → MCP'deki **İptal et** tüm istemcilerin erişimini anında keser.
* Adstudio dışında yazılmış metinler (hesap adları, kampanya adları, reklam metinleri, arama terimleri) güvenilmeyen içerik olarak işaretlenmiş döner; istemci bunları talimat değil veri olarak ele alabilir.
* Adstudio yalnızca istediğiniz veriyi, yetkilendirdiğiniz istemciye açıklar ve platform OAuth kimlik bilgilerini hiçbir zaman istemciye göndermez. Bkz. [gizlilik politikası](https://useadstudio.com/privacy-policy).

## Sınırlar

* Yalnızca Google Ads, Meta Ads ve TikTok Ads. Diğer platformlar için istekler açık bir nedenle reddedilir; yeni platformlar doğrulandıkça eklenir.
* Her çalışma alanında platform başına tek seçili reklam hesabı; Adstudio'da seçili olan.
* `query_performance` ve `get_entities` çağrı başına en fazla 500, `get_creatives` en fazla 100 satır döner. Yanıtlar kesildiğinde bunu ve sorguyu nasıl genişleteceğinizi söyler.
* Hız sınırları çalışma alanı başına ve kayıt endpoint'inde uygulanır. Etkileşimli kullanım bunlara ulaşmaz.

## İstemci bağlama

### Başlamadan önce

1. Üye olduğunuz bir Adstudio çalışma alanında en az bir **Google Ads**, **Meta Ads** veya **TikTok Ads** hesabı bağlı olmalı (**Ayarlar → Entegrasyonlar**).
2. **Ayarlar → MCP**'de bağlantınızı oluşturmuş ve o çalışma alanında o platform için **Okuma**'yı etkinleştirmiş olmalısınız. Bağlantı yokken yetkilendirme reddedilir; böylece hiçbir istemci izinlerinizi sizin yerinize sessizce seçemez.

Adres her zaman aynıdır ve gizli bir şey taşımaz:

```
https://useadstudio.com/api/mcp
```

### ChatGPT

<Steps>
  <Step title="Uygulamayı ekleyin">
    ChatGPT'de **Ayarlar → Uygulamalar ve Bağlayıcılar** (veya **Eklentiler**) bölümünü açın ve **Adstudio**'yu arayın. Geliştirici modunda özel bağlayıcı olarak ekliyorsanız yukarıdaki endpoint'i yapıştırın.
  </Step>

  <Step title="Giriş yapın ve yetkilendirin">
    ChatGPT, Adstudio'nun giriş sayfasını açar. Adstudio hesabınızla giriş yapın ve bağlantıyı onaylayın.
  </Step>

  <Step title="Sorun">
    *"Adstudio'daki reklam hesaplarımı listele"* ile başlayın, ardından adlandırdığınız hesabın performansı, yapısı veya kreatifleri hakkında sorun.
  </Step>
</Steps>

### Claude

<Steps>
  <Step title="Özel bağlayıcı ekleyin">
    Claude'da **Ayarlar → Bağlayıcılar → Özel bağlayıcı ekle**'yi açın, adını Adstudio koyun ve yukarıdaki endpoint'i yapıştırın.
  </Step>

  <Step title="Yetkilendirin">
    Claude, Adstudio'nun yetkilendirme sunucusunu otomatik keşfeder, kendini kaydeder ve giriş sayfasını açar. Bağlantıyı onaylayın.
  </Step>

  <Step title="Sohbette etkinleştirin">
    Bir konuşmanın araçlar menüsünden Adstudio bağlayıcısını açın ve sorun.
  </Step>
</Steps>

### Muse ve diğer MCP istemcileri

Streamable HTTP üzerinden OAuth 2.1 ile uzak MCP sunucularını destekleyen her istemci aynı şekilde çalışır: endpoint'i ekleyin, tarayıcıda girişi tamamlayın, sorun. Yalnızca stdio sunucularını destekleyen istemciler için `mcp-remote` gibi bir köprü gerekir:

```json theme={null}
{
  "mcpServers": {
    "adstudio": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://useadstudio.com/api/mcp"]
    }
  }
}
```

### Belirli bir platformu bağlama

Her reklam platformu ve yapay zeka istemcisi ikilisi için adım adım sayfalar (İngilizce):

| Platform                        | ChatGPT                                                            | Claude                                                            | Gemini                                                            | Cursor                                                            |
| ------------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
| Google Ads                      | [Rehber](https://useadstudio.com/connect/google-ads-to-chatgpt)    | [Rehber](https://useadstudio.com/connect/google-ads-to-claude)    | [Rehber](https://useadstudio.com/connect/google-ads-to-gemini)    | [Rehber](https://useadstudio.com/connect/google-ads-to-cursor)    |
| Meta Ads (Facebook & Instagram) | [Rehber](https://useadstudio.com/connect/meta-ads-to-chatgpt)      | [Rehber](https://useadstudio.com/connect/meta-ads-to-claude)      | [Rehber](https://useadstudio.com/connect/meta-ads-to-gemini)      | [Rehber](https://useadstudio.com/connect/meta-ads-to-cursor)      |
| TikTok Ads                      | [Rehber](https://useadstudio.com/connect/tiktok-ads-to-chatgpt)    | [Rehber](https://useadstudio.com/connect/tiktok-ads-to-claude)    | [Rehber](https://useadstudio.com/connect/tiktok-ads-to-gemini)    | [Rehber](https://useadstudio.com/connect/tiktok-ads-to-cursor)    |
| ChatGPT Ads                     | [Rehber](https://useadstudio.com/connect/chatgpt-ads-to-chatgpt)   | [Rehber](https://useadstudio.com/connect/chatgpt-ads-to-claude)   | [Rehber](https://useadstudio.com/connect/chatgpt-ads-to-gemini)   | [Rehber](https://useadstudio.com/connect/chatgpt-ads-to-cursor)   |
| DV360                           | [Rehber](https://useadstudio.com/connect/dv360-to-chatgpt)         | [Rehber](https://useadstudio.com/connect/dv360-to-claude)         | [Rehber](https://useadstudio.com/connect/dv360-to-gemini)         | [Rehber](https://useadstudio.com/connect/dv360-to-cursor)         |
| Pinterest Ads                   | [Rehber](https://useadstudio.com/connect/pinterest-ads-to-chatgpt) | [Rehber](https://useadstudio.com/connect/pinterest-ads-to-claude) | [Rehber](https://useadstudio.com/connect/pinterest-ads-to-gemini) | [Rehber](https://useadstudio.com/connect/pinterest-ads-to-cursor) |
| Shopify                         | [Rehber](https://useadstudio.com/connect/shopify-to-chatgpt)       | [Rehber](https://useadstudio.com/connect/shopify-to-claude)       | [Rehber](https://useadstudio.com/connect/shopify-to-gemini)       | [Rehber](https://useadstudio.com/connect/shopify-to-cursor)       |

### Keşif endpoint'leri

MCP istemcileri bunları kendileri bulur; beyaz listeye alması veya hata ayıklaması gereken operatörler için listelenmiştir.

| Amaç                                          | URL                                                                    |
| --------------------------------------------- | ---------------------------------------------------------------------- |
| Korunan kaynak meta verisi (RFC 9728)         | `https://useadstudio.com/.well-known/oauth-protected-resource/api/mcp` |
| Yetkilendirme sunucusu meta verisi (RFC 8414) | `https://useadstudio.com/.well-known/oauth-authorization-server`       |
| Yetkilendirme                                 | `https://useadstudio.com/api/mcp/oauth/authorize`                      |
| Token                                         | `https://useadstudio.com/api/mcp/oauth/token`                          |
| Dinamik istemci kaydı (RFC 7591)              | `https://useadstudio.com/api/mcp/oauth/register`                       |

Yönlendirme URI'leri tam `https://` adresleri veya loopback host olmalıdır. Erişim token'ları kısa ömürlüdür; refresh token'lar her kullanımda yenilenir.

### Sorun giderme

<AccordionGroup>
  <Accordion title="İstemci yetkilendirme sunucusunu bulamadığını söylüyor">
    Yukarıdaki meta veri dokümanları oturum olmadan yanıt vermelidir. Ağınız `useadstudio.com`'u proxy'liyorsa `/.well-known/*` ve `/api/mcp/*` yollarının kimlik doğrulamasız erişilebilir olduğundan emin olun.
  </Accordion>

  <Accordion title="Yetkilendirme, Ayarlar → MCP'ye işaret eden bir mesajla reddediliyor">
    Henüz bağlantı oluşturmadınız. Adstudio'da **Ayarlar → MCP**'yi açın, bir bağlantı oluşturun, ihtiyacınız olan platformlar için Okuma'yı etkinleştirin ve istemciyi yeniden deneyin.
  </Accordion>

  <Accordion title="list_accounts bir çalışma alanı döndürüyor ama okuma reddedilmiş">
    O çalışma alanında o platform için okuma kapalı ya da rolünüz izin vermiyor. Yanıt hangisi olduğunu söyler. Ayarlar → MCP'den etkinleştirin.
  </Accordion>

  <Accordion title="Bir sorgu error durumu ve unresolved kaydıyla dönüyor">
    Platform API'si yanıt veremedi. **Ayarlar → Entegrasyonlar**'da entegrasyonu kontrol edin (süresi dolmuş token'lar yeniden bağlanma uyarısı gösterir) ve yeniden deneyin.
  </Accordion>

  <Accordion title="Erişimi hemen kesmek istiyorum">
    **Ayarlar → MCP → İptal et**. Her istemci bir sonraki isteğinde erişimini kaybeder. Yeniden bağlanmak için yeni bir bağlantı oluşturun.
  </Accordion>
</AccordionGroup>

Hâlâ takıldıysanız [destek sayfasını](https://useadstudio.com/support) kullanın. Destek talebine hiçbir zaman token veya doğrulama değeri yapıştırmayın.

## Araçlar

Beş aracın tamamı salt okunurdur. `list_accounts` dışındaki her araç açık bir `workspaceId`, `platform` (`google_ads`, `meta_ads` veya `tiktok_ads`) ve `accountId` ister; sunucu bunları hiçbir zaman varsayılan almaz. Her yanıt aynı zarfa sahiptir:

```json theme={null}
{
  "data": { "status": "ok", "...": "..." },
  "provenance": { "source": "platform_api", "retrievedAt": "...", "currency": "TRY", "period": { "start": "...", "end": "...", "timezone": "Europe/Istanbul" }, "attribution": "..." },
  "unresolved": [ { "subject": "...", "kind": "could_not_look", "reason": "...", "remedy": "..." } ]
}
```

Adstudio dışında yazılmış değerler (hesap ve kampanya adları, reklam metinleri, arama terimleri) `{ "untrusted": true, "value": "..." }` olarak sarılır.

### list\_accounts

Bağlantının ulaştığı her çalışma alanını, her birinde bağlı platformları, platform başına seçili hesabı ve orada okuma ile yazmaya izin verilip verilmediğini, reddedildiğinde nedeniyle birlikte listeler. Argüman almaz ve platform API çağrısı yapmaz. Her zaman ilk çağrıdır.

### describe\_capabilities

Tek bir hesap için `query_performance`'ın orada kabul ettiği düzeyleri, metrikleri, kırılımları, filtreleri ve sınırları ile `get_entities` ve `get_creatives`'in neler döndürebileceğini verir. Bir hesaba ilk sorgudan önce çağırın.

| Argüman                                | Zorunlu | Not                 |
| -------------------------------------- | ------- | ------------------- |
| `workspaceId`, `platform`, `accountId` | evet    | `list_accounts`'tan |

### query\_performance

Bir tarih aralığı için atıflı performans satırları.

| Argüman                                | Zorunlu | Not                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `workspaceId`, `platform`, `accountId` | evet    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `level`                                | evet    | `account`, `campaign`, `ad_group` (Google, TikTok), `ad_set` (Meta), `ad`                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `start`, `end`                         | evet    | `YYYY-MM-DD`, hesabın raporlama saat diliminde                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `metrics`                              | evet    | En az bir. Google: `impressions`, `clicks`, `spend`, `conversions`, `conversion_value`; kampanya düzeyinde ayrıca `search_impression_share`, `search_budget_lost_impression_share`, `search_rank_lost_impression_share`. Meta ek olarak `reach`, `frequency`, `cpm`, `ctr`, `cpc`, `video_plays`, `video_thruplays`, `video_p25` … `video_p100`. TikTok, Meta ile aynı seti sunar; `conversions` TikTok'un optimizasyon etkinliği `conversion` alanıdır, `conversion_value` web satın alma değeridir, `video_thruplays` 6 saniyelik izlemedir. |
| `comparison`                           | hayır   | İkinci dönem için `{ "start", "end" }`; satırlar `comparisonMetrics` ile döner                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `breakdowns`                           | hayır   | En fazla bir: `date`, `device`, `placement`, `publisher_platform`, `platform_position`, `age`, `gender`. TikTok: `date`, `age`, `gender`, `placement`, `device` (iOS / Android / PC); son dördüyle `conversion_value` alınamaz                                                                                                                                                                                                                                                                                                                 |
| `filters`                              | hayır   | `[{ "field": "entity_id", "value": "<id>" }]`; hesap düzeyinde izin verilmez                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `sort`                                 | hayır   | `{ "field", "direction" }`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `limit`                                | hayır   | 1–500                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

Google Ads yalnızca ham sayılar döndürür; CTR, CPC, CPA ve ROAS bunlardan türetilir. Meta dönüşümleri hesabın varsayılan atıf pencereleriyle raporlar ve dönüşüm tanımını yanıtta belirtir.

### get\_entities

Tek bir düzey için güncel hiyerarşi, metriksiz: id, ad, durum ve sağlayıcı türü; `parentId` verildiğinde üst öğe de eklenir.

| Argüman                                | Zorunlu | Not                                                                                                |
| -------------------------------------- | ------- | -------------------------------------------------------------------------------------------------- |
| `workspaceId`, `platform`, `accountId` | evet    |                                                                                                    |
| `level`                                | evet    | `campaign`, `ad_group`, `ad_set`, `ad`                                                             |
| `parentId`                             | hayır   | Doğrudan üst öğe id'si; örneğin reklam setlerini veya reklam gruplarını listelerken kampanya id'si |
| `limit`                                | hayır   | 1–500                                                                                              |

### get\_creatives

Reklam-kreatif atamaları; normalize edilmiş metin (başlıklar, gövdeler, açıklamalar, yollar, işletme adları, eylem çağrıları), medya, hedef URL'ler ve etkin otomasyon özellikleriyle. Metrik yok; kreatifleri sıralamak için `ad` düzeyinde `query_performance` ile birleştirin.

| Argüman                                | Zorunlu             | Not                                                   |
| -------------------------------------- | ------------------- | ----------------------------------------------------- |
| `workspaceId`, `platform`, `accountId` | evet                |                                                       |
| `scopeLevel`                           | evet                | `account`, `campaign`, `ad_group`, `ad_set`, `ad`     |
| `entityId`                             | hesap dışı kapsamda | Kampanya, reklam grubu, reklam seti veya reklam id'si |
| `limit`                                | hayır               | 1–100                                                 |

### Örnek istemler

* "Google Ads kampanyalarım geçen hafta bir önceki haftaya göre nasıl performans gösterdi?"
* "Meta Ads hesabımın aylık özetini harcama, dönüşüm, CPA ve ROAS ile önceki aya kıyasla ver."
* "Brand Search kampanyamın CPA'sı son 14 günde neden yükseldi?"
* "Meta Ads hesabımdaki hangi reklamlar şu an kreatif yorgunluğu belirtisi gösteriyor?"
* "Summer Sale kampanyamdaki reklamları ROAS'a göre sırala ve ilk üçünün ne söylediğini göster."
* "Son 30 günün Meta Ads harcamasını yerleşime göre kır."

### Araçların yapmayacakları

* Bütçe, durum, teklif, hedefleme veya kreatif değiştirmek. Bu tür istekler salt okunur sınırıyla yanıtlanır.
* Adstudio'da bağlı olsalar bile OpenAI Ads, DV360, Adjust, GA4 veya Search Console'u MCP üzerinden sorgulamak; henüz değil.
* Çalışma alanı, hesap, para birimi veya saat dilimi tahmin etmek.
