ターゲット地域

AdWords キャンペーンで高い成果を上げるには、適切なユーザーをターゲットに設定する必要があります。そこで、このガイドでは地域によるターゲット設定について詳しくご説明します。具体的には、AdWords API を使用してキャンペーンのターゲット地域を追加、取得、更新する方法のほか、ターゲット地域の詳細設定の概念(所在地や関心のある地域など)と、キャンペーンの地域別の掲載結果を分析する際に役立つレポートの作成方法についてもご説明します。

なお、このガイドのコード サンプルでは AdWords API Java ライブラリが使われています。その他のプログラミング言語のクライアント ライブラリについては、クライアント ライブラリの一覧をご確認ください。また、クライアント ライブラリはご利用をおすすめしますが、必須ではありません。API の呼び出しには、ご希望のプログラミング言語のどの SOAP キットでもご利用いただけます。

  1. 地域によるターゲット設定の重要性
  2. 地域によるターゲット設定: 地域指定
  3. 地域の場所コードの検索
  4. 地域によるターゲット設定: 近接地域指定
  5. 住所の経緯度の検索
  6. 地域によるターゲット設定: 多角形地域指定
  7. ターゲット地域の取得
  8. ターゲット地域の更新
  9. ターゲット地域の詳細設定
  10. 地域別の掲載結果レポート

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

AdWords キャンペーンで高い成果を上げるには、適切なユーザーをターゲットに設定する必要があります。地域によるターゲット設定をすると、特定の地域のユーザーに限定して広告を表示できます。たとえば、スーパーマーケットのチェーン店の広告を掲載するとします。この場合、地域によるターゲット設定をしなければ世界のすべての地域で広告が掲載され、チェーン店のない地域でもクリックが発生して、無駄な広告費用が発生する可能性があります。一方、地域によるターゲット設定をすると、チェーン店を出店している地域にのみ広告を掲載して、広告キャンペーンを効果的に運用できます。また、この設定を使用すると、出店先の近隣地域でスーパーマーケットを探しているユーザーにアプローチすることもできます。

AdWords API では、国や地域のほか、特定地点の近接地域を指定して広告のターゲットを設定できます。ここでは、これらの各オプションについて詳しく説明します。この AdWords オプションの概要については、こちらのヘルプセンター記事をご覧ください。

地域によるターゲット設定: 地域指定

AdWords API では、地域を指定してキャンペーンのターゲットを設定できます。地域としては、国、都道府県、都市、郵便番号など、AdWords のターゲット地域としてサポートされている地域であればどこでも指定できます。ターゲット設定可能な地域は、それぞれ固有のクライテリア ID で識別されます。

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

// 地域オブジェクトを作成します。地域の ID はドキュメントで確認するか、
// 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 はメキシコを示すコードです。

なお、場所の条件は、さまざまな理由により廃止される場合があります。たとえば、元の場所がより小さな(大きな)場所として再構成されたり、地政学的な変更があったりした場合などです。Location オブジェクトの targetingStatus フィールドを参照すると、その Location のステータス(ACTIVE(有効)、OBSOLETE(廃止)、PHASING_OUT(廃止予定))を確認できます。ターゲット地域の廃止予定の詳細については、こちらのブログ記事をご覧ください。

地域の場所コードの検索

前のセクションでご説明したように、ターゲット地域を設定するには、適切なコードを使用して 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[] {
  // 場所の名前は正確に一致する必要があり、EQUALS と IN のみが

  // サポートされます。
  new Predicate("LocationName", PredicateOperator.IN, locationNames),
  // 返された場所の名前のロケールを設定します。
  new Predicate("Locale", PredicateOperator.EQUALS, new String[] {"en"})
});

// get リクエストを行います。
LocationCriterion[] locationCriteria = locationCriterionService.get(selector);

// 結果として返された場所条件を表示します。
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());
}

/**
  * 親場所の文字列を作成するヘルプ機能です。
  *
  * パラメータ parents は親場所のリストです。
  * 親場所を表す文字列が一定の形式で返されます。
  */
 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 'C
ity' with parent locations 'Quebec (Province), Canada (Country), ' and reach '35
6000

これで場所コード 20123 を使ってケベック州、場所コード 1002624 を使ってケベック シティをターゲット設定できるようになります。

LocationCriterionService を使用すると、指定した場所の親場所をリクエストできます。それにはセレクタ フィールドのリストに ParentLocations を追加します。たとえば、前述のコードでは、指定した場所(ケベック シティ)とその親場所(カナダ)が返されます。この機能は、ユーザーに場所のリストを階層的に表示する場合や、キャンペーンのターゲット設定でターゲット場所を設定、除外するロジックを追加する場合に便利です。

なお、親場所を扱う際には、階層内における場所の displayType を勝手に決めつけないようにすることが重要です。たとえば、アメリカの地域の階層は州の下に都市がありますが、世界の国々の地域がすべてそのような階層になっているわけではありません。

指定する Location の名前が正確にわかっている場合は、LocationCriterionService を使用すると効率的です。一方、正確な名前がわからない場合や、大量の地域の場所域コードを取得する場合は、リストをデータベースにローカルに保存して、独自の場所ルックアップ ロジックを作成した方が効率的です。場所のコードを調べたり、コードの全リストをダウンロードする場合は、ターゲット表をご利用ください。この一覧表は定期的に更新され、最新のターゲット地域情報が反映されます。

地域によるターゲット設定: 近接地域指定

キャンペーンで場所によるターゲット設定を使用すると、地域を限定してキャンペーンを効果的に運用できますが、場合によってはターゲットのさらなる絞り込みが必要なこともあります。たとえば、スーパーマーケットの店舗から 10km 圏内に絞って広告を掲載したいといったケースです。こうした場合には、キャンペーンで近隣地域ターゲットを使用します。近隣地域ターゲットを作成するコードは、場所ターゲットを追加するコードとほぼ同じですが、次に示すように Location オブジェクトではなく Proximity オブジェクトを作成する必要があります。

Proximity proximity = new Proximity();
proximity.geoPoint = myGeoPoint;
proximity.radiusDistanceUnits = ProximityDistanceUnits.kmproximity.radiusInUnits = 10;

住所の経緯度の検索

Proximity によるターゲット設定を行うには、ターゲットとする住所の地理的位置が必要になります。ターゲットとする住所の経緯度を調べるには、GeoLocationService を使用して次のように記述します。

GeoLocationServiceInterface geoLocationService =
    new AdWordsServices().get(session, GeoLocationServiceInterface.class);

// 住所「38 avenue de l'Opéra, 75002 Paris, FR」の経緯度を調べます。
Address address = new Address();
address.setStreetAddress("38 avenue de l'Opéra");
address.setCityName("Paris");
address.setPostalCode("75002");
address.setCountryCode("FR");

// 地点のセレクタを作成します。
GeoLocationSelector selector = new GeoLocationSelector();
selector.setAddresses(new Address[] {address});

// 地理的位置を取得します。
GeoLocation[] geoLocationResult = geoLocationService.get(selector);
GeoPoint geoPoint = geoLocationResult[0].getGeoPoint();

LocationCriterionService の場合と同様に、キャンペーンで大量の住所をターゲットに設定する場合は、GeoLocationService で地理的位置を探すのではなく、ターゲット地点の経緯度をローカル データベースに保存すると効率的です。

地域によるターゲット設定: 多角形地域指定

AdWords ではこれまで、ポリゴン地域によるキャンペーンのターゲット設定が可能でしたが、このポリゴン ターゲット設定は、近接地域ターゲット設定の導入に伴い廃止されました。このため、現在は AdWords API でポリゴン ターゲットを追加することはできません。ただし、既存のキャンペーンのターゲット地域を取得すると、ポリゴン ターゲットが返される場合があります。こうした既存のポリゴン ターゲットについては、AdWords API で削除できます。

ターゲット地域の取得

キャンペーンのターゲット地域の取得には、CampaignCriterionService.get メソッドを使用できます。この場合は、返される結果を CriteriaType でフィルタして Location のみに絞り込み、paging を使用して取得するターゲットの数を制限します。実際の記述方法については、次のコード スニペットをご覧ください。

int offset = 0;

// セレクタを作成します。
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) {
    // キャンペーンを表示します。
    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 演算子によるキャンペーンのターゲット地域の上書きが可能でしたが、この機能のサポートは終了となりましたので、今後キャンペーンのターゲット地域を更新する場合は、REMOVE と ADD を組み合わせてご利用ください。

ターゲット地域の除外

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

// キャンペーンの除外地域ターゲットを追加します。
NegativeCampaignCriterion negativeCriterion = new NegativeCampaignCriterion();
negativeCriterion.campaignId = campaignId;
negativeCriterion.criterion = locationToExclude;

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

AdWords では、ユーザーの所在地や関心のある地域に基づいて広告を表示するかどうかを指定できます。たとえば、東京のみをターゲットに「花」というキーワードを設定してキャンペーンを展開している花屋の場合、名古屋のユーザーが「花 東京」で検索を行うと、名古屋がユーザーの所在地、東京が関心のある場所となります。

ユーザーの所在地や関心のある地域、またはその両方に基づいて広告を表示するかどうかを選択できるようにするには、キャンペーンに GeoTargetTypeSetting を追加します。この設定の詳細についてはこちらのブログ記事をご覧ください。

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

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

  1. 地域別の掲載結果レポートを利用できます。
  2. 条件レポートを作成し、CriteriaType として LOCATION か PROXIMITY を指定してフィルタすると、特定のターゲット地域に関する掲載結果データを取得できます。

AdWords API を使用してレポートを作成する方法の詳細については、こちらのガイドをご覧ください。

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

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