Embedded Connect
埋め込み Connect を使用すると、ユーザーが AdSense とプラットフォームを接続する際の煩わしさが軽減され、コンバージョン ファネルが改善されます。
Embedded Connect は、特定のユーザーにとって最適な開始点を判断し、広告の配信を開始するために必要なすべての手順を案内する、カスタマイズされた AdSense 登録フローを案内する小さな JavaScript ライブラリです。ユーザーが AdSense アカウントを持っているかどうか、AdSense 利用規約に同意しているかどうか、プラットフォームのサイトを AdSense アカウントに追加しているかどうか、サイトのステータスが「準備完了」かどうかなどのシナリオに対応します。
埋め込み Connect で Google 管理の UX オプションを使用すると、アカウントとサイトのステータスをユーザーに表示する UX も処理できます。また、潜在的な問題を解決するために、AdSense の適切な場所にユーザーを誘導することもできます。
デベロッパーの利便性を高めるために、このライブラリは、広告配信を正しく設定するために必要なユーザーの AdSense パブリッシャー ID を含むコールバックをプラットフォームに送信します。
Embedded Connect には、ユーザー エクスペリエンスの 2 つのオプションがあります。
- Google が管理する UX。すべての UX を管理する Embedded Connect ウィジェットを使用する。このウィジェットは、ユーザーが登録フローを完了できるようサポートし、アカウントとサイトのステータスに関するユーザー情報をウィジェット内に表示します。このオプションでは、ユーザーが AdSense アカウントを初めて接続したときにトリガーされる AdSense パブリッシャー ID を含むコールバックが提供されます。
- カスタム UX。埋め込み Connect の
adsenseEmbeddedConnect.connect(...)
メソッドを使用して、新しいウィンドウで登録フローをトリガーします。このオプションでは、AdSense パブリッシャー ID とアクセス トークンを含むコールバックが提供されます。このアクセス トークンを使用して、AdSense Management API で AdSense アカウントから追加情報を取得できます。このオプションでは、UX を自分で設計する必要があります。
Embedded Connect の実装
Embedded Connect を使用するには、次の手順が必要です。
- Google Cloud でプロジェクトを作成する(または既存のプロジェクトを使用する)
- OAuth クライアント ID を作成する
- Embedded Connect で使用する OAuth クライアント ID を構成する
- (省略可)OAuth 同意画面をカスタマイズする
- Embedded Connect JavaScript ライブラリをページに追加する
- Embedded Connect コードを実装する
ステップ 1: 新しい Google Cloud プロジェクトを作成する(または既存のプロジェクトを使用する)
既存の Google Cloud プロジェクトがある場合は、そのプロジェクトを使用できます。プロジェクトがない場合は、以下のガイドに沿って新しいプロジェクトを設定してください。
https://cloud.google.com/resource-manager/docs/creating-managing-projects
ステップ 2: OAuth クライアント ID を作成する
Google Cloud プロジェクトには、使用できるデフォルトの OAuth クライアント ID があります。[API とサービス] > [認証情報] に移動すると確認できます。
専用の OAuth クライアント ID を作成する手順は次のとおりです。
- [API とサービス] > [認証情報] に移動します。
- ページ上部の [+ 認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。
- アプリケーションの種類は「ウェブ アプリケーション」です。
- クライアント ID に名前を付けて、[作成] をクリックします。
ステップ 3: Embedded Connect で使用するように OAuth クライアント ID を構成する
Embedded Connect の統合に使用する OAuth クライアント ID を決定したら、その ID を構成する必要があります。
手順は次のとおりです。
- [認証情報] ページで、設定するクライアント ID の鉛筆アイコンをクリックします。
- [承認済みの JavaScript 生成元] セクションで、クライアント ID を使用してリクエストを発行できる URI を追加します。通常、開発用サーバーおよびローカル環境の URI(https://dev.example.com や http://localhost:5000 など)が追加されます。本番環境の URI(https://example.com など)も追加する必要があります。
(省略可)ステップ 4: OAuth 同意画面をカスタマイズする
OAuth 同意画面では、ユーザーがクライアント ID に AdSense データへのアクセスを許可します。これは Embedded Connect の仕組みにおいて不可欠な部分です。この画面は、プラットフォームの名前やロゴなどを追加するようにカスタマイズできます。カスタマイズを構成するには、OAuth 同意画面のページをご覧ください。ページ上部の [アプリを編集] をクリックし、ウィザードの指示に沿って操作します。
ステップ 5: Embedded Connect JavaScript ライブラリを実装する
このライブラリには、埋め込みコネクションの開始に使用されるさまざまなメソッドと、ユーザーのパブリッシャー ID の取得と削除に必要なコールバックが含まれています。これをページの上部に実装します。
Google 管理の UX の場合:
<script src="https://www.google.com/adsense/js/embedded-connect.js?load=initEmbeddedConnect&hl={language}" async defer></script>
カスタム UX の場合:
<script src="https://www.google.com/adsense/js/embedded-connect.js?load=initEmbeddedConnect&hl={language}&headless=true" async defer></script>
load
パラメータに渡される JavaScript 関数名の実装を指定してください。この関数は、adsenseEmbeddedConnect
API の使用準備が整うと呼び出されます。
スクリプトタグ属性
上記の例では、スクリプト タグに複数の属性が設定されています。以下に、各属性について説明します。
src
: Embedded Connect API の読み込み元となる URL。URL には複数のクエリ パラメータを含めることができます。以下に説明します。async
: スクリプトを非同期でダウンロードして実行するようブラウザに指示します。このスクリプトの実行時に、load
パラメータで指定された関数が呼び出されます。defer
: 設定すると、ブラウザはページの解析と並行して Embedded Connect JavaScript をダウンロードし、ページの解析が完了した後に実行します。
src
パラメータ
src
属性には、Embedded Connect の開始に必要な複数のクエリ パラメータが含まれています。各パラメータの使用方法については、以下をご覧ください。
load
は、API の読み込みが完了したときに呼び出されるグローバル JavaScript 関数の名前です。この関数には任意の名前を付けることができます。hl
には、登録ポップアップのテキストなど、すべてのローカライズに使用する言語を指定します。これは省略可能なクエリ パラメータです。指定しない場合、または指定した言語が AdSense でサポートされていない場合、ウィジェットはデフォルトで米国英語になります。AdSense でサポートされている言語をご確認ください。hl
パラメータ値は BCP 47 に従っている必要があります。たとえば、英国英語のユーザーの場合は、文字列はen-GB
になります。headless=true
は、Embedded Connect が Google 管理の UX ではなく、カスタム UX オプションで使用されることを示します。
Google 管理の UX とカスタム UX のどちらを選択したかを確認したら、以下の各アプローチのコード例をご覧ください。
ステップ 6: Embedded Connect コードを実装する
前述のとおり、ユーザー エクスペリエンスには次の 2 つのオプションがあります。
プラットフォームのニーズに最適な実装オプションを選択します。
Google が管理する UX
次の手順に沿って、登録フローをトリガーし、アカウントとサイトの状態に関する関連情報をユーザーに表示するウィジェットを Google がレンダリングするようにします。
Embedded Connect コードには 2 つのコンポーネントがあります。1 つ目は空の <div>
で、Embedded Connect が登録ウィジェットをレンダリングする場所を指定します。2 つ目は、構成が設定され、コールバックが管理されるコードです。
埋め込み Connect ウィジェットがレンダリングされる HTML 要素
埋め込み Connect ウィジェットをレンダリングするページに、次の HTML を配置します。
<div id="adsenseEmbeddedConnect"></div>
埋め込み Connect コード
次に、Embedded Connect ライブラリの下、div 要素の上に、構成コードを配置します。
function initEmbeddedConnect() {
adsenseEmbeddedConnect.init({
// <div> to show the Embedded Connect widget in
'divId': 'adsenseEmbeddedConnect',
// OAuth client ID from step 2
'clientId': 'xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
// Access token from the Google Identity APIs, see
// https://developers.google.com/identity/oauth2/web/guides/use-token-model
// Use the following scope when requesting the access token:
// https://www.googleapis.com/auth/adsense.readonly
'accessToken': 'xxxxxxxxxxxxxxxxxxxxxxx',
// Login hint, an optional parameter which suppresses the account
// chooser and either pre-fills the email box on the sign-in form,
// or selects the proper session (if the user is using multiple
// sign-in)
'loginHint': 'user@example.com',
// Child site (which is added to AdSense as part of the Embedded Connect flow)
// Consult with your account manager to ensure this value is set correctly for your platform
'siteUrl': 'site.example.com',
// Optional parameter, the publisher ID of the user.
// When set, the Embedded Connect widget will display the state of the user's AdSense account.
// When unset, the Embedded Connect widget will show the default state which triggers the connection flow.
'publisherId': "pub-0000000000000000",
'onConnect': function(pid) {
// Your custom code to send the publisher ID (pid) to your server for it to be saved.
// The onConnect function is called when the user has completed all the onboarding steps
},
'onDisconnect': function() {
// Your custom code to forget the publisher ID.
// This onDisconnect function is called when the user has clicked the "Disconnect" button in the Embedded Connect widget
},
});
};
スクリーンショット
埋め込み Connect ウィジェットには、主に次の 4 つの状態があります。
- (デフォルト)AdSense に接続する
- AdSense へのリンク
- サイト情報の確認
- 問題が検出されました
1. (デフォルト)AdSense に接続する
これはデフォルトの状態であり、埋め込み Connect コードに publisherId
フィールドが存在しない場合、ユーザーに表示されます。接続フロー(ポップアップ)を開始し、ユーザーがフローを正常に完了すると、onConnect
コールバックがトリガーされます。
2. AdSense へのリンク
この状態は、ユーザーが接続フローを開始したときに(ポップアップが表示されている場合)表示されます。ポップアップの閉鎖時、またはフローの完了時に、この状態は他のいずれかの状態に変更されます。
3. サイト情報の確認
新しいサイトが AdSense に送信されると、審査プロセスが開始されます。この期間中は広告を配信できません。
審査の重要な要素は所有権チェックです。これは、次のようなさまざまな方法で合格できます。
- 子アカウントのパブリッシャー ID が ads.txt ファイルに存在する
- 子アカウントのパブリッシャー ID がユーザーのサイトの広告タグに含まれている
- google-adsense-child-account メタタグがユーザーのサイトに存在している。最適な結果を得るには、ユーザーのサイトのホームページに表示されていることをご確認ください。
最適な方法は、URL 構造やその他の要因によって異なります。ご利用のプラットフォームに最適な方法については、アカウント マネージャーにご相談ください。
4. 問題が検出されました
ユーザーのアカウントまたはサイトに解決が必要な問題がある場合は、このステータスがユーザーに表示されます。
カスタム UX
UX を自分で管理し、API 呼び出しを使用して登録方法を手動でトリガーする場合は、次の手順を行います。
埋め込みの connect JavaScript ライブラリ
カスタム UX オプションを使用するには、src
属性に headless=true
パラメータを設定する必要があります。次に例を示します。
<script src="https://www.google.com/adsense/js/embedded-connect.js?load=initEmbeddedConnect&hl={language}&headless=true" async defer></script>
接続ボタンと切断ボタンを用意する
adsenseEmbeddedConnect
API が使用可能になったら(load
パラメータに渡された JavaScript 関数によって確認済み)、AdSense との接続と切断の実装を提供します。たとえば、次の 2 つのボタンを用意します。
<button onclick="connectAdSense()">Connect to AdSense</button>
<button onclick="disconnectAdSense()">Disconnect account</button>
ユーザーからニュース メディア ID が保存されているかどうかに応じて、表示するボタンを選択できます。
接続コード
function connectAdSense(){
adsenseEmbeddedConnect.connect({
// OAuth client ID
'clientId': 'xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
// Access token from the Google Identity APIs, see
// https://developers.google.com/identity/oauth2/web/guides/use-token-model
// Use the following scope when requesting the access token:
// https://www.googleapis.com/auth/adsense.readonly
'accessToken': 'xxxxxxxxxxxxxxxxxxxxxxx',
// Child site (which is added to AdSense as part of the Embedded Connect flow)
// Consult with your account manager to ensure this value is set correctly for your platform
'siteUrl': 'site.example.com',
'onConnect': function(response) {
// Your custom code to send the publisher ID (response[publisherId]) to your server for it to be saved.
// The onConnect function is called when the user has completed all the onboarding steps
// Note that you'll additionally receive an OAuth2 access token (response[token]) which can be used with the AdSense Management API to perform other operations
},
'onCancel': function() {
// This callback is called if the user closes the popup window without completing the sign-up flow
}
});
}
切断コード
function disconnectAdSense(){
// Your custom code to forget the publisherId from your server.
}