入札単価状況

入札単価状況によって、さまざまな入札状況での広告グループ、条件、キャンペーンの掲載結果を予測できます。これで得られた情報を使って、入札戦略を調整、最適化することができます。

API の入札単価状況サービスでは、入札に加えたさまざまな変更が、費用、インプレッション数、クリック数にどのような影響を与えるかを予測できます。AdWords ユーザー インターフェースに備わっている入札単価シミュレーションでも同様のことを行えます。

使用例

掲載開始から数週間が経っている広告があると仮定しましょう。この広告には、当初の予測や予算よりも、はるかに多くの費用がかかっています。

広告主様は、入札単価を少し下げたら結果はどう変わるか試してみたいはずです。広告の表示回数やクリック数はどれくらい減るのか。費用はどれくらい抑えられるのか。逆に、期待したようなインプレッション数やクリック数を獲得できていない場合は、入札単価をどのあたりに設定すれば対処できるのか。

入札単価状況は、このような状況を調査するのに役立ちます。入札単価状況を取得すると、広告が表示された期間を対象とした表示回数、クリック数、費用の予測が表示されます。

入札単価状況を使用すると、現在の入札単価での過去 1 週間の掲載結果の統計情報と一緒に、同じ期間に異なる入札単価を使用した場合をシミュレーションした掲載結果を確認することができます。

過去の掲載結果がどのように変わる可能性があったかを分析することで、今後の入札単価やキャンペーン単位の入札単価調整比をどのように調整するかを、十分な情報を得たうえで判断することができます。

要件

入札単価状況を使用するには、キャンペーンが次の要件を満たしている必要があります。

  • 予測を生成する際の基準となる情報を提供するための、実際に使用した条件、広告グループ、またはキャンペーンが存在している。
  • コンバージョン トラッキングが有効になっている。
  • アカウントがテスト アカウントではない。入札単価状況は過去の掲載結果に基づいて作成されますが、テスト アカウントでは広告が配信されないため、掲載結果履歴が存在しません。

入札単価状況は、検索ネットワークのみのキャンペーン、ディスプレイ ネットワークのみのキャンペーン、ショッピング キャンペーンでも使用できます。検索ネットワーク(ディスプレイ ネットワーク対応)の場合、返される情報は、対象のキャンペーンの検索ネットワーク部分に関連する情報のみです。

リクエストの実行

入札単価状況に関するデータを取得すると、API サービスから BidLandscape オブジェクトが返されます。このオブジェクトには、データの対象となっている期間、キャンペーン、広告グループ、条件のいずれかに関する情報が含まれています。期間は常に過去の日付になります。これは、入札単価状況が過去の同じ時期に同じ条件下で異なる入札単価またはキャンペーン単位の入札単価調整比を使用した場合に、広告の掲載結果がどのように変わるかを予測する機能であるためです。

また、BidLandscape には、複数の入札単価状況ポイントも含まれています。これらを基にして、この期間中に異なる入札単価やキャンペーン単位のモバイル用入札単価調整比を使用した場合に予測される掲載結果のヒストグラムが生成されます。

DataService を使用してリクエストできる入札単価またはモバイル用入札単価調整比の入札単価状況は 3 種類あります。 どの入札単価状況を選択するかは、入札単価を調整するレベル(条件、広告グループ、キャンペーン)によって決まります。 get() メソッドまたは query() メソッドには対象に合わせた名前が付けられています。

条件および広告グループの入札単価状況の取得

下の例では、入札単価が条件単位で設定されていると想定しています。 広告グループの入札単価状況を取得する場合のプロセスもほぼ同じです。

入札単価状況を取得するしくみは、他のクエリの場合とほぼ同じです。 必要なフィールドを選択し、対象とする広告グループや条件だけに制限されるように述語を設定して、get() または query() を呼び出すと、データを取得できます。

フィルタと選択が可能な有効なフィールドの一覧については、BidLandscapeLandscapePoint に関するリファレンス ドキュメントをご覧ください。

対象となるフィールドが BidLandscapeLandscapePoint のどちらのフィールドであっても、含めるセレクタや述語は同じです。 BidModifierTotalLocalClicksTotalLocalCostTotalLocalImpressionsRequiredBudget の各フィールドは、キャンペーンのモバイル用入札単価調整比の入札単価状況リクエストでのみサポートされており、BiddableConversionsBiddableConversionsValue広告グループと条件の入札単価状況リクエストでのみサポートされています。 データが返されると、フィールドは SOAP およびクライアント ライブラリの実装の適切な位置に自動的に配置されます。LandscapePoints のフィールドは、BidLandscape 内で返された LandscapePoint ごとに値が入力されます。

Java

// Get the DataService.
DataServiceInterface dataService = adWordsServices.get(session, DataServiceInterface.class);

// Create selector.
Selector selector =
    new SelectorBuilder()
        .fields(
            DataField.AdGroupId,
            DataField.CriterionId,
            DataField.StartDate,
            DataField.EndDate,
            DataField.Bid,
            DataField.BiddableConversions,
            DataField.BiddableConversionsValue,
            DataField.LocalClicks,
            DataField.LocalCost,
            DataField.LocalImpressions)
        .equals(DataField.AdGroupId, adGroupId.toString())
        .equals(DataField.CriterionId, criterionId.toString())
        .limit(PAGE_SIZE)
        .build();

CriterionBidLandscapePage page = dataService.getCriterionBidLandscape(selector);

C#

using (DataService dataService = (DataService) user.GetService(
    AdWordsService.v201802.DataService)) {

  // Create the selector.
  Selector selector = new Selector() {
    fields = new string[] {
      CriterionBidLandscape.Fields.AdGroupId, CriterionBidLandscape.Fields.CriterionId,
      CriterionBidLandscape.Fields.StartDate, CriterionBidLandscape.Fields.EndDate,
      BidLandscapeLandscapePoint.Fields.Bid, BidLandscapeLandscapePoint.Fields.LocalClicks,
      BidLandscapeLandscapePoint.Fields.LocalCost,
      BidLandscapeLandscapePoint.Fields.LocalImpressions,
      BidLandscapeLandscapePoint.Fields.BiddableConversions,
      BidLandscapeLandscapePoint.Fields.BiddableConversionsValue
    },
    predicates = new Predicate[] {
      Predicate.Equals(CriterionBidLandscape.Fields.AdGroupId, adGroupId),
      Predicate.Equals(CriterionBidLandscape.Fields.CriterionId, keywordId)
    },
    paging = Paging.Default
  };

page = dataService.getCriterionBidLandscape(selector);

Python

data_service = client.GetService('DataService', version='v201802')

# Construct bid landscape selector object and retrieve bid landscape.
selector = {
    'fields': ['AdGroupId', 'CriterionId', 'StartDate', 'EndDate', 'Bid',
               'BiddableConversions', 'BiddableConversionsValue',
               'LocalClicks', 'LocalCost', 'LocalImpressions'],
    'predicates': [
        {
            'field': 'AdGroupId',
            'operator': 'EQUALS',
            'values': [ad_group_id]
        },
        {
            'field': 'CriterionId',
            'operator': 'EQUALS',
            'values': [criterion_id]
        }
    ],
    'paging': {
        'startIndex': 0,
        'numberResults': PAGE_SIZE
    }
}

page = data_service.getCriterionBidLandscape(selector)

PHP

$dataService = $adWordsServices->get($session, DataService::class);

// Create a selector to select all keyword bid simulations for the
// specified ad group.
$selector = new Selector();
$selector->setFields(
    [
        'AdGroupId',
        'CriterionId',
        'StartDate',
        'EndDate',
        'Bid',
        'BiddableConversions',
        'BiddableConversionsValue',
        'LocalClicks',
        'LocalCost',
        'LocalImpressions'
    ]
);
$selector->setPredicates(
    [
        new Predicate('AdGroupId', PredicateOperator::IN, [$adGroupId])
    ]
);
$selector->setPaging(new Paging(0, self::PAGE_SIZE));

$page = $dataService->getCriterionBidLandscape($selector);

Perl

# Create predicates.
my $adgroup_predicate = Google::Ads::AdWords::v201802::Predicate->new({
    field    => "AdGroupId",
    operator => "IN",
    values   => [$ad_group_id]});
my $criterion_predicate = Google::Ads::AdWords::v201802::Predicate->new({
    field    => "CriterionId",
    operator => "IN",
    values   => [$keyword_id]});

# Create selector.
my $paging = Google::Ads::AdWords::v201802::Paging->new({
  startIndex    => 0,
  numberResults => PAGE_SIZE
});
my $selector = Google::Ads::AdWords::v201802::Selector->new({
    fields => [
      "AdGroupId",                "CriterionId",
      "StartDate",                "EndDate",
      "Bid",                      "BiddableConversions",
      "BiddableConversionsValue", "LocalClicks",
      "LocalCost",                "LocalImpressions"
    ],
    paging     => $paging,
    predicates => [$adgroup_predicate, $criterion_predicate]});

my $page =
  $client->DataService()
  ->getCampaignCriterionBidLandscape({serviceSelector => $selector});

Ruby

data_srv = adwords.service(:DataService, API_VERSION)

# Get keyword bid landscape.
selector = {
  :fields => ['AdGroupId', 'CriterionId', 'StartDate', 'EndDate', 'Bid',
      'BiddableConversions', 'BiddableConversionsValue', 'LocalClicks',
      'LocalCost', 'LocalImpressions'],
  :predicates => [
    {:field => 'AdGroupId', :operator => 'IN', :values => [ad_group_id]},
    {:field => 'CriterionId', :operator => 'IN', :values => [keyword_id]},
  ],
  :paging => {
    :start_index => 0,
    :number_results => PAGE_SIZE
  }
}

page = data_srv.get_criterion_bid_landscape(selector)

VB.NET

Using dataService As DataService = CType(user.GetService(
    AdWordsService.v201802.DataService), DataService)

  ' Create the selector.
  Dim selector As New Selector
  selector.fields = New String() {
    CriterionBidLandscape.Fields.AdGroupId, CriterionBidLandscape.Fields.CriterionId,
    CriterionBidLandscape.Fields.StartDate, CriterionBidLandscape.Fields.EndDate,
    BidLandscapeLandscapePoint.Fields.Bid, BidLandscapeLandscapePoint.Fields.LocalClicks,
    BidLandscapeLandscapePoint.Fields.LocalCost,
    BidLandscapeLandscapePoint.Fields.LocalImpressions,
    BidLandscapeLandscapePoint.Fields.BiddableConversions,
    BidLandscapeLandscapePoint.Fields.BiddableConversionsValue
  }

  selector.predicates = New Predicate() {
    Predicate.Equals(CriterionBidLandscape.Fields.AdGroupId, adGroupId),
    Predicate.Equals(CriterionBidLandscape.Fields.CriterionId, keywordId)
  }

  ' Select selector paging.
  selector.paging = Paging.Default

page = dataService.getCriterionBidLandscape(selector)

キャンペーンのモバイル用入札単価調整比の入札単価状況の取得

キャンペーン単位のモバイル用入札単価調整比の入札単価状況は、広告グループ単位または条件単位の入札単価の取得と同じ方法で取得できます。LandscapePoints のフィールドは、BidLandscape 内で返された LandscapePoint ごとに値が入力されます。 選択とフィルタが可能なフィールドについては、BidLandscapeLandscapePoint に関するリファレンス ドキュメントをご覧ください。 フィールドが BidLandscapeLandscapePoint のどちらのフィールドであっても、含めるセレクタや述語は同じです。

この例では、キャンペーン単位のモバイル用入札単価調整比入札単価状況を取得する方法を示しています。

Java

// Get the DataService.
DataServiceInterface dataService = adWordsServices.get(session, DataServiceInterface.class);

// Create selector.
Selector selector =
    new SelectorBuilder()
        .fields(
            DataField.BidModifier,
            DataField.CampaignId,
            DataField.CriterionId,
            DataField.StartDate,
            DataField.EndDate,
            DataField.LocalClicks,
            DataField.LocalCost,
            DataField.LocalImpressions,
            DataField.TotalLocalClicks,
            DataField.TotalLocalCost,
            DataField.TotalLocalImpressions,
            DataField.RequiredBudget)
        .equals(DataField.CampaignId, campaignId.toString())
        .limit(PAGE_SIZE)
        .build();

CriterionBidLandscapePage page = dataService.getCampaignCriterionBidLandscape(selector);

C#

using (DataService dataService = (DataService) user.GetService(
    AdWordsService.v201802.DataService)) {

  // Create selector.
  Selector selector = new Selector() {
    fields = new string[] {
      CriterionBidLandscape.Fields.CampaignId,
      CriterionBidLandscape.Fields.CriterionId,
      CriterionBidLandscape.Fields.StartDate,
      CriterionBidLandscape.Fields.EndDate,
      BidLandscapeLandscapePoint.Fields.LocalClicks,
      BidLandscapeLandscapePoint.Fields.LocalCost,
      BidLandscapeLandscapePoint.Fields.LocalImpressions,
      BidLandscapeLandscapePoint.Fields.TotalLocalClicks,
      BidLandscapeLandscapePoint.Fields.TotalLocalCost,
      BidLandscapeLandscapePoint.Fields.TotalLocalImpressions,
      BidLandscapeLandscapePoint.Fields.RequiredBudget,
      BidLandscapeLandscapePoint.Fields.BidModifier,
    },
    predicates = new Predicate[] {
      Predicate.Equals(CriterionBidLandscape.Fields.CampaignId, campaignId)
    },
    paging = Paging.Default
  };

Python

data_service = client.GetService('DataService', version='v201802')

# Get all the campaigns for this account.
selector = {
    'fields': ['CampaignId', 'CriterionId', 'StartDate', 'EndDate',
               'BidModifier', 'LocalClicks', 'LocalCost', 'LocalImpressions',
               'TotalLocalClicks', 'TotalLocalCost', 'TotalLocalImpressions',
               'RequiredBudget'],
    'paging': {
        'startIndex': 0,
        'numberResults': PAGE_SIZE
    },
    'predicates': [{
        'field': 'CampaignId', 'operator': 'IN', 'values': [campaign_id]
    }]
}

PHP

$dataService = $adWordsServices->get($session, DataService::class);

// Create a selector to select all campaign criterion bid modifiers for the
// specified campaign.
$selector = new Selector();
$selector->setFields(
    [
        'BidModifier',
        'CampaignId',
        'CriterionId',
        'StartDate',
        'EndDate',
        'LocalClicks',
        'LocalCost',
        'LocalImpressions',
        'TotalLocalClicks',
        'TotalLocalCost',
        'TotalLocalImpressions',
        'RequiredBudget'
    ]
);
$selector->setPredicates(
    [new Predicate('CampaignId', PredicateOperator::IN, [$campaignId])]
);
$selector->setPaging(new Paging(0, self::PAGE_SIZE));

Perl

# Create predicates.
my $campaign_predicate = Google::Ads::AdWords::v201802::Predicate->new({
    field    => "CampaignId",
    operator => "IN",
    values   => [$campaign_id]});
# Create selector.
my $paging = Google::Ads::AdWords::v201802::Paging->new({
  startIndex    => 0,
  numberResults => PAGE_SIZE
});
my $selector = Google::Ads::AdWords::v201802::Selector->new({
    fields => [
      "BidModifier",           "CampaignId",
      "CriterionId",           "StartDate",
      "EndDate",               "LocalClicks",
      "LocalCost",             "LocalImpressions",
      "TotalLocalClicks",      "TotalLocalCost",
      "TotalLocalImpressions", "RequiredBudget"
    ],
    paging     => $paging,
    predicates => [$campaign_predicate]});

Ruby

data_srv = adwords.service(:DataService, API_VERSION)

selector = {
  :fields => [
    'CampaignId',
    'CriterionId',
    'StartDate',
    'EndDate',
    'BidModifier',
    'LocalClicks',
    'LocalCost',
    'LocalImpressions',
    'TotalLocalImpressions',
    'TotalLocalClicks',
    'TotalLocalCost',
    'RequiredBudget'
  ],
  :predicates => [
    {:field => 'CampaignId', :operator => 'IN', :values => [campaign_id]}
  ],
  :paging => {
    :start_index => 0,
    :number_results => PAGE_SIZE
  }
}

VB.NET

Using dataService As DataService = CType(user.GetService(AdWordsService.v201802.DataService),
    DataService)

  ' Create selector.
  Dim selector As New Selector()
  selector.fields = New String() {
    CriterionBidLandscape.Fields.CampaignId,
    CriterionBidLandscape.Fields.CriterionId,
    CriterionBidLandscape.Fields.StartDate,
    CriterionBidLandscape.Fields.EndDate,
    BidLandscapeLandscapePoint.Fields.LocalClicks,
    BidLandscapeLandscapePoint.Fields.LocalCost,
    BidLandscapeLandscapePoint.Fields.LocalImpressions,
    BidLandscapeLandscapePoint.Fields.TotalLocalClicks,
    BidLandscapeLandscapePoint.Fields.TotalLocalCost,
    BidLandscapeLandscapePoint.Fields.TotalLocalImpressions,
    BidLandscapeLandscapePoint.Fields.RequiredBudget,
    BidLandscapeLandscapePoint.Fields.BidModifier
  }
  selector.predicates = New Predicate() {
    Predicate.Equals(CriterionBidLandscape.Fields.CampaignId, campaignId)
  }
  selector.paging = Paging.Default

結果のページング

CriterionBidLandscapePage[get|query]CriterionBidLandscape[get|query]CampaignCriterionBidLandscape によって返されるページ)と AdGroupBidLandscapePage[get|query]AdGroupBidLandscape によって返されるページ)の動作は、他の種類のページとは異なります。paging.startIndex >= page.totalNumEntries になるまで paging.startIndex をインクリメントしてリクエストを行う代わりに、入札単価状況では次のことを実施する必要があります。

  • 各レスポンス内にある内部入札単価状況ポイントの数だけ paging.startIndex をインクリメントします。
  • 最後のレスポンス内にある内部入札単価状況ポイントの数が、セレクタで指定した paging.numberResults(ページサイズ)未満になるまでリクエストを行います。

下の例は、この操作を実装する方法を示しています。

Java

// Display bid landscapes.
int landscapePointsInPreviousPage = 0;
int startIndex = 0;
do {
  // Offset the start index by the number of landscape points in the last retrieved page,
  // NOT the number of entries (bid landscapes) in the page.
  startIndex += landscapePointsInPreviousPage;
  selector.getPaging().setStartIndex(startIndex);

  // Reset the count of landscape points in preparation for processing the next page.
  landscapePointsInPreviousPage = 0;

  // Request the next page of bid landscapes.
  CriterionBidLandscapePage page = dataService.getCriterionBidLandscape(selector);

  if (page.getEntries() != null) {
    for (CriterionBidLandscape criterionBidLandscape : page.getEntries()) {
      System.out.printf(
          "Criterion bid landscape with ad group ID %d, criterion ID %d, "
              + "start date %s, end date %s, with landscape points:%n",
          criterionBidLandscape.getAdGroupId(),
          criterionBidLandscape.getCriterionId(),
          criterionBidLandscape.getStartDate(),
          criterionBidLandscape.getEndDate());

      for (BidLandscapeLandscapePoint bidLanscapePoint :
          criterionBidLandscape.getLandscapePoints()) {
        landscapePointsInPreviousPage++;
        System.out.printf(
            "\t{bid: %d clicks: %d cost: %d impressions: %d, biddable conversions: %.2f, "
                + "biddable conversions value: %.2f}%n",
            bidLanscapePoint.getBid().getMicroAmount(),
            bidLanscapePoint.getClicks(),
            bidLanscapePoint.getCost().getMicroAmount(),
            bidLanscapePoint.getImpressions(),
            bidLanscapePoint.getBiddableConversions(),
            bidLanscapePoint.getBiddableConversionsValue());
      }
      System.out.println(" was found.");
    }
  }
} while (landscapePointsInPreviousPage >= PAGE_SIZE);

C#

CriterionBidLandscapePage page = new CriterionBidLandscapePage();
int landscapePointsFound = 0;
int landscapePointsInLastResponse = 0;

try {
  do {
    // Get bid landscape for keywords.
    page = dataService.getCriterionBidLandscape(selector);
    landscapePointsInLastResponse = 0;

    // Display bid landscapes.
    if (page != null && page.entries != null) {
      foreach (CriterionBidLandscape bidLandscape in page.entries) {
        Console.WriteLine("Found criterion bid landscape with ad group id '{0}', " +
            "keyword id '{1}', start date '{2}', end date '{3}', and landscape points:",
            bidLandscape.adGroupId, bidLandscape.criterionId,
            bidLandscape.startDate, bidLandscape.endDate);
        foreach (BidLandscapeLandscapePoint bidLandscapePoint in
            bidLandscape.landscapePoints) {
          Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, impressions: {3}, " +
              "biddable conversions: {4:0.00}, biddable conversions value:{5:0.00}",
              bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks,
              bidLandscapePoint.cost.microAmount, bidLandscapePoint.impressions,
              bidLandscapePoint.biddableConversions,
              bidLandscapePoint.biddableConversionsValue);
          landscapePointsInLastResponse++;
          landscapePointsFound++;
        }
      }
    }
    // Offset by the number of landscape points, NOT the number
    // of entries (bid landscapes) in the last response.
    selector.paging.IncreaseOffsetBy(landscapePointsInLastResponse);
  } while (landscapePointsInLastResponse > 0);

Python

while more_pages:
  num_landscape_points = 0
  page = data_service.getCriterionBidLandscape(selector)

  if page and 'entries' in page:
    entries = page['entries']
    print 'Bid landscape(s) retrieved: %d.' % len(entries)

    for bid_landscape in entries:
      print ('Retrieved keyword bid landscape with ad group ID "%d", '
             'keyword ID "%d", start date "%s", end date "%s", '
             'with landscape points:' % (
                 bid_landscape['adGroupId'], bid_landscape['criterionId'],
                 bid_landscape['startDate'], bid_landscape['endDate']))
      for bid_landscape_point in bid_landscape['landscapePoints']:
        num_landscape_points += 1
        print ('  bid: %s => clicks: %s, cost: %s, impressions: %s, '
               'biddable conversions: %.2f, '
               'biddable conversions value: %.2f'
               % (bid_landscape_point['bid']['microAmount'],
                  bid_landscape_point['clicks'],
                  bid_landscape_point['cost']['microAmount'],
                  bid_landscape_point['impressions'],
                  bid_landscape_point['biddableConversions'],
                  bid_landscape_point['biddableConversionsValue']))

  # Need to increment by the total # of landscape points within the page,
  # NOT the number of entries (bid landscapes) in the page.
  offset += num_landscape_points
  selector['paging']['startIndex'] = str(offset)
  more_pages = num_landscape_points >= PAGE_SIZE

PHP

// Display bid landscapes.
$landscapePointsInPreviousPage = 0;
$startIndex = 0;
do {
    // Offset the start index by the number of landscape points in the last
    // retrieved page, NOT the number of entries (bid landscapes) in the page.
    $startIndex += $landscapePointsInPreviousPage;
    $selector->getPaging()->setStartIndex($startIndex);

    // Reset the count of landscape points in preparation for processing the
    // next page.
    $landscapePointsInPreviousPage = 0;

    // Retrieve keyword bid simulations one page at a time, continuing to
    // request pages until all of them have been retrieved.
    $page = $dataService->getCriterionBidLandscape($selector);

    // Print out some information for each bid landscape.
    if ($page->getEntries() !== null) {
        foreach ($page->getEntries() as $bidLandscape) {
            printf(
                "Found criterion bid landscape with ad group ID %d, criterion ID"
                . " %d, start date '%s', end date '%s', and landscape points:\n",
                $bidLandscape->getAdGroupId(),
                $bidLandscape->getCriterionId(),
                $bidLandscape->getStartDate(),
                $bidLandscape->getEndDate()
            );
            $landscapePointsInPreviousPage = count($bidLandscape->getLandscapePoints());
            foreach ($bidLandscape->getLandscapePoints() as $bidLandscapePoint) {
                printf(
                    "  bid: %d => clicks: %d, cost: %d, impressions: %d"
                    . ", biddable conversions: %.2f, biddable "
                    . "conversions value: %.2f\n",
                    $bidLandscapePoint->getBid()->getMicroAmount(),
                    $bidLandscapePoint->getClicks(),
                    $bidLandscapePoint->getCost()->getMicroAmount(),
                    $bidLandscapePoint->getImpressions(),
                    $bidLandscapePoint->getBiddableConversions(),
                    $bidLandscapePoint->getBiddableConversionsValue()
                );
            }
            print "\n";
        }
    }
} while ($landscapePointsInPreviousPage >= self::PAGE_SIZE);

Perl

# Display bid landscapes.
my $landscape_points_in_previous_page = 0;
my $start_index                       = 0;
do {
  # Offset the start index by the number of landscape points in the last
  # retrieved page, NOT the number of entries (bid landscapes) in the page.
  $start_index += $landscape_points_in_previous_page;
  $selector->get_paging()->set_startIndex($start_index);

  # Reset the count of landscape points in preparation for processing the
  # next page.
  $landscape_points_in_previous_page = 0;

  # Request the next page of bid landscapes.
  my $page =
    $client->DataService()
    ->getCampaignCriterionBidLandscape({serviceSelector => $selector});

  if ($page->get_entries()) {
    foreach my $criterion_bid_landscape (@{$page->get_entries()}) {
      printf "Criterion bid landscape with ad group ID %d, criterion ID " .
        " %d, start date %s, end date %s, with landscape points:\n",
        $criterion_bid_landscape->get_criterionId(),
        $criterion_bid_landscape->get_startDate(),
        $criterion_bid_landscape->get_endDate();
      foreach my $bid_landscape_point (
        @{$criterion_bid_landscape->get_landscapePoints()})
      {
        $landscape_points_in_previous_page++;
        printf "  bid: %d => clicks: %d, cost: %d, impressions: %d" .
          ", biddable conversions: %.2f, biddable " .
          "conversions value: %.2f\n",
          $bid_landscape_point->get_bid()->get_microAmount(),
          $bid_landscape_point->get_clicks(),
          $bid_landscape_point->get_cost()->get_microAmount(),
          $bid_landscape_point->get_impressions(),
          $bid_landscape_point->get_biddableConversions(),
          $bid_landscape_point->get_biddableConversionsValue();
      }
      printf(" was found.");
    }
  }
} while ($landscape_points_in_previous_page >= PAGE_SIZE);

Ruby

start_index = 0
landscape_points_in_previous_page = 0
begin
  # Offset the start index by the number of landscape points in the last
  # retrieved page, NOT the number of entries (bid landscapes) in the page.
  start_index += landscape_points_in_previous_page
  selector[:paging][:start_index] = start_index

  # Reset the count of landscape points in preparation for processing the
  # next page.
  landscape_points_in_previous_page = 0

  # Request the next page of bid landscapes.
  page = data_srv.get_criterion_bid_landscape(selector)

  if page and page[:entries]
    puts "Bid landscape(s) retrieved: %d." % [page[:entries].length]
    page[:entries].each do |bid_landscape|
      puts ("Retrieved keyword bid landscape with ad group ID %d" +
          ", keyword ID %d, start date '%s', end date '%s'" +
          ", with landscape points:") %
          [bid_landscape[:ad_group_id], bid_landscape[:criterion_id],
          bid_landscape[:start_date], bid_landscape[:end_date]]
      bid_landscape[:landscape_points].each do |point|
        landscape_points_in_previous_page += 1
        puts ("\t%d => clicks: %d, cost: %d, impressions: %d, biddable " +
            "conversions: %.2f, biddable conversions value: %.2f") %
            [point[:bid][:micro_amount], point[:clicks],
            point[:cost][:micro_amount], point[:impressions],
            point[:biddable_conversions], point[:biddable_conversions_value]]
      end
    end
  end
end while landscape_points_in_previous_page >= PAGE_SIZE

VB.NET

Dim page As New CriterionBidLandscapePage

Dim landscapePointsFound As Integer = 0
Dim landscapePointsInLastResponse As Integer = 0

Try
  Do
    ' Get bid landscape for keywords.
    page = dataService.getCriterionBidLandscape(selector)
    landscapePointsInLastResponse = 0

    ' Display bid landscapes.
    If ((Not page Is Nothing) AndAlso (Not page.entries Is Nothing)) Then
      Dim i As Integer = selector.paging.startIndex

      For Each bidLandscape As CriterionBidLandscape In page.entries
        Console.WriteLine("Found keyword bid landscape with ad group id ""{0}"", " &
            "keyword id ""{1}"", start date ""{2}"", end date ""{3}"", and " &
            "landscape points:", bidLandscape.adGroupId,
            bidLandscape.criterionId, bidLandscape.startDate, bidLandscape.endDate)
        For Each bidLandscapePoint As BidLandscapeLandscapePoint _
            In bidLandscape.landscapePoints
          Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, impressions: {3}, " &
              "biddable conversions: {4:0.00}, biddable conversions value:{5:0.00}",
              bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks,
              bidLandscapePoint.cost.microAmount, bidLandscapePoint.impressions,
              bidLandscapePoint.biddableConversions,
              bidLandscapePoint.biddableConversionsValue)
          landscapePointsInLastResponse += 1
          landscapePointsFound += 1
        Next
      Next
    End If

    ' Offset by the number of landscape points, NOT the number
    ' of entries (bid landscapes) in the last response.
    selector.paging.IncreaseOffsetBy(landscapePointsInLastResponse)
  Loop While (landscapePointsInLastResponse > 0)

結果の解釈

結果には、さまざまな入札単価と、それぞれで予測される掲載結果が記載されています。 下記は、上記のようなリクエストを行った場合に取得される XML レスポンスの一例です。

<landscapePoints>
  <bid>
    <ComparableValue.Type>Money</ComparableValue.Type>
    <microAmount>990000</microAmount>
  </bid>
  <clicks>278000</clicks>
  <cost>
    <ComparableValue.Type>Money</ComparableValue.Type>
    <microAmount>14500000000</microAmount>
  </cost>
  <impressions>648000</impressions>
  <promotedImpressions>0</promotedImpressions>
</landscapePoints>

上記には、LandscapePoints から取得できる要素がすべて示されています。promotedImpressions の値は、インプレッションが検索ページ内で「昇格した」位置(ページの上部)に表示された回数を表しています。

上記の XML スニペットには LandscapePoint が 1 つ示されていますが、各 BidLandscape にはこれらのポイントが複数含まれています。それぞれのポイントには、入札単価またはモバイル用入札単価調整比の値が設定されており、対応する統計情報は変更された入札単価または入札単価調整比を反映するように調整されています。結果をどのように解釈するかは広告主様次第ですが、取得したデータは入札単価またはモバイル用入札単価調整比の調整が掲載結果にどのような影響を与えるかを判断する際に役立ちます。

リソース

コードサンプル

各言語のクライアント ライブラリOptimization フォルダには、キーワード単位とキャンペーン単位の入札単価調整比シミュレーションを取得するためのコードサンプル全文があります。

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

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