Regionen

Mit dem Dienst regions können Sie geografische Regionen erstellen und verwalten, die Sie als Ziele mit den Diensten regionalinventory und shippingsettings verwenden können. Regionen können als Sammlungen von Postleitzahlen oder in einigen Ländern mithilfe vordefinierter Geoziele definiert werden. Dieser Leitfaden enthält Beispiele dazu, wie die einzelnen Regionstypen definiert werden und wie eine regionale Preisüberschreibung erstellt wird. Weitere Informationen zum Dienst regions, einschließlich aller verfügbaren Methoden und Parameter, finden Sie in der Referenzdokumentation.

Verfügbarkeit nach Region

Wenn Sie eine Region erstellen, bestimmt der Regionsdienst, ob Sie die Region mit anderen Content API-Diensten verwenden können. Das Antwortobjekt, das bei einem erfolgreichen regions.create-Aufruf zurückgegeben wird, enthält zwei boolesche Felder, regionalInventoryEligible und shippingEligible. Diese geben an, ob Sie die Region mit den Diensten regionalinventory bzw. shippingsettings verwenden können.

regionalInventoryEligible

Damit eine Region mit dem Dienst regionalinventory verwendet werden kann, muss sie die folgenden Kriterien erfüllen:

  • Die regionId, die Sie beim Erstellen einer Region angeben, darf nur Ziffern und mindestens 6 Ziffern enthalten.
  • Die Region muss die Mindestanforderungen für das geografische Gebiet und die Anzahl der Internetnutzer erfüllen.

shippingEligible

Damit eine Region mit dem Dienst shippingsettings verwendet werden kann, muss sie die folgenden Kriterien erfüllen:

  • Die Region muss mithilfe von Postleitzahlen definiert werden.
  • Die Region muss Teil eines Landes sein, das vom shippingsettings-Dienst unterstützt wird.

Samples

Hier ist ein vollständiges Codebeispiel, das Sie zum Erstellen einer neuen Region in Java verwenden können:

// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package shopping.content.v2_1.samples.regions;

import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.services.content.model.Region;
import com.google.api.services.content.model.RegionPostalCodeArea;
import com.google.api.services.content.model.RegionPostalCodeAreaPostalCodeRange;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import shopping.content.v2_1.samples.ContentSample;

/**
 * Creates a region. The region created here can be used with the regional inventory service.
 * Regional availability and pricing lets you provide product availability and variable pricing
 * based on your business presence and the location of your customer base. Regional availability and
 * pricing is available for products advertised through Shopping ads on Google Search, and listed in
 * free listings on the Shopping tab.
 */
public class RegionCreateSample extends ContentSample {
  public RegionCreateSample(String[] args) throws IOException {
    super(args);
  }

  @Override
  public void execute() throws IOException {
    checkNonMCA();

    // Creates a List of Postal Code Area Postal Code Ranges.
    // This allows you to flexibly define regions as combinations of postal code
    // ranges. Each postal code range in the list has its own start and end zip code.
    List<RegionPostalCodeAreaPostalCodeRange> postalCodeRanges =
        new ArrayList<RegionPostalCodeAreaPostalCodeRange>();

    // Creates a new postal code range from two postal code values.
    // This range is equivalent to all postal codes in the USA state of New York (00501 - 14925)
    RegionPostalCodeAreaPostalCodeRange postalCodeRange =
        new RegionPostalCodeAreaPostalCodeRange().setBegin("00501").setEnd("14925");

    // Adds the NY State postal code range into the list of postal code ranges that a postal
    // code area accepts.
    postalCodeRanges.add(postalCodeRange);

    // Creates Postal Code Area for the Region that will be inserted, using the NY State postal code
    // ranges, and the US CLDR territory/country code that the postal code ranges applies to.
    RegionPostalCodeArea postalCodeArea =
        new RegionPostalCodeArea().setPostalCodes(postalCodeRanges).setRegionCode("US");

    // Creates a region with example values for displayName and postalCodeArea
    Region region = new Region().setDisplayName("NYState").setPostalCodeArea(postalCodeArea);

    // Tries to create the region, and catches any exceptions
    try {
      System.out.println("Creating region");
      Region result =
          content
              .regions()
              .create(this.config.getMerchantId().longValue(), region)
              .setRegionId("12345678") // User-defined, numeric, minimum of 6 digits
              .execute();
      System.out.println("Listing succesfully created region");
      System.out.println(result);
    } catch (GoogleJsonResponseException e) {
      checkGoogleJsonResponseException(e);
    }
  }

  public static void main(String[] args) throws IOException {
    new RegionCreateSample(args).execute();
  }
}

Region mithilfe von Postleitzahlen erstellen

Sie können die Methode regions.create verwenden, um eine Region zu erstellen, die als Sammlung von Postleitzahlen definiert ist. Im folgenden Beispiel wird eine neue Region für den US-Bundesstaat Arizona erstellt. Dazu wird ein Bereich von Postleitzahlen angegeben.

Um die Region zu erstellen, senden Sie eine POST-Anfrage mit der folgenden URL und dem Anfragetext:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/regions?regionId=456789
{
  postalCodeArea: {
    regionCode: "US",
    postalCodes: [
      {
        begin: "850*",
        end: "860*"
      }
    ]
   }
}

Für regions und shippingsettings gilt ein festes Limit von 2 MB an Daten pro Merchant Center-Konto. Die Einstellungen für Versand und Region werden intern von einem MCA in alle zugehörigen Unterkonten kopiert. Bei größeren MCAs erreichen Sie also möglicherweise schnell Ihr Speicherlimit. In diesem Fall können Sie das Problem umgehen, indem Sie regions und shippingsettings auf Händler-ID-Ebene verwalten. Es gibt keine Möglichkeit, das Kontingent für Regionen über das Limit von 2 MB hinaus zu erhöhen.

Region mithilfe von geografischen Zielen erstellen

Für Regionen in Brasilien und Russland können Sie auch die Methode regions.create verwenden, um eine Region zu erstellen, die als mehrere geografische Ziele definiert ist. Das sind vordefinierte geografische Bereiche. Beispiele für die geografische Ausrichtung sind Länder, Bundesländer, Städte, Stadtteile und Flughäfen. Der Dienst regions unterstützt derzeit jedoch nur den Typ „Bundesstaat“ für Brasilien und den Typ „Region“ für Russland. Informationen zum Herunterladen einer CSV-Datei mit allen IDs für geografische Ziele, einschließlich der Ziele, die mit dem Dienst regions verwendet werden können, finden Sie unter Geoziele. Im folgenden Beispiel wird eine neue Region erstellt, indem die Ziel-IDs der drei brasilianischen Bundesstaaten für die geografische Ausrichtung angegeben werden.

Um die Region zu erstellen, senden Sie eine POST-Anfrage mit der folgenden URL und dem Anfragetext:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/regions?regionId=123456
{
  geoTargetAreas: {
    geotargetCriteriaId: [20106, 20102, 20101] //Sao Paulo, Rio de Janeiro, Parana
  }
}

Regionen zum Erstellen regionaler Preisüberschreibungen verwenden

Wenn Sie eine Region erstellen, gibt der regions-Dienst ein Antwortobjekt zurück, das ein regionId- und zwei Statusfelder für die Berechtigung enthält. Wenn der Wert von regionalInventoryEligible true ist, können Sie mit dem Dienst regionaliventory eine Überschreibung erstellen, die einen anderen Preis für die Region festlegt. Im folgenden Beispiel wird eine regionale Preisüberschreibung mit der im obigen Beispiel erstellten, an Postleitzahlen basierenden Region erstellt, die als regionId den Wert „456789“ hat.

Um die Überschreibung zu erstellen, senden Sie eine POST-Anfrage mit der folgenden URL und dem folgenden Anfragetext:

https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/{productId}/regionalinventory
{
  “regionId”: "456789"
  “price”: {
    value: “10”
    currency: “USD”
  },
  “availability”: “in stock”
}