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.

Google row
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "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.

Folders
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/folders \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "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.

Create listing
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"  }}'
JSON
{  "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.

Verification status
curl -G https://listingsapi.com/api/v4/locations-by-ids \--data-urlencode 'ids=["TG9jYXRpb246MTgwMDI4OQ=="]' \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "id": "TG9jYXRpb246MTgwMDI4OQ==",  "databaseId": 1800289,  "googleVerificationStatus": { "status": "PENDING_VERIFICATION", "message": null }}
statusAnlamıSon durum
NOT_CONNECTEDHenüz bağlı bir Google işletme kaydı yoktur. 3. adımın sonucu yansımadan önce bu durumun görülmesi beklenir.Hayır
NOT_VERIFIEDİşletme kaydı mevcuttur, doğrulama başlamamıştır.Hayır
PENDING_VERIFICATIONGoogle profili doğruluyor.Hayır
UNDER_REVIEWGoogle profili inceliyor.Hayır
VERIFIEDProfil yayındadır.Evet
SUSPENDEDGoogle profili askıya aldı.Evet
DUPLICATEGoogle, profilin mevcut bir profilin kopyası olduğuna karar verdi.Evet
ERROR_WHILE_FETCHINGDurum Google'dan okunamadı. Daha sonra yeniden deneyin.Evet

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.

syncStatusAnlamı
REQUIRING_ACTIONHenüz hiçbir şey oluşturulmamıştır veya hesapla ilgilenilmesi gerekmektedir. displayStatus değerine bakın.
IN_PROGRESSGoogle'a gönderilmiştir, yanıt beklenmektedir.
PENDING_APPROVALGoogle'ın onayı beklenmektedir.
SYNCEDYayındadır. listingUrl doldurulmuştur ve connectedAccountId hesabı belirtir.
FAILEDGoogle gönderimi reddetti. syncIssue nedenini belirtir.

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.

OlayTetiklenme koşuludata alanları
connection.google_verification_verifiedProfil VERIFIED durumuna ulaşır.platform: "google"
connection.google_verification_failedProfil SUSPENDED veya DUPLICATE (failure_type: "rejected") ya da ERROR_WHILE_FETCHING (failure_type: "transient") durumuna ulaşır.platform, failure_type, reason
JSON
{  "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