ターゲット地域

このガイドでは、ターゲット地域の概要と、AdWords API を使ってキャンペーンのターゲット地域を追加、取得、更新する方法について説明します。また、「所在地」(LOP)や「関心のある地域」(AOI)といった地域による高度なターゲット設定の概念について、また、キャンペーンの掲載結果について地域別レポートを作成し、成果を地域別に分析する方法についても詳しく説明します。

このガイドのコードサンプルでは、 AdWords API Java ライブラリが使われています。他の 言語については、クライアント ライブラリの 一覧をご覧ください。なお、クライアント ライブラリの使用は推奨ですが、必須ではありません。 各種のプログラミング言語で SOAP キットを使って、API を呼び出すことができます。

地域によるターゲット設定の重要性

ターゲット地域を設定すると、特定の地域のユーザーに広告を配信 できます。たとえば、スーパーマーケットのチェーン店の広告を掲載 するとします。この場合、地域によるターゲット設定をしなければ世界のすべての地域で広告が掲載され、 スーパーマーケットの店舗がない地域でもクリックが 発生する場合があります。これではコストが発生するだけで、費用対効果を 改善できません。キャンペーンに地域によるターゲティングを設定すれば、 スーパーマーケットの店舗がある地域でのみ広告が掲載されます。 この方法を使うと、地元のスーパーマーケットを検索するユーザーを直接 ターゲットにできます。

AdWords API では、広告のターゲットとして国、地域、特定の地点の隣接地域を指定できます。

ターゲット地域の概念について詳しくは、 こちらのヘルプセンターの記事をご覧ください。

特定の地域を指定したターゲット設定

キャンペーンは特定の地域をターゲットに設定できます。地域には、国、都道府県、 市区町村、郵便番号など、AdWords でサポート されているターゲット地域をすべて使用できます。ターゲット設定可能な 各地域は条件 ID で一意に識別されます。

キャンペーンにターゲット地域を追加するには、 CampaignCriterionService を使います。 次のコード スニペットは、キャンペーンのターゲットとしてカリフォルニア(米国)とメキシコを設定する方法を示しています。

// Create locations. The IDs can be found in the documentation or
// retrieved with the LocationCriterionService.
Location california = new Location();
california.setId(21137L);
Location mexico = new Location();
mexico.setId(2484L);

List operations = new ArrayList();
for (Criterion criterion : new Criterion[] {california, mexico}) {
  CampaignCriterionOperation operation = new CampaignCriterionOperation();
  CampaignCriterion campaignCriterion = new CampaignCriterion();
  campaignCriterion.setCampaignId(campaignId);
  campaignCriterion.setCriterion(criterion);
  operation.setOperand(campaignCriterion);
  operation.setOperator(Operator.ADD);
  operations.add(operation);
}

CampaignCriterionReturnValue result = campaignCriterionService.mutate(operations
   .toArray(new CampaignCriterionOperation[operations.size()]));

このコードに示されているとおり、ターゲットに指定する地域ごとに Location オブジェクトを作成し、CampaignCriteronService.mutate() を使って追加します。この例では、21137 がカリフォルニアのコード、2484 がメキシコのコードです。

なお、ターゲットとして指定できる地域は、さまざまな理由でサポートされなくなる場合があります。たとえば、地域区分の細分化や統合、地政学的な変更などによって、地域の構成が変わることがあるためです。特定のターゲット地域のサポート状況(ACTIVE: 有効、OBSOLETE: サポート終了、PHASING_OUT: サポート終了予定)を確認するには、Location オブジェクトの targetingStatus フィールドを参照してください。サポート終了予定のターゲット地域の詳細については、こちらのブログ投稿をご覧ください。

特定の地域の地域コードを調べる

上記のとおり、特定の地域をターゲットに設定するには、適切なコードを使って Location オブジェクトを作成します。地域の条件 ID を 調べるには、 LocationCriterionService を使います。次のコードサンプルは、地域名を使って地域の条件 ID を調べる方法を示しています。

String[] locationNames = new String[] {"Quebec"};

Selector selector = new Selector();
selector.setFields(new String[] {"Id", "LocationName", "CanonicalName", "DisplayType",
   "ParentLocations", "Reach"});

selector.setPredicates(new Predicate[] {
  // Location names must match exactly, only EQUALS and IN are
  // supported.
  new Predicate("LocationName", PredicateOperator.IN, locationNames),
  // Set the locale of the returned location names.
  new Predicate("Locale", PredicateOperator.EQUALS, new String[] {"en"})
});

// Make the get request.
LocationCriterion[] locationCriteria = locationCriterionService.get(selector);

// Display the resulting location criteria.
for (LocationCriterion locationCriterion : locationCriteria) {
 String parentString =
     getParentLocationString(locationCriterion.getLocation().getParentLocations());
 System.out.printf("The search term '%s' returned the location '%s (%d)' of type '%s' "
     + "with parent locations '%s' and reach '%d'.\n",
    locationCriterion.getSearchTerm(),
    locationCriterion.getLocation().getLocationName(),
    locationCriterion.getLocation().getId(),
    locationCriterion.getLocation().getDisplayType(), parentString,
    locationCriterion.getReach());
}

/**
  * Helper function to format a string for parent locations.
  *
  * @param parents List of parent locations.
  * @return Formatted string representing parent locations.
  */
 public static String getParentLocationString(Location[] parents) {
   StringBuilder sb = new StringBuilder();
   if (parents != null) {
     for (Location parent : parents) {
       if (sb.length() > 0) {
         sb.append(", ");
       }
       sb.append(String.format("%s (%s)", parent.getLocationName(),
           parent.getDisplayType()));
     }
   } else {
     sb.append("N/A");
   }
   return sb.toString();
 }

上のコードサンプルでは、次のような出力が生成されます。

The search term 'Quebec' returned the location 'Quebec'(20123) of type 'Province'
with parent locations 'Canada (Country)' and reach '5070000'. The search term
'Quebec' returned the location 'Quebec City'(1002624) of type 'City' with parent
locations 'Quebec (Province), Canada (Country), ' and reach '356000'.

これで、地域コード 20123 を使ってケベック州を、地域コード 1002624 を使ってケベックシティをターゲットに設定できます。

LocationCriterionService を使うと、特定の地域の親を取得できます。そのためには、セレクタ フィールドのリストに ParentLocations を追加します。たとえば、前述のコードでは、指定した地域(ケベックシティ)と、その親地域(カナダ)も返されました。この機能は、地域を階層的に表したリストを顧客に見せたい場合や、キャンペーンのターゲットとして地域を設定または除外するロジックを追加する場合に便利です。

なお、親地域を扱う際には、階層内での地域の displayType を勝手に決めつけないことが重要です。たとえば、米国では地域が州や市に区分されますが、この区分が世界のすべての国に当てはまるわけではありません。

地域名が少しでも正確にわかれば、LocationCriterionService を効果的に使用できます。なぜなら、指定された名前と一致する地域が検索されるためです。なお、大量の地域について地域コードを取得する場合は、ローカルなデータベースにリストを保存して、独自の地域検索ロジックを作った方が効率的な場合があります。地域のコードを簡単に調べたり、コードの一覧をダウンロードしたりするには、ターゲット表をご利用ください。この表は定期的に更新され、最新のターゲット地域情報が反映されています。

近隣地域を指定したターゲット設定

場合によっては、都市や国の単位よりも絞り込んでターゲットを指定する 必要があります。たとえば、スーパーマーケットの店舗から 10km 圏内に 絞って広告を掲載する場合です。こうした場合には、近隣地域ターゲットを使用できます。近隣地域ターゲットを作成するためのコードは、ターゲット地域を追加するためのコードと似ていますが、Location オブジェクトの代わりに Proximity オブジェクトを作成する必要があります。

// Create the address whose surrounding area you want to target.
Address myAddress = new Address();
address.setStreetAddress("38 avenue de l'Opéra");
address.setCityName("Paris");
address.setPostalCode("75002");
address.setCountryCode("FR");

// Use myAddress to create a Proximity object
Proximity proximity = new Proximity();
proximity.address = myAddress;
proximity.radiusDistanceUnits = ProximityDistanceUnits.KILOMETERS;
proximity.radiusInUnits = 10;

多角形地域を指定したターゲット設定

AdWords ではこれまで、多角形地域の指定によるキャンペーンのターゲット設定が 可能でしたが、この多角形ターゲット設定は、近隣地域ターゲット設定の導入に伴い サポートを終了しました。このため、現在は AdWords API で多角形地域を追加することは できません。ただし、既存のキャンペーンのターゲット地域を取得すると、 多角形ターゲット設定が返される場合があります。既存の多角形ターゲット設定の削除には、API を使用できます。

ターゲット地域の取得

キャンペーンのターゲット地域を取得するには、CampaignCriterionService.get() メソッドが使えます。返される結果を CriteriaType でフィルタすれば Location のみに絞り込めます。また、ページングを使用すれば、取得するターゲットの数を制限できます。

int offset = 0;

// Create selector.
Selector selector = new Selector();
selector.setFields(new String[] {"CampaignId", "Id", "CriteriaType", "LocationName"});
selector.setOrdering(new OrderBy[] {new OrderBy("Name", SortOrder.ASCENDING)});
selector.setPredicates(new Predicate[] {new Predicate("CriteriaType",
    PredicateOperator.EQUALS, new String[] {"LOCATION"})});
selector.setPaging(new Paging(offset, PAGE_SIZE));
CampaignCriterionPage page = null;
do {
  page = campaignCriterionService.get(selector);

  if (page.getEntries() != null) {
    // Display campaigns.
    for (CampaignCriterion campaignCriterion : page.getEntries()) {
      System.out.printf("Campaign criterion with campaign id '%s', criterion id '%s', "
          + "and type '%s' was found.\n", campaignCriterion.getCampaignId(),
        campaignCriterion.getCriterion().getId(),
        campaignCriterion.getCriterion().getCriterionType());
    }
    Thread.sleep(1000);
  } else {
    System.out.println("No campaign criteria were found.");
  }
  offset += PAGE_SIZE;
  selector.getPaging().setStartIndex(offset);
} while (offset < page.getTotalNumEntries());

なお、すべての国と地域をターゲットとするキャンペーンでは、ターゲット地域のリストは空になります。

ターゲット地域の更新

キャンペーンのターゲット地域を更新するには、既存のターゲット地域のリストを 取得して新しいターゲット地域のリストと比較する必要があります。 不要なターゲット地域を削除するには REMOVE 演算子を使い、 必要なターゲット地域を追加する(既存のキャンペーンにない場合)には ADD 演算子を使います。AdWords API ではこれまで SET 演算子を使って キャンペーンのターゲット地域を上書きできましたが、 現在はサポートされていません。そのため、キャンペーンの ターゲット地域を更新する際は、REMOVEADD を 組み合わせて使う必要があります。

ターゲット地域の除外

地域は除外することもできます。 この機能は、ターゲットにする地域のうち、一部を除外する場合に 役立ちます(日本全国をターゲットに設定し、東京だけを 除外する場合など)。特定の地域を除外するには、NegativeCampaignCriterion を作成し、その条件(criterion)を除外する地域として設定します。

// Add a negative campaign geo target.
NegativeCampaignCriterion negativeCriterion = new NegativeCampaignCriterion();
negativeCriterion.campaignId = campaignId;
negativeCriterion.criterion = locationToExclude;

ターゲット地域の詳細設定

AdWords では、広告を表示する基準として、ユーザーの所在地(LOP)または 関心のある地域(AOI)を指定できます。 たとえば、東京のみをターゲットにした花屋のキャンペーンで、キャンペーンの キーワードとして「花」を指定しているとします。このとき、神奈川在住のユーザーが「東京 花」と検索した場合、 ユーザーの LOP は神奈川、AOI は 東京となります。

広告を表示するかどうか判断する基準として、ユーザーの所在地(LOP)や関心のある地域(AOI)、あるいはその両方を使う場合は、キャンペーンに GeoTargetTypeSetting を追加します。

地域別の掲載結果レポート

地域によるターゲット設定のキャンペーンの効果を分析するには、次の 2 種類のレポートを作成して、 地域別の掲載結果レポートを取得します。

  1. 地域別の掲載結果レポート
  2. 条件別の掲載結果レポート CriteriaType=LOCATION または PROXIMITY でフィルタを設定し、特定のターゲット地域の掲載結果データを取得します。

詳しくは、レポートガイドをご覧ください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。