Google 広告には、Salesforce からコンバージョン データを自動的にインポートできる機能がありますが、手動で Salesforce からコンバージョン データをインポートすることもできます。
この記事では、Salesforce アカウントで設定を行い、コンバージョン データを手動で Google 広告にインポートする方法について解説します。
はじめに
この機能を利用するための条件は以下のとおりです。
- Salesforce Sales Cloud® アカウントにログインできる。
- Google 広告アカウントで自動タグ設定が有効になっている。
- ウェブサイトのコードを編集できる。お客様ご自身かウェブ デベロッパーの方に、Google クリック ID(GCLID)を取得できるようにコードを編集していただく必要があります。
- Salesforce® アカウントで変更(カスタム項目の作成、項目の履歴トラッキングの有効化など)を加えることができる。
- クリックからコンバージョンまでの期間が 90 日未満に設定されている。ラストクリックから 90 日以上経ってアップロードされたコンバージョンは Google 広告にインポートされないため、コンバージョンの統計情報に表示されません。
- Salesforce の Web-to-Lead 機能か別のソリューションを使ってリードの情報を Salesforce に送信している。
仕組み
何から何まで同じ企業は存在しません。企業の数だけリードと商談獲得のステージが存在することになりますが、その一部だけを Google 広告のコンバージョン データとしてインポートしたい場合もあるかと思われます。
ここでは、以下の事例を用いて統合の仕組みについて説明し、後半でお客様の状況に合わせてカスタマイズする方法について取り上げます。
たとえば次のような販売プロセスがあるとします。
- 見込み顧客が広告をクリックして、お客様のウェブサイトにアクセスします。
- その見込み顧客がウェブページ上でさまざまな操作を行います。たとえば、説明文を読む、動画を視聴する、ホワイトペーパーをダウンロードする、などがあります。こうしたセッション中、あるいはセッション後に、顧客が Salesforce の Web-to-Lead ソリューションを使用する問い合わせ送信フォームに個人情報を入力します。
- Salesforce でリードが作成されます。
- このリードが「有望」になると、商談に変換されます。続いて、この商談のレコードが最初のステージ「見込み」として作成されます。
- この商談が成立し、クローズになると、商談のステージは「成立」に設定されます。
- 最後に、クリックが有望リードの獲得と最終的な売り上げにつながった状況を調べます。
チャンネル | 主要イベント | 技術情報 |
---|---|---|
オンライン | 見込み顧客が広告をクリックして、お客様のウェブサイトにアクセスします。 | Google がウェブサイトに GCLID を渡します。 |
オンライン | その見込み顧客がウェブページ上でさまざまな操作を行います。たとえば、説明文を読む、動画を視聴する、ホワイトペーパーをダウンロードする、などがあります。こうしたセッション中、あるいはセッション後に、顧客が Salesforce の Web-to-Lead ソリューションを使用する問い合わせ送信フォームに個人情報を入力します。 | ウェブサイトでは、以下の JavaScript のコードサンプルを使用して、GCLID が Cookie に保存され、GCLID の値が(フォームに入力されたリード情報と一緒に)Salesforce.com に渡されます。なお、見込み顧客によるこの送信操作をコンバージョンとしてトラッキングする場合は、Google 広告のコンバージョン トラッキングを使用すればウェブサイトでのコンバージョンをトラッキングすることができます。 |
オフライン | Salesforce でリードが作成されます。 | Salesforce.com によって新規のリードが作成され、その情報と GCLID が保存されます。 |
オフライン | このリードが「有望」になると、商談に変換されます。続いて、この商談のレコードが最初のステージ「見込み」として作成されます。 | このコンバージョン イベントは、後でクリックが新たな商談(有望リード)に至ったときに Google 広告で取得できるよう、Salesforce によって商談履歴に保存されます。 |
オフライン | この商談が成立し、クローズになると、商談のステージは「成立」に設定されます。 | このコンバージョン イベントは、後でクリックが最終的な売り上げ、すなわち「成立」に至ったときに Google 広告で取得できるよう、Salesforce によって商談履歴に保存されます。 |
設定
続いて、Sales Cloud の管理者が次の操作を行う流れについてご説明します。
- カスタム項目を設定して GCLID と関連情報を保存する。
- Google 広告クリック ID(GCLID)を取得する。
- HTML の Web-to-Lead フォームを修正し、新規リードのレコードごとに GCLID を渡す。
- 関連データをダウンロードして、Google 広告にコンバージョンをアップロードできるようにする。
- リード オブジェクトと商談オブジェクトで「GCLID」というカスタム項目を作成します(API の名前は「GCLID__c」)。この項目には 255 文字まで入力できます。後で自動的に入力されるため、この項目は読み取り専用にします。
- リード オブジェクトと商談オブジェクトで「Google 広告 Action」というカスタムの数式項目を作成します(API の名前は「Google 広告_Action__c」)。「add」という単純な数式を入力します。これで、この項目には常に静的な値「add」が含まれるようになり、管理者が Google 広告に送り返すデータファイルの作成が簡素化されます。
- リードのカスタム項目の対応付け画面で、リード項目の GCLID を商談項目の GCLID と対応させます。これにより、リードが商談に変換されたときに GCLID が自動的にリードから商談へと渡されます。
ウェブサイトにアクセスしたユーザーが広告をクリックすると、Google 広告ではランディング ページに移動する URL に「gclid」URL パラメータが追加されます。
このパラメータの値は、後で見込み顧客が Web-to-Lead フォームに個人情報を入力したときに取得できるように、Cookie に保存しておく必要があります。
以下の JavaScript コードをランディング ページの</body>
終了タグの直前に挿入すると、GCLID の値が Cookie に保存されるようになります。
<script type="text/javascript"> function setCookie(name, value, days){ var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = name + "=" + value + expires; } function getParam(p){ var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } var gclid = getParam('gclid'); if(gclid){ var gclsrc = getParam('gclsrc'); if(!gclsrc || gclsrc.indexOf('aw') !== -1){ setCookie('gclid', gclid, 90); } } </script>
このコードは、サイト上のすべてのページに挿入することを強くおすすめします。これにより、新しいランディング ページを設定した新しい広告を使用するたびにコードを追加する必要がなくなります。広告を使用して複数のランディング ページにトラフィックを誘導する場合でも、GCLID が確実に記録されます。そのため、ウェブページのテンプレート(フッターなどの共有されるページ要素)にこのコードを追加して、すべての新しいページに自動的に挿入されるようにすることをおすすめします。
GCLID をリード情報に関連付けて保存するには、すべての新規リードの情報に GCLID の値が含まれるように、Web-to-Lead 送信フォームを編集してください。
具体的には、GCLID が Cookie に保存されたら、問い合わせフォームに隠し項目を追加し、Salesforce に送信できるようにこの項目に Cookie の値を書き込みます。
なお、Cookie を利用できるように、Web-to-Lead フォームはサイトの他のページと同じドメイン内に配置する必要があります。
- 標準の Web-to-Lead フォームを生成し、見込み顧客に送信してもらう必要のある項目をすべて追加します。また、リード項目「GCLID」も追加します。Salesforce によって生成される HTML に、以下のコードが含まれるようになります(
xxxx
は GCLID 項目の ID となります)。GCLID:<input id="xxxx" maxlength="255" name="xxxx" size="20" type="text" />
- このコードを
<input id="xxxx" name="xxxx" type="hidden" />
に変更します。つまり、「maxlength」属性と「size」属性を削除し、type 属性の値を「hidden」に変更します。「id」属性と「name」属性は変更しません(値は Salesforce を利用している組織ごとに異なります)。
- この新しい隠し入力項目を作成したら、Web-to-Lead フォームの HTML で、
<form>
タグの間に追加します。同一の問い合わせフォーム送信ページの HTML で、<head> タグの間に以下のコードを追加します。<script> window.onload = function getGclid() { document.getElementById("xxxx").value = (name = new RegExp('(?:^|;\\s*)gclid=([^;]*)').exec(document.cookie)) ? name.split(",")[1] : ""; } // window.onload() may not be supported by all browsers. // If you experience problems submitting the GCLID as a // hidden field, consider using an alternate method to // call this function on page load. </script>
このコードでは、「xxxx」を新しい項目の ID に置き換えます。
これで、Salesforce とお客様のウェブページで、すべてのデータを収集する準備が整いました。このスクリプトでは、隠し項目に GCLID の値が入力され、Web-to-Lead フォームが送信された際に Lead.GCLID__c 項目が入力されます。繰り返しになりますが、「id」項目と「name」項目は組織ごとに異なりますのでご注意ください。
続いてのステップでは、主要イベントのデータを 3 日ごとにエクスポートおよびアップロードすると仮定します。
- Apex Data Loader または Lexi Loader を使用し、次のクエリを実行して OpportunityHistory レコードをエクスポートします。
SELECT Opportunity.Google Ads_Action__c, Opportunity.GCLID__c, StageName, ExpectedRevenue, CreatedDate FROM OpportunityHistory WHERE Opportunity.GCLID__c != null AND (StageName = 'Prospecting' OR StageName = 'Closed Won') AND CreatedDate = LAST_N_DAYS:3
これにより、ステージが「有望」または「成立」に設定されている商談に関連付けられたすべての GCLID 行が出力されます。これには、Google 広告コンバージョンのインポート CSV をすばやく作成するのに必要なすべての項目が(正しい順序で)含まれます。または Google Ads API(AdWords API)を使用して、コンバージョンのインポート処理を自動化することも可能です。その場合は次の 2 つのステップは使用しません。コンバージョンのインポートを行う API ガイドをお読みください。
- エクスポート ファイルを作成したら、ファイルの最初の行を次の 2 行に置き換えます。
Parameters:EntityType=OFFLINECONVERSION;TimeZone=HHMM; Action,Google Click Id,Conversion Name,Conversion Value,Conversion Time
- 最後に「TimeZone」の値を、ご利用の Google 広告アカウントのタイムゾーンの値に変更します(米国太平洋時間の場合は -0800 など)。アカウントのタイムゾーンを確認するには、Google 広告アカウントにログインしてフッターをご覧ください。
これで、このファイルを Google 広告にアップロードする準備が整いました。ファイルのアップロードについてご不明な点がある場合は、オフラインのコンバージョンのトラッキングに関する記事をご覧ください。
ヒント
エクスポートするコンバージョン名は商談のステージの値であるため、Google 広告のコンバージョン アクションを同じ名前に設定することをおすすめします。たとえば、Salesforce で有望リードであることを示すために「IS Lead Qualified」が使用される場合、Google 広告のコンバージョン タイプは「IS Lead Qualified」という名前で作成することをおすすめします。
名前を同一にしない場合は、Salesforce の CSV 形式のエクスポート ファイルを開いてから、コンバージョン名の値をすべて Google 広告で設定したコンバージョン アクション名に変更する必要があります。
ビジネスに合わせてカスタマイズする
お客様のビジネスモデルや販売プロセスは、ここで説明した例とは異なるかもしれません。その場合は以下のようなカスタマイズが効果的です。
- 一部の商談(特定の種類のレコードなど)のみを考慮に入れる場合は、SOQL クエリの
WHERE
部分に句を追加します(例: ...AND RecordType.Name = 'Electronics'
)。 - コンバージョン データをトラッキングする頻度を 3 日ごとから変更する場合は、SOQL クエリを修正(例:
CreatedDate = LAST_N_DAYS:7
)し、設定した頻度で CSV ファイルを生成、アップロードします。 - 販売プロセスの他のイベント(商談ステージなど)がキャンペーンを最適化するうえで役立つと判断された場合(例: 「Paperwork Out」)、次の点を修正することをおすすめします。
- 関連性の高い他の商談ステージと同じ名前で、コンバージョン アクションを Google 広告に追加します。
- SOQL クエリを修正し、かっこ内に句(例: …
OR StageName = 'Paperwork Out'
)を追加します。
- 関連性の高いイベントが商談オブジェクトだけでなく、リード オブジェクトにもある場合は、次のような点を変更することをおすすめします。
- 関連性の高いリードのステータスと同じ名前で、コンバージョン アクションを Google 広告に追加します。
LeadHistory
オブジェクトに問い合わせ、名前と、「ステータス」項目の値が関連性の高い値に変更された日時のタイムスタンプ(CreatedDate
)を取得します。両方のクエリの結果セットを 1 つの CSV ファイルに結合することをおすすめします。また、列のフォーマットが適切であることを確認してください。