Model Context Protocol (MCP), büyük dil modellerinin (LLM'ler) harici veriler ve uygulamalarla güvenli bir şekilde etkileşim kurmasını sağlayan açık bir standarttır. Google Ads MCP sunucusu, Google Ads API'ye standart bir köprü sağlar. Yapay zeka ajanlarının doğal dil kullanarak hesap verilerini alıp analiz etmesine, öğe oluşturmasına, video yüklemesine ve etiketleri yönetmesine olanak tanır.
Topluluk kaynakları ve destek
GitHub deposu: google-ads-mcp deposunda demolar ve örnekler bulabilir, hataları bildirebilir veya özellik önerebilirsiniz.
Hata raporları ve özellik istekleri için Sorunlar sekmesini kullanın.
Topluluk: Google Reklamcılık Topluluğu Discord'undaki
#ads-api-ai-toolskanalına katılın.
Teknik genel bakış
Google Ads MCP sunucusunu entegre ettiğinizde Google Ads API kimlik doğrulaması, kaynak getirme, veri ayrıştırma ve desteklenen öğe veya etiket mutasyonları için özel kod yazmanız gerekmez. Sunucu, bir LLM'nin inceleyip çağırabileceği çağrılabilir araçları ve referans kaynakları (Temel özellikler bölümüne bakın) gösterir.
Temel özellikler
- Protokol: MCP (Model Context Protocol)
- Mod: Okuma ve kısmi değişiklik (öner ve onayla doğrulaması ile öğe oluşturma, video yükleme ve etiket yönetimi veya yapılandırılabilir salt okunur mod)
- Dil: Python 3.10 veya sonraki sürümler
- Taşıma: Standart giriş/çıkış (
stdio) veya akış özellikli HTTP (Cloud Run'dastreamable-http) - Kimlik doğrulama: Yerel
stdioiçin Uygulama Varsayılan Kimlik Bilgileri (OAuth 2.0 kullanıcı kimlik bilgileri veya hizmet hesabı) ya da uzak HTTP için OAuth 2.0 web uygulaması kimlik bilgileri
Etkileşim döngüsünün işleyiş şekli
- İstek: "Kampanyamın bu haftaki performansı nasıl?" veya "Yaz indirimimiz için açıklama metni öğesi oluştur" gibi bir istem gönderirsiniz.
- Keşif: LLM, mevcut araçlarını ve kaynaklarını inceleyerek eşleşen bir
google-ads-mcparacını seçer. - Yürütme veya deneme doğrulaması: Okuma araçları, Google Ads API'yi doğrudan sorgular.
Mutate araçları, değişiklikleri uygulamadan girişleri doğrulamak için önce öneri modunda (
validate_only=True) çalıştırılır (Öneri ve onay güvenlik iş akışı bölümüne bakın). - Bağlam ekleme: MCP sunucusu, yapılandırılmış sorgu sonuçlarını veya önerilen
change_itemsgirişlerini ve doğrulamachecksumözetini LLM'nin bağlam penceresine döndürür. - Yanıt ve onay: LLM bir yanıt sunar veya önerilen değişiklikleri onaylamanızı ister. Onayınızın ardından LLM, değişikliği uygulamak için
validate_only=Falseve eşleşenchecksumdeğeriyle mutate aracını tekrar çağırır.
Başlayın
Google Ads MCP sunucusunu yerel olarak yapılandırmak ve çalıştırmak için aşağıdaki adımları uygulayın. Paylaşılan bir uzak hizmet dağıtmak için Google Cloud'da dağıtım başlıklı makaleyi inceleyin.
Ön koşullar
Sunucuyu yapılandırmadan önce yerel ortamınızda ve Google Cloud Console'da aşağıdaki ön koşulları tamamlayın:
- Google Cloud projesi: Google Ads API'nin etkinleştirildiği bir Google Cloud projesi oluşturun veya seçin. API'yi etkinleştirdiğinizde, test hesaplarında okuma ve değiştirme iş akışlarını test etmek için test erişimi verilir. Üretim hesaplarına erişmek için Google Ads API'ye genel bakış sayfasında Explorer, Temel veya Standart erişim düzeyini kontrol edin ya da bu erişim düzeylerinden biri için başvuruda bulunun. Aksi takdirde, üretim çağrıları
AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTIONhatasıyla başarısız olur. Google, 9 Eylül 2026'da geliştirici jetonlarını (GOOGLE_ADS_DEVELOPER_TOKEN) kullanımdan kaldıracak. OAuth istemcinizin veya hizmet hesabınızın sahibi olan Google Cloud projesi, API erişim düzeyinizi belirler. - Kimlik bilgileri: Yerel
stdiomodu, bir OAuth 2.0 istemci gizli anahtarı JSON dosyasından veya Cloud projenizdeki bir hizmet hesabından alınan Uygulama Varsayılan Kimlik Bilgileri (ADC) ile kimlik doğrulaması yapar. Varsayılan kotanızı veya ADC projenizi belirtmeniz gerektiğindeGOOGLE_CLOUD_PROJECTortam değişkenini ayarlayın. Uzakstreamable-httpdağıtımları için OAuth 2.0 web uygulaması istemci kimliği ve istemci gizli anahtarı gerekir (Google Cloud Run'a dağıtma başlıklı makaleyi inceleyin). - Yerel yazılım (
stdiomodu için): Python 3.10 veya sonraki bir sürümü,pipxvegcloudkomut satırı aracını (kullanıcı ADC dosyaları oluşturmak için kullanılır) yükleyin.
Yapılandırma
API'nin etkin olduğu Google Cloud projenizdeki bir OAuth istemcisini kullanarak Uygulama Varsayılan Kimlik Bilgileri (ADC) oluşturun ve Google Ads API kapsamını ekleyin:
gcloud auth application-default login \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=PATH_TO_CLIENT_SECRET_JSONAşağıdakini değiştirin:
PATH_TO_CLIENT_SECRET_JSON: OAuth 2.0 istemci gizli anahtarı JSON dosyanızın yolu.
Bu komut,
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]değerini yazdırır (Linux ve macOS'te~/.config/gcloud/application_default_credentials.jsongibi). Bunun yerine bir hizmet hesabıyla kimlik doğrulaması yapmak için bu adımı atlayın veGOOGLE_APPLICATION_CREDENTIALSdeğişkenini hizmet hesabı anahtarınızın JSON dosyasına yönlendirin ya da--impersonate-service-accountdeğişkeninigcloud auth application-default logindeğişkenine iletin.Sunucuyu, ana makinenizin MCP yapılandırma dosyasına (ör.
~/.gemini/config/mcp_config.json,~/.gemini/settings.jsonveya~/.claude/settings.json) ekleyin:{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "google-ads-mcp==0.0.6", "google-ads-mcp" ], "env": { "GOOGLE_CLOUD_PROJECT": "PROJECT_ID", "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON" } } } }Aşağıdakini değiştirin:
PROJECT_ID: Google Cloud proje kimliğiniz.PATH_TO_CREDENTIALS_JSON: 1. adımda yazdırılan ADC JSON dosyasının veya hizmet hesabı anahtarı JSON dosyanızın yolu. VarsayılangcloudADC dosya konumunu kullanırkenGOOGLE_APPLICATION_CREDENTIALSparametresini atlayabilirsiniz.
Müşteri hesaplarına bir yönetici hesabı üzerinden erişmek için
enviçindeGOOGLE_ADS_LOGIN_CUSTOMER_ID(tire olmadan 10 haneli) değerini ayarlayın veya her bir araç çağrısındalogin_customer_idparametresini iletin.
İsteğe bağlı: Temsilcinizi beceriler ve Geliştirici Asistanı ile donatma
Google Ads MCP sunucusu, yapay zeka istemcinize hesap raporlama verilerine canlı erişim imkanı sunar. Ayrıca öğe oluşturma, video yükleme ve etiket yönetimi araçlarına da erişim sağlar. Temsilcinizin geçerli Google Ads Sorgu Dili (GAQL) sorguları oluşturmasına ve hesap performansındaki değişiklikleri teşhis etmesine yardımcı olmak için MCP sunucusunu aşağıdaki tamamlayıcı araçlarla eşleyin. Bu araçlar, oluşturulan öğeleri kampanyalara bağlamak veya desteklenmeyen diğer mutasyonları gerçekleştirmek için komut dosyaları gibi istemci kitaplığı kodları da oluşturur:
Google Ads API temsilci becerileri: Temsilcinizin Google Ads MCP sunucusunu daha düşük jeton ek yüküyle kullanmasına yardımcı olan taşınabilir iş akışı modülleri (
google-ads-api-mcp-setup,google-ads-api-account-diagnosticsvegoogle-ads-api-quickstartdahil). Bunları yüklemek için aşağıdaki komutu çalıştırın (Node.js gerekir) veya Antigravity, Claude Code, Codex ve Cursor kurulumu için Google Ads API temsilci becerileri kılavuzuna bakın:npx skills add google/skills/skills/adsGoogle Ads API Developer Assistant: Google Antigravity ve Claude Code için yerel Protobuf şema denetimi, GAQL doğrulaması, istemci kitaplığı kod oluşturma ve çevrimdışı dönüşüm sorunlarını giderme özellikleri sunan modüler bir eklentidir. Google Ads API Developer Assistant nedir? başlıklı makaleyi okuyun veya kurulum kılavuzundaki adımları uygulayın.
Temel özellikler
Aşağıdaki bölümlerde sunucunun okuma araçları, kısmi mutasyon araçları ve referans kaynakları açıklanmaktadır. v0.0.6 sürümünden itibaren araçlar varsayılan olarak kategori ad alanı önekleriyle (ör. search_search) kaydedilir. Önek içermeyen sürümlerden istemleri veya izin verilenler listelerini yükseltirken araç adlarını güncelleyin ya da tools_config.yaml içinde boş bir önek ("") ayarlayın (Araç ad alanlarını ve salt okunur modu yapılandırma bölümüne bakın).
Okuma araçları
customers_list_accessible_customers(araçlist_accessible_customers): Kimliği doğrulanmış kullanıcının doğrudan erişebileceği Google Ads müşteri kimliklerini döndürür.search_search(araçsearch): Ham GAQL dizesi yerine yapılandırılmış parametrelerden (customer_id,resourcevefieldsile isteğe bağlıconditions,orderings,limitvelogin_customer_id) GAQLSearchStreamsorguları oluşturur ve çalıştırır. Her sorgu, kaynak özelliklerini, metrikleri, segmentleri, bütçeleri ve durumu net bir şekilde getirmek içinPARAMETERS omit_unselected_resource_names=trueekler.metadata_get_resource_metadata(araçget_resource_metadata): Bir Google Ads API kaynak türü (ör."campaign") için seçilebilir, filtrelenebilir ve sıralanabilir özellikleri, metrikleri ve segmentleri alır.search_searcharacını çağırmadan önce, v26.2 gibi küçük sürümlere eklenen metrikler ve segmentler de dahil olmak üzere geçerli sorgu alanlarını keşfetmek için bu meta verileri kullanın.
Değişiklik araçları (kısmi destek)
assets_create_asset(araçcreate_asset):TEXT,IMAGE,YOUTUBE_VIDEO,SITELINK,CALLOUTveSTRUCTURED_SNIPPETöğe türleri için özel parametreler içeren bağımsız Google Ads öğeleri oluşturur. Diğer değişkenAssetServicetürleri (ör.PRICE,PROMOTION,CALLveyaBUSINESS_MESSAGE) içinextra_paramssözlüğünü iletin veSITELINKöğeleri içinsitelink_link_textile birlikte kök düzeyindefinal_urlsekleyin. Yerel dosya yolları (image_asset_path) yalnızca yerelstdiomodunda çalışır. Uzak HTTP dağıtımları için base64 olarak kodlanmışimage_asset_dataparametresiniIMAGE_PNG,IMAGE_JPEGveyaIMAGE_GIF(en fazla 20 MB) olarak ayarlanmışimage_asset_mime_typeile iletin.assets_upload_video_asset(araçupload_video_asset): Yalnızca yerelstdiomodunda Google Ads API aracılığıyla YouTube'a yerel bir video dosyası yükler (.3gp,.avi,.flv,.mkv,.mov,.mp4,.mpeg,.mpg,.ogg,.webmveya.wmv). Hemvideo_titlehem devideo_descriptionzorunlu parametrelerdir ve gizlilik varsayılan olarakUNLISTED(veya kullanıcı OAuth'u olan reklamverene ait marka kanallarındaPUBLIC) şeklindedir. Bu araç, 11 karakterlik YouTubevideo_iddeğerini değil, Google Adsvideo_upload_iddeğerini (ve kaynak adını) döndürür.you_tube_video_uploadsorgusunusearch_searcharacıyla (you_tube_video_upload.video_upload_idölçütüne göre filtreleyerek)you_tube_video_upload.state = 'PROCESSED'tarihine kadar sorgulayın. Ardındanyou_tube_video_upload.video_id'iassets_create_asset(asset_type="YOUTUBE_VIDEO") içinyoutube_video_idparametresi olarak geçirin.labels_manage_labels(araçmanage_labels): Ad, açıklama ve onaltılık arka plan rengi dahil olmak üzere hesap etiketlerini oluşturur, günceller ve kaldırır.labels_manage_label_associations(araçmanage_label_associations):CAMPAIGN,CUSTOMER,AD_GROUPveAD_GROUP_CRITERIONkaynaklarındaCREATEveREMOVEetiket ilişkilendirme işlemlerini destekler (UPDATEdesteklenmez).CUSTOMERkaynakları içinresource_idisteğe bağlıdır ve varsayılan olarakcustomer_iddeğerine ayarlanır.AD_GROUP_CRITERIONkaynakları için bileşik bir{ad_group_id}~{criterion_id}kimliği iletin veresource_idilelabel_idveyaassociation_resource_namedeğerini ileterek ilişkilendirmeleri kaldırın. Reklam düzeyindeAD_GROUP_ADetiketler desteklenmez.
Referans kaynaklar
Sunucu, tools_config.yaml ayarlarınızdan bağımsız olarak bağlı kalan dört salt okunur MCP kaynağı sunar:
resource://discovery-document: Google Ads API kaynakları, hizmet yöntemleri ve şemalarının JSON REST keşfine genel bakış. Seçilebilir, filtrelenebilir ve sıralanabilir GAQL sorgu alanları döndürenmetadata_get_resource_metadataaracını tamamlar.resource://metrics: Google Ads API metrikleri için HTML referans belgeleri.resource://segments: Google Ads API segmentleri için HTML referans belgeleri.resource://release-notes: Sürüm değişikliklerini ve yeni özellikleri kapsayan HTML Google Ads API sürüm notları.
Öneri ve onay güvenlik iş akışı
Her bir değiştirme aracı (assets_create_asset, assets_upload_video_asset, labels_manage_labels ve labels_manage_label_associations), istenmeyen hesap değişikliklerini önlemeye yardımcı olmak için iki adımlı bir önerme ve onaylama iş akışı uygular:
- Öner (
validate_only=True, varsayılan): Değişiklikleri uygulamadan girişleri doğrular. Öğe ve etiket araçları, canlı bir Google Ads APIvalidate_onlydeneme çalıştırması yürütür.YouTubeVideoUploadServicearacının deneme modu olmadığındanassets_upload_video_asset, yerel dosyayı doğrular ve boyutunu ve değişiklik zaman damgasını bağlar. Her araç, kullanıcı tarafından okunabilenchange_itemsgirişleri vecustomer_idparametresi ile istek yüküne bağlı durum bilgisiz bir SHA-256checksumözeti döndürür. - Onaylama (
validate_only=False):change_itemslistesini sunduktan ve onayınızı aldıktan sonra ajan tabanlı telefon araması,validate_only=False, aynıcustomer_idparametresi ve bağımsız değişkenleri ve 1. adımdakichecksumdeğeriyle aracı tekrar çağırır. Sunucu, hesapta değişiklik yapmadan önce eksik veya eşleşmeyen denetim toplamlarını reddeder.
Araç ad alanlarını ve salt okunur modu yapılandırma
Sunucu, beş araç kategorisinin (customers, search, metadata, labels ve assets) tümü etkinleştirilmiş varsayılan bir tools_config.yaml dosyası içerir.
tools_config.yaml dosyasını özelleştirerek araçları veya ad alanlarını tek tek etkinleştirebilir ya da devre dışı bırakabilir, ad alanı ön eklerini değiştirebilir veya kaldırabilir ya da salt okunur dağıtımı zorunlu kılabilirsiniz.
Başlangıçta sunucu, tools_config.yaml değerini aşağıdaki sırayla çözümler:
GOOGLE_ADS_MCP_TOOLS_CONFIGortam değişkeninde açık bir yol (çalışma dizini proje klasörünüzden farklı olabilen yerelstdioana makineleri için önerilir).- Sunucunun geçerli çalışma dizininde bir
tools_config.yamldosyası. - Paketle birlikte gelen varsayılan
tools_config.yamldosyası.
GOOGLE_ADS_MCP_TOOLS_CONFIG eksik bir dosyaya işaret ediyorsa veya çözümlenen yapılandırma dosyalarından herhangi biri geçersizse sunucu, varsayılan ayarlara geri dönmek yerine başlangıçta bir hata verir.
Aşağıdaki minimal tools_config.yaml dosyası, kesinlikle salt okunur bir dağıtım uygular:
namespaces:
customers: true
search: true
metadata: true
labels: false
assets: false
Aşağıdaki tools_config.yaml dosyası, önekleri özelleştirir ve her bir aracı filtreler (örneğin, yalnızca yerel upload_video_asset aracını devre dışı bırakırken Cloud Run'da base64 create_asset aracını gösterir):
namespaces:
# Default prefix ("customers_list_accessible_customers")
customers: true
# Empty prefix mounts unprefixed tool names ("search")
search: ""
# Custom prefix ("schema_get_resource_metadata")
metadata: "schema"
# Enable only specific tools in a multi-tool category
assets:
enabled_tools:
- create_asset
Başlamak için örnek istemler
Sunucuyu bağladıktan sonra MCP istemcinizde aşağıdaki istemleri deneyin.
Sunucunun neler yapabileceğini sorma
What can the google-ads-mcp server do?
Müşteriler hakkında soru sorma
What customers do I have access to?
Kampanyalar hakkında soru sorma
How many active campaigns do I have?
How is my campaign performance this week?
Give me a report of the top spending campaigns split by device category over the last 7 days for account 1234567890
Öğe oluşturma, video yükleme ve etiketleri yönetme
Create a callout asset with the text "Free Shipping" for account 1234567890
Upload /path/to/promo.mp4 with title "Summer Sale" and description "Summer promo video" for account 1234567890
Create a label named "Q4 Promo" with background color #34A853 and apply it to campaign 9876543210 in account 1234567890
Google Cloud'da dağıtım
MCP sunucusunu birden fazla temsilciyle paylaşmak veya web hizmeti olarak çalıştırmak için yerel olarak çalıştırmak yerine Google Cloud Run'da ya da başka bir bulut altyapısı sağlayıcısında barındırın.
Ön koşullar
- Google Ads API'nin etkinleştirildiği bir Google Cloud projesi (Üretim erişimi şartları için Ön koşullar bölümüne bakın).
gcloudkomut satırı aracı yüklenmiş, kimliği doğrulanmış ve etkin bir projeyle yapılandırılmış olmalıdır:gcloud config set project PROJECT_IDAşağıdakini değiştirin:
PROJECT_ID: Google Cloud proje kimliğiniz.
Docker görüntüsü oluşturma ve aktarma
Docker'ı yerel olarak yüklemeden container görüntüsünü derlemek ve Artifact Registry'ye aktarmak için Cloud Build'i kullanın:
Artifact Registry'de bir depo oluşturun:
gcloud artifacts repositories create mcp-servers \ --repository-format=docker --location=us-central1GitHub deposundaki bir sürüm etiketinden (veya
Dockerfileya datools_config.yaml'yi özelleştirdiyseniz yerel bir kopyadaki.dizininden) görüntüyü derleyip gönderin:gcloud builds submit https://github.com/googleads/google-ads-mcp \ --git-source-revision=v0.0.6 \ --tag=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6Aşağıdakini değiştirin:
PROJECT_ID: Google Cloud proje kimliğiniz.
google-ads-mcpöğesini her güncellediğinizde veya yeni Google Ads API sürümleri (ör. v26.2) için paket halindekigoogle-adsPython istemci kitaplığını her yükselttiğinizde görüntüyü yeniden oluşturun ve yeniden dağıtın.
Google Cloud Run'a dağıt
Cloud Run hizmetiniz için aşağıdaki ortam değişkenlerini ve gizli anahtarları yapılandırın:
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Uygulama düzeyinde OAuth kimlik doğrulaması için API özellikli Google Cloud projenizden OAuth 2.0 web uygulaması istemci kimliği. Aşağıdaki OAuth yapılandırma adımlarını tamamlayın:- Bağlamayı planladığınız tüm yapay zeka istemcileri (ör.
https://claude.ai/api/mcp/auth_callback,https://chatgpt.com/connector_platform_oauth_redirectveyahttps://antigravity.google/oauth-callback) için yetkilendirilmiş yönlendirme URI'lerini ekleyin. https://www.googleapis.com/auth/adwordskapsamını, API'ler ve Hizmetler > OAuth kullanıcı rızası ekranı > Veri Erişimi (Kapsam ekle veya kaldır) bölümündeki OAuth kullanıcı rızası ekranına ekleyin.- OAuth kullanıcı rızası ekranı yayınlama durumunuz Test ediliyor (varsayılan) olarak ayarlanmışsa MCP sunucusuna bağlanan Google Hesaplarını API'ler ve Hizmetler > OAuth kullanıcı rızası ekranı > Kitle (Test kullanıcıları > + Kullanıcı ekle) bölümünde Test kullanıcıları olarak ekleyin.
- Bağlamayı planladığınız tüm yapay zeka istemcileri (ör.
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: OAuth istemci kimliğinize karşılık gelen OAuth istemci gizli anahtarı.GOOGLE_ADS_MCP_BASE_URL: MCP sunucunuzun herkese açık ana URL'si (ör.https://google-ads-mcp-xyz-uc.a.run.app). Cloud Run, bu URL'yi ilk dağıtım sırasında atar. Bu nedenle, önce bu değişken olmadan dağıtım yapın ve ardından hizmeti güncelleyin.GOOGLE_ADS_MCP_JWT_SIGNING_KEY(aynı anda çalışan birden çok kopya Cloud Run için önerilir): Container yeniden başlatmaları ve yatay ölçeklendirme sırasında FastMCP JWT'lerini imzalayan kalıcı bir gizli anahtar.GOOGLE_ADS_MCP_STORAGE_TYPE(aynı anda çalışan birden çok kopyalı Cloud Run için önerilir): OAuth istemci kayıtları ve jetonları için kalıcı arka uç (GOOGLE_ADS_MCP_STORAGE_REDIS_URLileredisveyafirestore). Stokv0.0.6Dockerfileyalnızca bellek içi arka ucu yüklediğinden, önce özel birDockerfile'epy-key-value-aio[redis]veya.[firestore]yükleyin.firestoreözelliğini kullanmak için bir Firestore veritabanı ve Cloud Run hizmet hesabındaroles/datastore.userIAM rolü de gerekir. Bellek içi depolama ile tek örnekli test için--max-instances=1değerini iletin.GOOGLE_ADS_LOGIN_CUSTOMER_ID(isteğe bağlı): Araç çağrılarılogin_customer_idparametresini atladığında kullanılan varsayılan 10 haneli yönetici müşteri kimliği (tire işareti olmadan).GOOGLE_ADS_MCP_TOOLS_CONFIG(isteğe bağlı): Özel birtools_config.yamldosyasının kapsayıcı yolu (ör. görüntüyü yeniden oluşturmadan salt okunur modu zorunlu kılmak için/etc/mcp/tools_config.yamladresindeki Secret Manager'dan bağlanır). Araç ad alanlarını ve salt okuma modunu yapılandırma bölümüne bakın.
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET ve GOOGLE_ADS_MCP_JWT_SIGNING_KEY değerlerini Secret Manager'da depolayın ve hizmeti Google Cloud Run'a dağıtın:
gcloud run deploy google-ads-mcp \
--image=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6 \
--platform=managed \
--region=us-central1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=CLIENT_ID" \
--set-secrets="GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=MCP_OAUTH_CLIENT_SECRET:latest,GOOGLE_ADS_MCP_JWT_SIGNING_KEY=MCP_JWT_SIGNING_KEY:latest"
Cloud Run dağıtımı tamamladıktan sonra, atanan hizmet URL'sini alın ve hizmeti GOOGLE_ADS_MCP_BASE_URL ortam değişkeniyle güncelleyin:
gcloud run services update google-ads-mcp \
--region=us-central1 \
--update-env-vars="GOOGLE_ADS_MCP_BASE_URL=https://CLOUD_RUN_SERVICE_URL"
Aşağıdakini değiştirin:
PROJECT_ID: Google Cloud proje kimliğiniz.CLIENT_ID: OAuth 2.0 web uygulaması istemci kimliğiniz.MCP_OAUTH_CLIENT_SECRET: OAuth 2.0 istemci gizli anahtarınızı depolayan Secret Manager gizli anahtar adı.MCP_JWT_SIGNING_KEY: JWT imzalama anahtarınızı depolayan Secret Manager gizli adı.CLOUD_RUN_SERVICE_URL: Cloud Run hizmetinize atanan ana makine adı (ör.google-ads-mcp-xyz-uc.a.run.app).
Kimlik doğrulama ve güvenlik modeli
--allow-unauthenticated ile dağıtım yapıldığında Cloud Run'ın altyapı IAM kontrolü (roles/run.invoker) devre dışı bırakılır. Böylece harici yapay zeka istemcileri, Google Cloud hizmet hesabı jetonları olmadan bağlanabilir. Kimlik doğrulama, uygulama katmanına devredilir:
GOOGLE_ADS_MCP_OAUTH_CLIENT_IDveGOOGLE_ADS_MCP_OAUTH_CLIENT_SECRETayarlandığında sunucu, her istekte Google OAuth 2.0'ı zorunlu kılar ve kimliği doğrulanmamış arayanlara401 UnauthorizedHTTP durum kodu döndürür. Her araç çağrısı, kimliği doğrulanmış arayanın OAuth kimliği altında yürütülür.--allow-unauthenticatedatlanırsa arayanların her istekte Google Cloud OIDC kimlik jetonlarını iletmesi gerekir. Standart yapay zeka istemcileri (ör. Claude ve ChatGPT), Google Cloud IAM jetonları yerine son kullanıcı OAuth'u kullandığından doğrudan bağlantılar için uygulama düzeyinde OAuth ile eşlenmiş--allow-unauthenticatedgerekir.
MCP istemcisini yapılandırma
Dağıtımdan sonra MCP istemcinizi Cloud Run hizmet URL'si ile yapılandırın. Sunucu, OAuth 2.0'ı zorunlu kıldığı için istemciniz MCP OAuth akışını desteklemeli veya yetkili bir hamiline ait jeton sağlamalıdır:
- OAuth özellikli istemciler: MCP OAuth keşfini destekleyen istemcilerde (ör. Antigravity) bağlantı kurulduğunda
https://www.googleapis.com/auth/adwordskapsamını (Google Cloud Console'da.../auth/adwordsolarak gösterilir) vermek için Google oturum açma istemi tetiklenir. - Üçüncü taraf yapay zeka platformları (Claude, ChatGPT): İstemcinizin bağlayıcı ayarlarında,
/mcpyoluyla hizmet URL'nizi işaret eden özel bir bağlayıcı ekleyin (ör.https://google-ads-mcp-xyz-uc.a.run.app/mcp). OAuth istemci kimliğiniz ve istemci gizli anahtarınızla OAuth 2.0 kimlik doğrulamasını seçin ve istemcinin geri çağırma URI'sinin OAuth istemcinizin yetkili yönlendirme URI'lerinde olduğunu onaylayın. - OAuth desteği olmayan istemciler: HTTP OAuth akışlarını desteklemeyen istemciler
401 UnauthorizedHTTP durum kodu alır. Bu istemciler için yerel stdio yapılandırmasını kullanın.
Aşağıdaki örnekte, ~/.gemini/settings.json bölgesinde gemini komut satırı aracı yapılandırılmaktadır (~/.gemini/config/mcp_config.json bölgesindeki Google Antigravity için "httpUrl" yerine "serverUrl" veya "url" yazın):
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://CLOUD_RUN_SERVICE_URL/mcp"
}
}
}
Aşağıdakini değiştirin:
CLOUD_RUN_SERVICE_URL: Cloud Run hizmetinize atanan ana makine adı (ör.google-ads-mcp-xyz-uc.a.run.app).
Sonraki adımlar
- Google Ads API temsilci becerilerini yükleme
- Google Ads API Geliştirici Asistanı hakkında bilgi
- Google Ads API Developer Assistant'ı yükleme ve kullanma