PHP のOData SDK を使用したAdobe Analytics のデータのクエリ
CData API Server は、ADO.NET Provider for AdobeAnalytics(またはその他の250+ ADO.NET Providers のデータ)と組み合わせることでWeb サービスとしてAdobe Analytics のデータを公開します。下記の手順に従って、Adobe Analytics のデータをオブジェクトとして使用します。
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなAdobe Analytics OData サービスを作成していきましょう。
Adobe Analytics への接続
PHP からAdobe Analytics のデータを操作するには、まずAdobe Analytics への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Adobe Analytics」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、Adobe Analytics への接続設定を行っていきましょう!
-
Adobe Analytics への接続
それでは、Adobe Analytics に接続していきましょう。接続するには、GlobalCompanyId およびRSID を識別する必要があります。デフォルトでは、ドライバーが会社とレポートスイートの識別を自動で試みますが、これらの値を明示的に指定することも可能です。詳しい手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への接続」セクションをご確認ください。
Adobe Analytics への認証
続いて、認証方法を設定しましょう。Adobe Analytics はOAuth 認証標準を利用しており、OAuth またはサービスアカウントで認証できます。
ユーザーアカウント(OAuth)
ユーザーアカウントでの認証では、すべてのフローでAuthScheme をOAuth に設定する必要があります。詳しい認証手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への認証」セクションをご参照ください。
サービスアカウント
サービスアカウントではサイレント認証が利用でき、ブラウザでのユーザー認証が不要です。このフローを使用するには、アプリケーションを作成する必要があります。アプリケーションの作成および認可については、ドキュメントの「カスタムOAuth アプリの作成」をご確認ください。これにより、サービスアカウントにアクセス権があるAdobe Analytics データに接続できるようになります。
サービスアカウントを使用したServer-to-Server OAuth で認証するには、AuthScheme をOAuthClient に設定します。接続には以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH に設定
- OAuthClientId:アプリケーション設定のクライアントId に設定
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定
接続すると、CData 製品がサービスアカウントでのOAuth フローを以下の手順で完了します。
- クライアントクレデンシャルOAuth フローで指定されたOAuthClientId およびOAuthClientSecret を使用して、アクセストークンを取得します
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化されるようにします
- トークンが期限切れになった際に、新しいアクセストークンを要求します
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
Adobe Analytics への接続
それでは、Adobe Analytics に接続していきましょう。接続するには、GlobalCompanyId およびRSID を識別する必要があります。デフォルトでは、ドライバーが会社とレポートスイートの識別を自動で試みますが、これらの値を明示的に指定することも可能です。詳しい手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への接続」セクションをご確認ください。
Adobe Analytics への認証
続いて、認証方法を設定しましょう。Adobe Analytics はOAuth 認証標準を利用しており、OAuth またはサービスアカウントで認証できます。
ユーザーアカウント(OAuth)
ユーザーアカウントでの認証では、すべてのフローでAuthScheme をOAuth に設定する必要があります。詳しい認証手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への認証」セクションをご参照ください。
サービスアカウント
サービスアカウントではサイレント認証が利用でき、ブラウザでのユーザー認証が不要です。このフローを使用するには、アプリケーションを作成する必要があります。アプリケーションの作成および認可については、ドキュメントの「カスタムOAuth アプリの作成」をご確認ください。これにより、サービスアカウントにアクセス権があるAdobe Analytics データに接続できるようになります。
サービスアカウントを使用したServer-to-Server OAuth で認証するには、AuthScheme をOAuthClient に設定します。接続には以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH に設定
- OAuthClientId:アプリケーション設定のクライアントId に設定
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定
接続すると、CData 製品がサービスアカウントでのOAuth フローを以下の手順で完了します。
- クライアントクレデンシャルOAuth フローで指定されたOAuthClientId およびOAuthClientSecret を使用して、アクセストークンを取得します
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化されるようにします
- トークンが期限切れになった際に、新しいアクセストークンを要求します
API Server のユーザー設定
次に、API Server 経由でAdobe Analytics にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
Adobe Analytics 用のAPI エンドポイントの作成
ユーザーを作成したら、Adobe Analytics のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でAdobe Analytics への接続を設定してユーザーを作成し、API Server でAdobe Analytics データのAPI を追加しました。これで、OData 形式のAdobe Analytics データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
Adobe Analytics への接続
それでは、Adobe Analytics に接続していきましょう。接続するには、GlobalCompanyId およびRSID を識別する必要があります。デフォルトでは、ドライバーが会社とレポートスイートの識別を自動で試みますが、これらの値を明示的に指定することも可能です。詳しい手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への接続」セクションをご確認ください。
Adobe Analytics への認証
続いて、認証方法を設定しましょう。Adobe Analytics はOAuth 認証標準を利用しており、OAuth またはサービスアカウントで認証できます。
ユーザーアカウント(OAuth)
ユーザーアカウントでの認証では、すべてのフローでAuthScheme をOAuth に設定する必要があります。詳しい認証手順については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「Adobe Analytics への認証」セクションをご参照ください。
サービスアカウント
サービスアカウントではサイレント認証が利用でき、ブラウザでのユーザー認証が不要です。このフローを使用するには、アプリケーションを作成する必要があります。アプリケーションの作成および認可については、ドキュメントの「カスタムOAuth アプリの作成」をご確認ください。これにより、サービスアカウントにアクセス権があるAdobe Analytics データに接続できるようになります。
サービスアカウントを使用したServer-to-Server OAuth で認証するには、AuthScheme をOAuthClient に設定します。接続には以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH に設定
- OAuthClientId:アプリケーション設定のクライアントId に設定
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定
接続すると、CData 製品がサービスアカウントでのOAuth フローを以下の手順で完了します。
- クライアントクレデンシャルOAuth フローで指定されたOAuthClientId およびOAuthClientSecret を使用して、アクセストークンを取得します
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化されるようにします
- トークンが期限切れになった際に、新しいアクセストークンを要求します
さらに、OData SDK for PHP との互換性のためにAPI Server を構成します。「Settings」をクリックし、OData セクションで「デフォルトバージョン」を2.0 に設定します。
API Server に接続するユーザーの認証トークンを取得
作成するOData サービスを決定したら、「Users」をクリックして任意のユーザーをクリックし、ユーザーの認証トークンを取得します。API Server は、認証トークンベースの認証を使用して、主要な認証スキームをサポートします。SSL を使用すれば、接続の認証だけでなく、暗号化も可能です。IP アドレスを使用してアクセスを制限することも可能です。デフォルトでは、ローカルマシンからの接続のみが許可されます。
わかりやすくするために、URL に認証トークンを設定してAPI Server への認証を行います。これはデフォルトでは有効になっていないため、API Server の構成ファイルであるsettings.cfg に以下の行を追加する必要があります。
[Application] AllowAuthTokenInUrl = true
settings.cfg ファイルはデータディレクトリに配置されています。.NET 版では、www の下のapp_data フォルダがデータディレクトリになっています。Java 版でのデータディレクトリの位置は、OS によって変わります。
- Windows:C:\ProgramData\CData\AdobeAnalytics\
- Unix or Mac OS X:~/cdata/AdobeAnalytics/
Adobe Analytics エンティティをPHP オブジェクトとして使用する
以下のステップに従ってOData PHP SDK を使用し、API Server によって公開されるWeb サービスに接続するプロキシクラスを作成します。
-
以下のようなコマンドにURL を渡します。
php C:\PHPLib\ODataphp\PHPDataSvcUtil.php /uri=https://your-server:8032/api.rsc/@your-authtoken/ /out=C:\PHPLib\ODataphp\AdobeAnalyticsEntities.php
上記のコマンドは、OData エンドポイントからのレスポンスで返されたメタデータからクラスを定義し、指定したフォルダにクラス定義を出力します。
API Server とOData SDK for PHP は、フォーム認証とWindows 認証をサポートします。API Server は、認証トークンを使用してOData エンドポイントへのアクセスを許可されたユーザーを認証します。HTTP Basic 認証で認証トークを指定するか、OData URL に追加することができます。
許可されたユーザーは、API Server の「Users」セクションで設定できます。
-
PHP のオブジェクト指向インターフェースを使用して、Adobe Analytics のデータへのアクセスを開始できます。以下のコードは、AdsReport テーブルのレコードを作成し、リアルタイムデータを取得して、新しく作成されたレコードを表示します。
require_once 'AdobeAnalyticsEntities.php'; try{ $svc = new CData(); $adsreport = new AdsReport(); $adsreport->City = 'Chapel Hill'; $svc->AddToAdsReport($adsreport); $svc->SetSaveChangesOptions(SaveChangesOptions::None); $svc->SaveChanges(); $response = $svc->adsreport()->Execute(); foreach($response->Result as $adsreport) echo $adsreport->Page.""; } catch (Exception $e) { //catch errors from the API Server echo $e->getError(), "\n"; }