Profili olmayan konum için Google Business Profile oluşturun
Bağlı Google hesabındaki konuma yeni Google Business Profile gönderin; doğrulamayı konum, işletme kayıtları ve webhook'lar üzerinden takip edin.
Eşleştirme ve bağlama yalnızca bir Google işletme kaydı zaten mevcutsa çalışır. Yeni bir fiziksel işletmenin böyle bir kaydı yoktur; bu nedenle API'den bağlı bir Google hesabı altında bir kayıt oluşturmasını istersiniz. Oluşturma işlemi eşzamansızdır ve Google profili kendi takvimine göre doğrular; bu nedenle bu kılavuzun büyük bölümü sonucu izlemeye ayrılmıştır.
1. Konumun Google işletme kaydı olmadığını doğrulayın
Konumun premium işletme kayıtlarını okuyun ve site.name değeri Google Maps olan satırı bulun. Google'da varlığı olmayan bir konumda, connectedAccountId değeri null olarak REQUIRING_ACTION gösterilir.
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"{ "site": { "name": "Google Maps", "url": "maps.google.com" }, "syncStatus": "REQUIRING_ACTION", "displayStatus": "Connect your account to sync the listing", "listingUrl": null, "connectedAccountId": null, "verified": false}Satır zaten SYNCED ise veya connectedAccountId ayarlanmışsa konumun bir Google işletme kaydı vardır ve bu kılavuz geçerli değildir. Bunun yerine mevcut kaydı bağlayın veya güncelleyin.
2. Bir klasör seçin (isteğe bağlı)
Google, bir hesap altındaki işletme kayıtlarını hesap grupları olarak da adlandırılan klasörlerde düzenler. Bağlı hesabın klasörlerini listeleyin ve hesap sahibi yeni profilin belirli bir grupta olmasını istiyorsa bunlardan birini folderId olarak iletin. Profili hesabın kökünde oluşturmak için bu adımı atlayın.
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/folders \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "getFoldersUnderGoogleAccount": [ { "folderId": "accounts/104890024806530350198", "folderName": "Bright Smile Dental", "locationCount": null } ] }}folderId değerini değiştirmeden kullanın; bu değer bir sayı değil, accounts/{id} dizesidir. Google bildirmediğinde locationCount değeri null olabilir. Bu endpoint yalnızca GoogleAccount bağlantıları için geçerlidir.
3. İşletme kaydını oluşturun
Konumun base64 biçimindeki id değerini ve hesabı, bir klasör seçtiyseniz klasörü de gönderin. Yanıt yalnızca isteğin kabul edildiğini belirtir.
curl -X POST https://listingsapi.com/api/v4/locations/create/gmb-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "folderId": "accounts/104890024806530350198" }}'{ "data": { "createGmbListingForLocation": { "clientMutationId": null, "success": true, "errors": null } }}success: true, oluşturma işleminin başlatıldığı anlamına gelir; profilin yayında olduğu anlamına gelmez. Google her yeni profili yayımlamadan önce inceler ve bu işlem günler sürebilir. success değeri false olduğunda, errors bunun nedenini belirtir: konumda zorunlu alanlar eksiktir, konumun zaten bir Google işletme kaydı vardır, konum arşivlenmiştir veya bağlı hesap artık etkin değildir.
4. Konumun doğrulama durumunu izleyin
Konumu okumaya yönelik her istek, bir status ve bir message içeren googleVerificationStatus döndürür. Google'ın süreçte hangi aşamada olduğunu görmek için konumu yeniden okuyun.
curl -G https://listingsapi.com/api/v4/locations-by-ids \--data-urlencode 'ids=["TG9jYXRpb246MTgwMDI4OQ=="]' \-H "Authorization: API $LISTINGSAPI_KEY"{ "id": "TG9jYXRpb246MTgwMDI4OQ==", "databaseId": 1800289, "googleVerificationStatus": { "status": "PENDING_VERIFICATION", "message": null }}Günlerle ölçülen bir süreç için günde bir kez okumak yeterlidir. Aynı anda çok sayıda konumu kontrol ediyorsanız 429 aldığınızda Retry-After değerine uyun.
5. İşletme kayıtlarındaki Google satırını izleyin
1. adımdaki premium işletme kaydı satırı, aynı ilerlemeyi işletme kaydı tarafından takip eder. 1. adımdaki çağrıyı yeniden çalıştırın ve syncStatus, verified ve listingUrl değerlerini okuyun.
6. Doğrulama webhook'larını dinleyin
Kontrol panelinde bir webhook URL'si ayarlanmışsa, iki olay nihai durumları kapsar; bu nedenle düzenli aralıklarla sorgulama yapmanız gerekmez. Her ikisi de location_id taşır ve her zaman data.connected_account_id: null içerir.
{ "event": "connection.google_verification_failed", "timestamp": "2026-08-25T14:52:31Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": null, "failure_type": "rejected", "reason": "This profile is suspended." }}Yalnızca transient hatalarında yeniden denemeye değer. İşlemin devam ettiği durumlarda hiçbir olay gönderilmez, dolayısıyla sessizlik bir gösterge değildir: doğrulama sürerken 4. adımda olduğu gibi googleVerificationStatus değerini okuyun.
Sonraki adımlar
- Google'ı bağlayın ve konumları içe aktarın: bu kılavuzun dayandığı hesabı bağlayın.
- İşletme kaydı durumunu ve yayındaki bağlantıları kontrol edin: her yayın platformu satırına daha kapsamlı bir bakış.
- Webhook'larla olaylara tepki verin: düzenli aralıklarla sorgulama yapmak yerine doğrulama olaylarını alın.
- Başvuru: Bir konum için GMB işletme kaydı oluşturun, GMB klasörlerini listeleyin, Premium işletme kayıtlarını alın, Konumları listeleyin.