コンバージョンのトラッキングとインポート

AdWords における「コンバージョン」とは、ユーザーが広告をクリックした後やディスプレイ ネットワークの広告を目にした後に、特定のアクション(商品の購入、モバイルアプリのインストール、メール配信の登録など)を完了することを指します。

広告を見たりクリックしたりしてからのユーザーの行動を分析するのに役立つのが「コンバージョン トラッキング」です。AdWords には、それぞれのコンバージョン形態に応じたコンバージョン トラッカーが用意されており、電話問い合わせ、商品の購入、モバイルアプリのインストールなど、さまざまなユーザー行動をトラッキングすることができます。

このガイドでは、コンバージョン トラッカーの種類と使用方法について説明します。また、API を利用してオフライン コンバージョンを AdWords にインポートする方法についても解説します。

コンバージョン トラッカーの種類

コンバージョンを測定するには、測定するコンバージョン アクションの種類に応じた ConversionTracker を作成します。たとえばオンライン購入と電話問い合わせとでは、使用するコンバージョン トラッカーが異なります。

また、多くのコンバージョンの種類では、コンバージョン トラッカーの作成以外にも事前の準備が必要となります。たとえば、ウェブサイトでのコンバージョン アクションをトラッキングするには、AdWordsConversionTracker を作成するとともに、タグと呼ばれるコードをウェブサイトのコンバージョン ページに追加する必要があります。

以下、各種コンバージョン トラッカーについて説明します。

通話コンバージョン

電話番号表示オプションを通して発生した電話問い合わせをトラッキングする際は、AdCallMetricsConversion というトラッカーを使用します。この種の電話問い合わせには AdWords 転送電話番号が使用され、コンバージョン トラッカーの指定は電話番号表示オプションの FeedItem で行います。この種類のコンバージョンは、AdWords 管理画面では「広告経由の通話数」と呼ばれます。

通話コンバージョンをトラッキングするには、電話番号表示オプションの FeedItem で、CONVERSION TYPE IDプレースホルダ タイプを使ってトラッカーの種類を指定します。

通話コンバージョンは、通話時間が指定の秒数(デフォルトでは 60 秒)を超えた場合にカウントされます。

ウェブサイトでのコンバージョン

AdWordsConversionTracker トラッカーは、ウェブサイトで発生する何種類かのコンバージョンをカバーします。具体的なコンバージョンの種類は、API では trackingCodeType フィールドによって区別します。

下の表は、AdWords 管理画面におけるコンバージョンの「発生元」にそれぞれ対応する API パラメータを示したものです。

trackingCodeType AdWords 管理画面での「発生元」
WEBPAGE ウェブサイト
WEBPAGE_ONCLICK クリック
CLICK_TO_CALL 電話番号のクリック数
--- アナリティクス(ログ解析)

ウェブサイト」と「電話番号のクリック数」に対応するコンバージョンをトラッキングするには、ConversionTrackerService を利用してコード スニペットを取得し、コンバージョン アクションの発生を検出するページ(購入確認ページ、連絡先登録ページなど)に設置する必要があります。

CLICK_TO_CALL タイプは、電話(通話)そのものをトラッキングするわけではない点で AdCallMetricsConversion と異なります。こちらでトラッキングされるのは、モバイル端末での電話番号のクリックです。電話そのものをトラッキングする AdWords 転送電話番号を利用できない場合に役立ちます。

アプリ コンバージョン

AppConversion トラッカーは、Android および iOS アプリのインストールとアプリ内アクションの両方をカバーします。下の表は、AdWords 管理画面におけるコンバージョンの「発生元」にそれぞれ対応する API パラメータを示したものです。

appPlatform appConversionType AdWords 管理画面での「発生元」
ITUNES FIRST_OPEN iOS アプリのインストール(初回起動)
ITUNES IN_APP_PURCHASE iOS のアプリ内アクション
ANDROID_MARKET DOWNLOAD Android アプリのインストール(Google Play)
ANDROID_MARKET FIRST_OPEN Android アプリのインストール(初回起動)
ANDROID_MARKET IN_APP_PURCHASE Android のアプリ内アクション

appConversionType として FIRST_OPEN を指定した場合、appPostbackUrl を提供することで、ユーザーがアプリを初めて起動した際に即座に確認できます。詳しくは、Android アプリ用のコンバージョン トラッキング ガイドをご覧ください。

アップロード クリック コンバージョン

UploadConversion は、AdWords 管理画面でコンバージョンの発生元として [インポート]、[クリックによるコンバージョン] の順に選択した場合のコンバージョンに対応します。ウェブの管理画面で作成した場合、そのアカウントでは自動的に自動タグ設定が有効になりますが、API から作成した場合はこの処理は行われません。API を利用してコンバージョン トラッカーを作成する場合は、CustomerService を使って自動タグ設定を有効にしてください。自動タグ設定が有効になっていないと、クリックに対応するコンバージョンのアップロードに必要な GCLID パラメータが得られません。

UploadConversion の作成が完了すると、OfflineConversionFeedService を使ってクリックに対応するコンバージョンをアップロードできます。詳しくは、後述のクリック コンバージョンのインポートをご覧ください。

アップロード通話コンバージョン

UploadCallConversion は、AdWords 管理画面でコンバージョンの発生元として [インポート]、[通話によるコンバージョン] の順に選択した場合のコンバージョンに対応します。

UploadCallConversion の作成が完了すると、OfflineCallConversionFeedService を使って通話に対応するコンバージョンをアップロードできます。詳しくは、後述の通話コンバージョンのインポートをご覧ください。

ウェブサイトからの通話

WebsiteCallMetricsConversion は、AdWords 管理画面における「ウェブサイトからの通話」に対応します。

AdCallMetricsConversion と異なり、このトラッカーでは、AdWords 転送電話番号を取得するために、ウェブサイトにコード スニペットを追加する必要があります。AdWords 転送電話番号は、ウェブサイトに記載の電話番号への通話をトラッキングするため動的に割り当てられる番号です。また、電話番号表示オプションの設定を行い、サイト経由の通話をトラッキングしたいキャンペーンや広告グループに追加する必要があります。

システム共通のデフォルト コンバージョン トラッカー

AdWords には、タグを必要としない、システム共通のデフォルト コンバージョン トラッカーがいくつか用意されています。これらのトラッカーでは、名前、値などさまざまなフィールドにデフォルト設定が設けられています。

こういったデフォルトのコンバージョン トラッカーの設定を編集したい場合は、同じサブタイプの ConversionTracker を新たに作成し、作成した ConversionTracker オブジェクトの originalConversionTypeId フィールドに、システム定義のトラッカーの conversionTypeId を指定します(システム共通のコンバージョン トラッカーのコピーを自分のアカウントに作成して編集する形です)。こうすることで、アカウント内でシステム共通のコンバージョン トラッカーが使用されていた部分はすべて、新たに作成したコンバージョン トラッカー(originalConversionTypeId として元のトラッカーの ID が指定されたもの)に置換されます。レポート内のコンバージョン データについても同様です。

1 つのシステム定義されたコンバージョンの種類から、複数の ConversionTracker を作成することはできません。すでに使用されているシステム定義コンバージョン トラッカーの ID を originalConversionTypeId に指定した ConversionTracker を作成しようとすると、処理が失敗します。つまり、あるシステム共通コンバージョン トラッカーを一度編集すると、以降そのアカウントでは、オリジナルのトラッカーではなく編集済みのコピーを使用することになります。

たとえば電話番号表示オプションの場合、アカウント内でシステム共通の AdCallMetricsConversion を使用していた電話番号表示オプションはすべて、作成した新しいトラッカーを代わりに使用することになります。レポートでも、システム共通のコンバージョンの種類のデータが表示されていた箇所はすべて、新しいトラッカーのデータに変更されます。

下の表は、システム共通のデフォルト コンバージョン トラッカーとその ID をすべて示したものです。

ConversionTracker Name conversionTypeId
AdCallMetricsConversion 広告経由の通話数 179
AppConversion Android でのダウンロード数 214

デフォルトの AppConversion は、App ID を指定できないことが特徴です。このトラッカーでは、より具体的な AppConversion を持たない Google Play アプリのコンバージョンがすべて収集されます。

クロスアカウント コンバージョン トラッキング

クロスアカウント コンバージョン トラッキングを使用している場合、ConversionTrackerService は次のコンバージョンの種類を返します。

  1. クライアント センター(MCC)アカウントによって定義されたコンバージョンの種類のうち、クロスアカウント コンバージョン トラッキング用のアカウントで使用されているものすべて。
  2. データが発生したコンバージョンの種類すべて。これには、システム定義のコンバージョンの種類や、MCC アカウントが管理するコンバージョンの種類(その後リンクが解除された場合も含む)が含まれます。
  3. アカウント内で定義したコンバージョンの種類すべて(リンク済みの Google アナリティクス ビューで作成した目標やトランザクションを含む)。これには、AdWords にインポートされていないコンバージョンの種類(HIDDEN ステータスが付与され、ウェブの AdWords 管理画面からのみインポート可能)も含まれます。

クロスアカウント コンバージョン トラッカーの作成やクエリは API 経由で行うことができますが、MCC アカウントから、使用するアカウントのクロスアカウント コンバージョン トラッキングを有効にしておく必要があります。詳しくはこちらのヘルプセンター記事をご覧ください。

従来は、[コンバージョン] 列のデータには、同じデバイスで発生したコンバージョンしか含まれませんでしたが、現在はコンバージョン トラッキング設定optimizeOnEstimatedConversions プロパティを使って、デバイスをまたいだコンバージョンを [コンバージョン] 列のデータに含められるようになっています。この場合、コンバージョン重視の自動入札戦略(目標コンバージョン単価(CPA)、目標広告費用対効果(ROAS)、拡張クリック単価(eCPC)など)でも、デバイスをまたいだコンバージョンが最適化の基準として使用されます。

レポートで利用可能なコンバージョン フィールド

レポートで利用可能なコンバージョン フィールドを使用すると、アカウント、キャンペーン、広告グループのコンバージョン データを取得できます。

次の表は、よく使用されるコンバージョン関連のフィールドの例を示したものです。

Conversions とその派生フィールド

フィールド名 説明
Conversions 入札の対象にするコンバージョン アクションを反映した、コンバージョン関連レポートの主要フィールドです。excludeFromBidding フィールドが false に設定されたコンバージョン アクション(ConversionTracker)のみが含まれます。
ConversionRate Conversions を、コンバージョン トラッキング可能なクリックの総数で割ったものです。広告に対するユーザーのアクションが、excludeFromBidding フィールドが false に設定されたコンバージョンにつながっている平均的な頻度を表す指標です。
ConversionValue excludeFromBidding フィールドが false に設定されたコンバージョン アクション(ConversionTracker)がもたらす価値(コンバージョン値)の合計です。
CostPerConversion 費用の総額を Conversions で割ったものです。
ValuePerConversion ConversionValueConversions で割ったものです。

AllConversions とその派生フィールド

フィールド名 説明
AllConversions excludeFromBidding の値を問わず、AdWords で得られたすべてのコンバージョンの合計です。すべての発生元(ウェブサイト、クロスデバイス、通話など)のコンバージョンを含みます。
AllConversionRate AllConversions を、コンバージョン トラッキング可能なクリックの総数で割ったものです。広告に対するユーザーのアクションが、平均してどれくらいの頻度でコンバージョンにつながっているかを表す指標です。
AllConversionValue すべてのコンバージョンがもたらす価値(コンバージョン値)を合計したものです。excludeFromBidding の値を問わず、ウェブサイト、クロスデバイス(デバイスをまたいだコンバージョン)、通話の各コンバージョン、コンバージョン アクション(ConversionTracker)をすべて含みます。
CostPerAllConversion 費用の総額を AllConversions で割ったものです。
ValuePerAllConversion AllConversionValueAllConversions で割ったものです。

CrossDeviceConversions

フィールド名 説明
CrossDeviceConversions ユーザーが広告に対してなんらかのアクション(テキスト広告のクリックや動画広告の視聴など)を行った後に、別のデバイスやブラウザからコンバージョンを達成した回数です。AllConversions フィールドの値には、CrossDeviceConversions が含まれています。

コンバージョンに関連付けられた「現在のモデル」列

AdWords でコンバージョン アクションの attributionModelType フィールドによって変更されるのは、それ以降の [コンバージョン] 列と [すべてのコンバージョン] 列でのコンバージョンのカウント方法のみです。選択したアトリビューション モデルを過去のデータに適用した場合に結果がどのようになるかを確認するには、次の「現在のモデル」列を使用します。これらの列のデータを通常のコンバージョン トラッキングの列のデータと比べることで、現在のアトリビューション モデルを使うとデータがどのように変化するかを理解できます。

フィールド名 説明
CostPerCurrentModelAttributedConversion 現在のアトリビューション モデルに基づく過去の CostPerConversion データ。
CurrentModelAttributedConversionValue 現在のアトリビューション モデルに基づく過去の ConversionValue データ。
CurrentModelAttributedConversions 現在のアトリビューション モデルに基づく過去の Conversions データ。
ValuePerCurrentModelAttributedConversion 現在のアトリビューション モデルに基づく過去の ValuePerConversion データ。

クリック コンバージョンのインポート

AdWords API を使ってオフライン コンバージョンを AdWords にアップロードすれば、クリックとコンバージョンの関連付けをより柔軟に行うことができます。これにより、オンライン広告がオフラインでの購入(電話での購入や、営業担当者を介した購入)につながったケースをトラッキングすることが可能です。

このセクションでは、AdWords API を使って、オフライン コンバージョンのインポートに使用するフィードを組み立てる方法を説明します。

初期設定

まず、インポートするコンバージョンの種類を作成します。この手順は、コンバージョンのクラス(classification)それぞれについて実施する必要があります。作成は AdWords 管理画面で行えるほか、次のコードでも可能です。

UploadConversion uploadConversion = new UploadConversion();
// Set an appropriate category. This field is optional, and will be set to
// DEFAULT if not mentioned.
uploadConversion.setCategory(ConversionTrackerCategory.LEAD);
uploadConversion.setName(conversionName);
uploadConversion.setViewthroughLookbackWindow(30);
uploadConversion.setCtcLookbackWindow(90);

// Optional: Set the default currency code to use for conversions
// that do not specify a conversion currency. This must be an ISO 4217
// 3-character currency code such as "EUR" or "USD".
// If this field is not set on this UploadConversion, AdWords will use
// the account's currency.
uploadConversion.setDefaultRevenueCurrencyCode("EUR");

// Optional: Set the default revenue value to use for conversions
// that do not specify a conversion value. Note that this value
// should NOT be in micros.
uploadConversion.setDefaultRevenueValue(2.50);

ConversionTrackerOperation uploadConversionOperation = new
    ConversionTrackerOperation();
uploadConversionOperation.setOperator(Operator.ADD);
uploadConversionOperation.setOperand(uploadConversion);

ConversionTrackerReturnValue conversionTrackerReturnValue =
    conversionTrackerService.mutate(
        new ConversionTrackerOperation[] {uploadConversionOperation});

このコードでは、ConversionTrackerService を使って UploadConversion オブジェクトを作成します。conversionName はこのコンバージョン イベントの識別に使用するため、一意でなければなりません。

インポートするコンバージョンの種類を作成したら、ウェブサイトとリード トラッキング システムが GCLID(AdWords 広告からサイトに流入するクリックのそれぞれに付与される一意な ID)を捕捉、保存できるようにする必要があります。また、GCLID が URL パラメータとしてサイトに渡されるよう、自動タグ設定を有効にします。これらの手順について詳しくは、オフライン コンバージョンのトラッキングに関する概要をご覧ください。

オフライン コンバージョンのアップロード

UploadConversion オブジェクトを作成したら、オフライン コンバージョンをそのオブジェクトと関連付けるため、GCLID、コンバージョンの日時(およびタイムゾーン ID)、コンバージョン名、そして必要な場合はコンバージョン値とコンバージョンの通貨を、OfflineConversionFeedService に渡す必要があります。コードは次のようになります。

List<OfflineConversionFeed> conversions = Lists.newArrayList();

// Offline conversion #1
OfflineConversionFeed conversion1 = new OfflineConversionFeed();
conversion1.setConversionName(conversionName1);
conversion1.setConversionTime(conversionTime1); // string format: "yyyyMMdd HHmmss tz"
conversion1.setGoogleClickId(gclId1);

// Optional: Set the conversion value.
conversion1.setConversionValue(conversionValue1);

// Optional: Set the conversion currency to an ISO 4217 3-character currency code
// such as "EUR" or "USD". If this field is not set, then AdWords will assume
// the conversion's value is in the default currency of the tracker.
conversion1.setConversionCurrencyCode(conversionCurrency1);

conversions.add(conversion1);

// Offline conversion #2
OfflineConversionFeed conversion2 = new OfflineConversionFeed();
conversion2.setConversionName(conversionName2);
conversion2.setConversionTime(conversionTime2);
conversion2.setGoogleClickId(gclId2);
conversion2.setConversionValue(conversionValue2);
conversion2.setConversionCurrencyCode(conversionCurrency2);

conversions.add(conversion2);

// Add additional conversions to the conversions list...

List<OfflineConversionFeedOperation> conversionOperations = Lists.newArrayList();
for (OfflineConversionFeed conversion : conversions) {
  OfflineConversionFeedOperation offlineConversionOperation = new OfflineConversionFeedOperation();
  offlineConversionOperation.setOperator(Operator.ADD);
  offlineConversionOperation.setOperand(conversion);

  conversionOperations.add(offlineConversionOperation);
}

OfflineConversionFeedReturnValue offlineConversionReturnValue = offlineConversionFeedService
    .mutate(conversionOperations.toArray(
        new OfflineConversionFeedOperation[conversionOperations.size()]));

検証規則

OfflineConversionFeed をアップロードする際は、要件がいくつかあります。

OfflineConversionError.INVALID_CONVERSION_TYPE エラーの発生を避けるため、conversionName は次の条件を満たす形で UploadConversion を参照する必要があります。

  • クリックの時点で、UploadConversionstatusENABLED になっていること。

  • クリックの時点で、UploadConversion が、クリックが帰属する AdWords アカウントの有効なコンバージョン アカウントに存在していること。クリックの時点で、アカウントがクロスアカウント コンバージョン トラッキングを使用していなかった場合、AdWords はコンバージョンのアップロードに使用されたアカウントで UploadConversion を探します。アカウントの有効なコンバージョン トラッキング アカウントは、管理画面の [運用ツール] > [コンバージョン トラッキング] で確認できますが、これはあくまで現時点で有効なコンバージョン トラッキング アカウントであることに注意しましょう。クリック時点の有効なコンバージョン トラッキング アカウントとは異なる可能性もあります。

これに加えて次の条件を満たす必要があります。

  • OfflineConversionError.CONVERSION_PRECEDES_CLICK エラーを避けるため、conversionTime はクリックよりも後でなければなりません。

  • OfflineConversionError.EXPIRED_CLICK エラーを避けるため、conversionTime は UploadConversion オブジェクトに指定したクリックスルー コンバージョンの計測期間よりも前にする必要があります。

  • conversionValue は 0 以上でなければなりません。

  • conversionTime にはタイムゾーン ID が必要です。タイムゾーン ID は有効なタイムゾーンに対応するものであれば、どのタイムゾーン ID でもかまいません。また、アカウントのタイムゾーンと一致する必要もありません。

ヒント

OfflineConversionFeed を作成する際は次の点に留意しましょう。

  • アップロード操作は分割不可能なものとして扱われます。つまり、GCLID が無効であったり古すぎたりするコンバージョンがある場合は、他のコンバージョンもアップロードされません。こうした状況を避けるには、Partial Failure を使用します。

  • 重複する(GCLID、名前、日時が同一の)コンバージョンをアップロードすることは認められていますが、記録されるのは最初のインスタンスのみです。

  • コンバージョンはアップロード リクエストの送信時ではなく、元のクリックの日付で登録されます。

  • UploadConversion は、作成後 6 時間経ってからアップロードすることをおすすめします。

  • インポートされたコンバージョンのデータが AdWords アカウントに表示されるまで、最大 3 時間かかります。

コードサンプル

クライアント ライブラリRemarketing フォルダには、オフライン コンバージョンのアップロードのコードサンプルが格納されています。

通話コンバージョンのインポート

AdWords API を使ってオフライン通話コンバージョンを AdWords にアップロードすれば、電話とコンバージョンの関連付けをより柔軟に行うことができます。

このセクションでは、AdWords API を使って、オフライン通話コンバージョンのインポートに使用するフィードを組み立てる方法を説明します。

初期設定

まず、オフライン通話コンバージョン用のコンバージョン トラッカーを作成します。作成は AdWords 管理画面で行えるほか、次のコードでも可能です。コードでは、UploadCallConversion を作成します。作成プロセスは、クリック コンバージョンのインポート初期設定セクションの例とほぼ同様です。例で UploadConversion となっている箇所を UploadCallConversion に置き換えてください。

オフライン通話コンバージョンのアップロード

UploadCallConversion オブジェクトを作成したら、オフライン通話コンバージョンをそのオブジェクトと関連付けるため、発信者 ID、コンバージョンの日時(およびタイムゾーン ID)、コンバージョン名、そして必要な場合はコンバージョン値とコンバージョンの通貨を、OfflineCallConversionFeedService に渡す必要があります。コードは次のようになります。

Java

public static void runExample(
    AdWordsServicesInterface adWordsServices,
    AdWordsSession session,
    String callerId,
    String callStartTime,
    String conversionName,
    String conversionTime,
    double conversionValue)
    throws Exception {

  // Get the OfflineCallConversionFeedService.
  OfflineCallConversionFeedServiceInterface offlineCallConversionFeedService =
      adWordsServices.get(session, OfflineCallConversionFeedServiceInterface.class);

  // Associate offline call conversions with the existing named conversion tracker. If this
  // tracker was newly created, it may be a few hours before it can accept conversions.
  OfflineCallConversionFeed feed = new OfflineCallConversionFeed();
  feed.setCallerId(callerId);
  feed.setCallStartTime(callStartTime);
  feed.setConversionName(conversionName);
  feed.setConversionTime(conversionTime);
  feed.setConversionValue(conversionValue);

  OfflineCallConversionFeedOperation offlineCallConversionOperation =
      new OfflineCallConversionFeedOperation();
  offlineCallConversionOperation.setOperator(Operator.ADD);
  offlineCallConversionOperation.setOperand(feed);

  // This example uploads only one call conversion, but you can upload multiple call conversions
  // by passing additional operations.
  OfflineCallConversionFeedReturnValue offlineCallConversionReturnValue =
      offlineCallConversionFeedService.mutate(
          new OfflineCallConversionFeedOperation[] {offlineCallConversionOperation});

  // Display results.
  for (OfflineCallConversionFeed feedResult : offlineCallConversionReturnValue.getValue()) {
    System.out.printf(
        "Uploaded offline conversion value of %.4f for caller ID '%s'.%n",
        feedResult.getConversionValue(), feedResult.getCallerId());
  }
}

C#

public void Run(AdWordsUser user, String conversionName, String callStartTime, String callerId,
    String conversionTime, double conversionValue) {
  // Get the OfflineConversionFeedService.
  OfflineCallConversionFeedService offlineCallConversionFeedService =
      (OfflineCallConversionFeedService) user.GetService(
          AdWordsService.v201702.OfflineCallConversionFeedService);

  // Associate offline call conversions with the existing named conversion tracker. If this
  // tracker was newly created, it may be a few hours before it can accept conversions.
  OfflineCallConversionFeed feed = new OfflineCallConversionFeed();
  feed.callerId = callerId;
  feed.callStartTime = callStartTime;
  feed.conversionName = conversionName;
  feed.conversionTime = conversionTime;
  feed.conversionValue = conversionValue;

  OfflineCallConversionFeedOperation offlineCallConversionOperation =
      new OfflineCallConversionFeedOperation();
  offlineCallConversionOperation.@operator = Operator.ADD;
  offlineCallConversionOperation.operand = feed;

  try {
    // This example uploads only one call conversion, but you can upload
    // multiple call conversions by passing additional operations.
    OfflineCallConversionFeedReturnValue offlineCallConversionReturnValue =
        offlineCallConversionFeedService.mutate(
            new OfflineCallConversionFeedOperation[] { offlineCallConversionOperation });

    // Display results.
    foreach (OfflineCallConversionFeed feedResult in offlineCallConversionReturnValue.value) {
      Console.WriteLine("Uploaded offline call conversion value of {0} for caller ID '{1}'.",
          feedResult.conversionValue, feedResult.callerId);
    }
  } catch (Exception e) {
    throw new System.ApplicationException("Failed to upload offline call conversions.", e);
  }
}

Visual Basic

' Get the OfflineConversionFeedService.
Dim offlineCallConversionFeedService As OfflineCallConversionFeedService = _
    CType(user.GetService(AdWordsService.v201702.OfflineCallConversionFeedService),  _
        OfflineCallConversionFeedService)

' Associate offline call conversions with the existing named conversion tracker. If this
' tracker was newly created, it may be a few hours before it can accept conversions.
Dim feed As New OfflineCallConversionFeed()
feed.callerId = callerId
feed.callStartTime = callStartTime
feed.conversionName = conversionName
feed.conversionTime = conversionTime
feed.conversionValue = conversionValue

Dim offlineCallConversionOperation As New OfflineCallConversionFeedOperation()
offlineCallConversionOperation.operator = [Operator].ADD
offlineCallConversionOperation.operand = feed

Try
  ' This example uploads only one call conversion, but you can upload
  ' multiple call conversions by passing additional operations.
  Dim offlineCallConversionReturnValue As OfflineCallConversionFeedReturnValue = _
      offlineCallConversionFeedService.mutate(
          New OfflineCallConversionFeedOperation() {offlineCallConversionOperation})

  ' Display results.
  For Each feedResult As OfflineCallConversionFeed In offlineCallConversionReturnValue.value
    Console.WriteLine("Uploaded offline call conversion value of {0} for caller ID '{1}'.",
        feedResult.conversionValue, feedResult.callerId)
  Next
Catch e As Exception
  Throw New System.ApplicationException("Failed to upload offline call conversions.", e)
End Try

Python

def main(client, caller_id, call_start_time, conversion_name, conversion_time,
         conversion_value):
  # Initialize appropriate services.
  occ_feed_service = client.GetService(
      'OfflineCallConversionFeedService', version='v201702')

  # Associate offline call conversions with the existing named conversion
  # tracker. If this tracker was newly created, it may be a few hours before it
  # can accept conversions.
  feed = {
      'callerId': caller_id,
      'callStartTime': call_start_time,
      'conversionName': conversion_name,
      'conversionTime': conversion_time,
      'conversionValue': conversion_value,
  }

  occ_operations = [{'operator': 'ADD', 'operand': feed}]

  occ_response = occ_feed_service.mutate(occ_operations)
  values = occ_response['value']

  if values:
    for occ_feed in values:
      print ('Uploaded offline call conversion value of "%s" for caller ID '
             '"%s".\n' % (occ_feed['conversionName'], occ_feed['callerId']))
  else:
    print 'No offline call conversions were added.'

PHP

public static function runExample(
    AdWordsServices $adWordsServices,
    AdWordsSession $session,
    $callerId,
    $callStartTime,
    $conversionName,
    $conversionTime,
    $conversionValue
) {
  $offlineCallConversionService = $adWordsServices->get(
      $session, OfflineCallConversionFeedService::class);

  // Associate offline call conversions with the existing named conversion
  // tracker. If this tracker was newly created, it may be a few hours before
  // it can accept conversions.
  $feed = new OfflineCallConversionFeed();
  $feed->setCallerId($callerId);
  $feed->setCallStartTime($callStartTime);
  $feed->setConversionName($conversionName);
  $feed->setConversionTime($conversionTime);
  $feed->setConversionValue($conversionValue);

  $offlineCallConversionOperations = [];
  $offlineCallConversionOperation = new OfflineCallConversionFeedOperation();
  $offlineCallConversionOperation->setOperator(Operator::ADD);
  $offlineCallConversionOperation->setOperand($feed);
  $offlineCallConversionOperations[] = $offlineCallConversionOperation;

  // This example uploads only one call conversion, but you can upload
  // multiple call conversions by passing additional operations.
  $result =
      $offlineCallConversionService->mutate($offlineCallConversionOperations);

  $feed = $result->getValue()[0];
  printf(
      "Uploaded offline call conversion value of '%s' for caller ID '%s'.\n",
      $feed->getConversionValue(),
      $feed->getCallerId()
  );
}

Perl

sub upload_offline_call_conversions {
  my $client                             = shift;
  my $caller_id                          = shift;
  my $call_start_time                    = shift;
  my $conversion_name                    = shift;
  my $conversion_time                    = shift;
  my $conversion_value                   = shift;
  my @offline_call_conversion_operations = ();

  # Associate offline call conversions with the existing named
  # conversion tracker. If this tracker was newly created, it may be a
  # few hours before it can accept conversions.
  my $feed = Google::Ads::AdWords::v201702::OfflineCallConversionFeed->new({
    callerId        => $caller_id,
    callStartTime   => $call_start_time,
    conversionName  => $conversion_name,
    conversionTime  => $conversion_time,
    conversionValue => $conversion_value
  });

  my $offline_call_conversion_operation =
    Google::Ads::AdWords::v201702::OfflineCallConversionFeedOperation->new({
      operator => "ADD",
      operand  => $feed
    });

  push @offline_call_conversion_operations, $offline_call_conversion_operation;

  # This example uploads only one call conversion, but you can upload multiple
  # call conversions by passing additional operations.
  my $result =
    $client->OfflineCallConversionFeedService()
    ->mutate({operations => \@offline_call_conversion_operations});

  # Display results.
  if ($result->get_value()) {
    foreach my $feed_result (@{$result->get_value()}) {
      printf "Uploaded offline call conversion value of \"%s\" for caller ID " .
        "\"%s\".\n",
        $feed_result->get_conversionValue(),
        $feed_result->get_callerId();
    }
  } else {
    print "No offline call conversions were added.\n";
    return;
  }

  return 1;
}

Ruby

occ_feed_srv =
    adwords.service(:OfflineCallConversionFeedService, API_VERSION)

# Associate offline conversions with the existing named conversion tracker. If
# this tracker was newly created, it may be a few hours before it can accept
# conversions.
feed = {
  :caller_id => caller_id,
  :call_start_time => call_start_time,
  :conversion_name => conversion_name,
  :conversion_time => conversion_time,
  :conversion_value => conversion_value
}

occ_operations = [{
  :operator => 'ADD',
  :operand => feed
}]

occ_response = occ_feed_srv.mutate(occ_operations)

if occ_response[:value]
  occ_response[:value].each do |occ_feed|
    puts 'Uploaded offline call conversion value "%s" for caller ID "%s"' %
        [occ_feed[:conversion_name], occ_feed[:caller_id]]
  end
end

検証規則

OfflineCallConversionFeed をアップロードする際は、要件がいくつかあります。

OfflineCallConversionError.INVALID_CONVERSION_TYPE エラーの発生を避けるため、conversionName は次の条件を満たす形で UploadCallConversion を参照する必要があります。

  • 電話の時点で、UploadCallConversionステータスENABLED になっていること。

  • 電話の時点で、UploadCallConversion が、電話が帰属する AdWords アカウントの有効なコンバージョン アカウントに存在していること。電話の時点で、アカウントがクロスアカウント コンバージョン トラッキングを使用していなかった場合、AdWords はコンバージョンのアップロードに使用されたアカウントで UploadCallConversion を探します。アカウントの有効なコンバージョン トラッキング アカウントは、管理画面の [運用ツール] > [コンバージョン トラッキング] で確認できますが、これはあくまで現時点で有効なコンバージョン トラッキング アカウントであることに注意しましょう。電話の時点の有効なコンバージョン トラッキング アカウントとは異なる可能性もあります。

これに加えて次の条件を満たす必要があります。

  • conversionValue は 0 以上でなければなりません。

  • conversionTime にはタイムゾーン ID が必要です。タイムゾーン ID は有効なタイムゾーンに対応するものであれば、どのタイムゾーン ID でもかまいません。また、アカウントのタイムゾーンと一致する必要もありません。

ヒント

OfflineCallConversionFeed を作成する際は次の点に留意しましょう。

  • UploadCallConversion は、作成後 6 時間経ってからアップロードすることをおすすめします。

  • インポートされたコンバージョンのデータが AdWords アカウントに表示されるまで、最大 3 時間かかります。

  • 重複する(発信者 ID、名前、日時が同一の)コンバージョンをアップロードすることは認められていますが、記録されるのは最初のインスタンスのみです。

コードサンプル

クライアント ライブラリRemarketing フォルダには、オフライン通話コンバージョンのアップロードのコードサンプルが格納されています。

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

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