埋込みアプリのパートナになる

オラクル社が提供するControlled Availabilityプログラムを使用すると、Oracle Data Cloudプラットフォーム内にWebアプリケーションを直接埋め込むことができます。アプリを埋め込むことで緊密にインテグレートされた環境が実現し、共通のクライアントのためのワークフローが効率化されます。アプリを埋め込むとき、Oracleのインテグレーション内で任意の手動手順を自動化することによって、Oracleのプラットフォームをさらに一元化できます。自動化によって、両方のチームで使用されたリソースが排除され、クライアントのインテグレーションが完了します。

Oracleのインテグレーションを一元化し、自動化と、次のメリットがあります。

  • データ・オンボーディングおよび配信ソリューション: クライアントはシステムで独立してデータを使用でき、Oracle Data Cloudプラットフォームにデータを収集して、複数のメディア実行プラットフォームをまたいですばやく配信できます。
  • 操作の効率性: クライアントのデータを管理するためにプラットフォームとチームの間を往復する必要がありません。
  • Oracle Data Cloudプラットフォームでのプロモーション: Oracle Data CloudプラットフォームUIの目立つ場所にロゴが表示され、共同ブランドでのプレス・リリースやケース・スタディの機会が創出されます。Oracle Data Cloudプラットフォームでのインテグレーション・ベンダーとしてのメリットを享受する、Google、Facebook、AppNexusやその他のパートナの一員となります。

埋込みアプリ・パートナになるには:

  1. Oracle Data Cloudパートナ・マネージャに連絡して、新しい埋込みアプリのサポートをリクエストしてください。
  2. アプリへのアクセスを提供し、デモを設定します。
  3. 提案されたワークフロー、アプリに実装する必要がある特定のドメイン間通信およびAPIコール、サービス・エンドポイントの技術的な実装プランでOracle Data Cloudを使用します。
  4. Oracle Data Cloudにアプリのランディング・ページのURL (HTTPSドメイン)を提供します。
  5. Oracle Data Cloudによってプラットフォーム・メニュー・バーにアプリのエントリが追加され、アプリをホストする別個のWebページが作成されます。このページには、アプリが埋め込まれるセキュアなiframeが含まれます(HTTPSドメイン経由)。
  6. ユーザーを認証するために、Oracle Data CloudにOAuth 2.0サーバー・エンドポイントを提供し、ユーザーがシステムにログインする必要なくアプリを開くことができるようにします。
  7. Oracle Data Cloudによってインテグレーションがテストされ、選択されたクライアントとのControlled Availabilityのテストが行われます。
  8. 埋込みアプリ・インテグレーションがOracle Data Cloudプラットフォームの本番環境にデプロイされます。

クライアントがOracle Data Cloudプラットフォームからアプリにアクセスする方法

クライアントがOracle Data Cloudプラットフォームでアプリにアクセスし、使用する手順は、次のとおりです。

  1. プラットフォームによって、クライアントのシートでアプリが有効化されます。
  2. クライアントは、アプリのインストール・ワークフローに従ってアプリをインストールし、ログイン資格証明などの必要な構成詳細を入力して、アプリを保存します。
  3. クライアントがアプリのログイン資格情報を入力すると、Oracle Data CloudプラットフォームがOAuth 2.0サーバーをコールして、クライアントを認証し、アクセス・トークンを取得します。
  4. Oracle Data Cloudプラットフォームではアクセス・トークンがベンダー・データベースに保存されるため、ユーザーは、プラットフォームからアクセスするとき、アプリに再度ログインする必要がありません。
  5. クライアントは、Oracle Data CloudプラットフォームUIの「Apps」メニューでアプリを選択できます。
  6. プラットフォームがアプリのランディング・ページのURL (HTTPS)をコールし、コールでアクセス・トークンを渡します。
  7. アプリがセキュアなiframeをロードします。アクセス・トークンに関連付けられた権限によって、アプリでのクライアントのエクスペリエンスが決まります。
  8. クライアントはOracle Data Cloudプラットフォーム内で、システムから直接アクセスしているかのようにアプリを使用します。
  9. アプリがOracle Data Cloudプラットフォームに埋め込まれた後に、APIをコールして、クライアントのデータのオンボーディングと分類を自動化することによって、アプリを最適化できます。Oracle Product Supportチームおよびエンジニアリング・チームが自動化手順を支援します。

埋込みアプリ・インテグレーション・ワークフローの詳細

Oracle Data Cloudプラットフォームにアプリを埋め込んだ後、クライアントのデータのオンボーディングと分類を自動化することによって、インテグレーション・ワークフローを効率化できます。これにより、クライアントは、完全にインテグレートされたコスト効率の高いプラットフォームを使用して、必要なときにいつでも、迅速かつ独立してユーザー・データをオンボーディングできます。この自動化されたワークフローでは、手動でクライアントをオンボーディングするときのリソース消費が排除されます。

クライアントのユーザー・データの一般的なオンボーディングおよび分類を埋込みアプリを使用して自動化するには:

  1. プラットフォームは、埋込みアプリが次のことを含む一連の読取り/書込み操作を実行できるeasyXDMドメイン間メッセージ・ライブラリを介して、クライアント側の通信と埋込みアプリとの通信を開始します。
    • クライアントがログインしたOracle Data Cloudパートナ・シートの識別。
    • オーディエンス・データのOracle Data Cloudプラットフォームへのオンボーディングに関するサイト情報の取得。
    • クライアントのプライベート・タクソノミ・ツリーでの新しいカテゴリの作成。
    次の図は、easyXDMライブラリがアプリ(セキュアなiframeに埋め込まれている)とOracle Data Cloudプラットフォームの間の通信を促進する仕組みを示しています。

    次のJavaScriptコードは、アプリがeasyXDMソケットを開いた後に発生するアプリとOracle Data Cloudプラットフォームの間のクライアント側の通信を示しています。技術的な実装プランには、交換されるメッセージの最終的なリストとデータが配信される形式が含まれます。

    //code from easyXDM JS library required for communication with BlueKai
    window.socket = new easyXDM.Socket({
       remote: 'https://partner.bluekai.com/rails/{Partner Name},
       onMessage: function(message, origin) {
           if (origin !== "https://partner.bluekai.com")
               return
           //proposed code used for receiving and sending messages
           var _message = JSON.parse(message);
           switch (_message.action) {
               case 'ready-provider':
                   encodeMessage('set-container', {
                       "container-id": _message.data.default-site - id
                   });
                   break;
                case 'onboarded-container':
                   renderOnboarding(_message.data);
                   //_message.data.service_request_id
                   break;
           }
        }
    });

  2. 埋込みアプリのロードが完了すると、アプリがOracle Data Cloudプラットフォームからready-providerメッセージを受信します。
  3. アプリが、後のインテグレーション操作を適用するサイトをリクエストするget-containerメッセージを送信します。
  4. 次のもの(ただしこれに限定されない)を指定するために使用できる、デフォルトのオンボーディング・サイトIDを含むlist-containersメッセージが、プラットフォームによって返されます。
    • クライアントのセグメントをオンライン・カテゴリにマッピングするルールを適用するサイト。
    • カテゴリをオンボーディングする、クライアントのタクソノミのサイト。
  5. アプリが、デフォルトのオンボーディング・サイトIDを使用することを確認するset-containerメッセージを送信します。
  6. set-containerメッセージへのレスポンスとして、Oracle Data Cloudプラットフォームによって、サービス・リクエスト(クライアントに対して実行する作業が指定される)が作成され、onboarded-containerメッセージ(serviceRequests APIをコールしてクライアントのアクセス・トークンを取得するときに使用されるservice-request-idが含まれる)がアプリに送信されます。
  7. バックエンド・システムで、サービス・リクエストへのコールでservice-request-idを渡して、クライアントに代わって分類APIに対するコールを実行するめに使用するクライアントのアクセス・トークンを取得します。
  8. 重要: アクセス・トークンは、クライアントに代わってOracle Data Cloud APIをコールするために必要となります。特定のケースでは、必要な権限を取得するために、トークンとトークン・タイプの両方を提供する必要があります。アクセス・トークンは、有効期限と権限レベルによって異なります。たとえば、一般的なトークンは次のようになります。
    トークンA: 有効期限= 7日後、権限=書込み
    トークンB: 有効期限= 1年後、権限=読取り
    トークンC: 有効期限= 6か月後、権限=タクソノミの読取り、ジャーナルの書込み

  9. クライアントに代わってAPIをコールし、その他のタスクを分類、オンボーディングおよび実行します。クライアントに代わって実行できる一連のタスクは、プラットフォームから受信するトークンのタイプに基づきます。

次の図は、埋込みアプリのOracle Data Cloudプラットフォームとの通信を示しています。この図は、クライアントが資格証明を入力して、埋込みアプリにログインするところから始まります。埋込みアプリがロードされると、プラットフォームからready-providerメッセージが送信されます。この図は、アクセス・トークンを正常に受信し、クライアントに代わってAPIコール(カテゴリおよびルールAPIコールなど)を実行できるようになるところで終了します。
シーケンスの図

実線: easyXDMを介したクライアント側の通信

点線: RESTful APIコールを介したサーバーサイドの通信

Oracle Data Cloud APIのコール

この項では、Oracle Data Cloudプラットフォームとの読取り/書込み操作の実行に必要なOracle Data Cloud APIコールを行う方法の詳細について説明します。Oracle Data Cloud APIについて学習するには、開発者ガイドを参照してください。

Oracle Data Cloud APIをコールするには:

  1. APIキーを取得して、Oracle Data Cloud Webサービスに対するAPIコールを実行します。
  2. 分類カテゴリAPIをコールして、クライアントのオフライン・マッチ・ファイルの各セグメントのカテゴリを作成します。
  3. 分類ルールAPIをコールして、カテゴリをセグメントにマッピングします。

サービス・リクエストAPIのコール

serviceRequests APIをコールして、クライアントのシートで分類カテゴリおよびルールを作成するために必要となるアクセス・トークンを取得します。

構文

https://services.bluekai.com/Services/WS/serviceRequests/<serviceRequestID>&bkuid=<BlueKaiWebServiceKey>&bksig=<messageSignature>

serviceRequests APIは、アクセス・トークン、トークンの期限(デフォルトでは7日間)が切れたときのタイムスタンプおよびこれまでに作成されたリソース(コンテナ、オフライン構成など)のリストを含むサービス・リクエストを返します。

リクエストの例

https://services.bluekai.com/Services/WS/serviceRequests/137&bkuid=q33a152dba41b82d16fccd7e87d7d0df243d8623&bksig=T3LUrYTayISFL1yWzW%2FsZwZidSQotKscCbOeF8esDxw%3D

レスポンスの例

{
	"status": "ACTIVE",
	"access_token": "8dfd49bf-2c70-4e1d-907d-496722dcbc90",
	"partner_id": 486,
	"created_at": "2016-12-09T15:53:13-0800",
	"vendor_id": 1,
	"updated_at": "2016-12-09T15:53:13-0800",
	"expires_at": "2016-12-16T15:53:13-0800",
	"type": "contextual_classification_onboard",
	"id": 137,
	"resources": [{
		"type": "Partner Offline Container",
		"id": 123
	}, {
		"type": "offlineConfig",
		"id": 131
	}]
}

各項目の意味は、次のとおりです。

  • "partner_id": 486は、クライアントのパートナIDです。
  • "vendor_id": 1は、アプリ・パートナのIDです。
  • "id": 137は、サービス・リクエストIDです。
  • "id": 123は、デフォルトのオンボーディング・サイトIDです。
  • "type": "offlineConfig"は、sftp.bluekai.comのオフライン構成を指定します。

アクセス・トークンは、有効期限に達したり、特定の操作が完了すると、取り消されます。たとえば、CRMオンボーディング・アプリで、クライアントのオフライン・ファイルをアップロードしたり、expires_atタイムスタンプが経過(通常、サービス・リクエストの作成の7日後)すると、プラットフォームでトークンの期限が切れます。

分類カテゴリAPIのコール

オフライン・マッチ・ファイルの各セグメントに、クライアントのタクソノミでカテゴリを作成する必要があります。これを行うには、カテゴリAPIに対するコールを実行し、リクエスト・ヘッダーの認可フィールドでアクセス・トークンを渡します。

プライベート・タクソノミでクライアントのルート・ノードself-classificationの下に次の階層を作成します。

Self-Classification
    + Partner offline onboard
        ++ Onboarding site <site ID>
           +++ Segment 1
            +++ Segment 2
            +++ Segment n

この階層を作成するには:

  1. GETリクエストをカテゴリAPIに送信して、プライベート・タクソノミ内でクライアントのルート・ノードself-classificationのカテゴリIDを取得します。

    https://services.bluekai.com/Services/WS/classificationCategories?name=Self-Classification&bkuid=<Oracle Data Cloud Web Service Key>&bksig=<message signature>

    レスポンス: GETレスポンスは、クライアントのself-classificationノードのカテゴリIDを返します。

    {
    	"categories": [{
    		"name": "Self-Classification",
    		"id": 280096,
    		"description": null,
    		"leaf": false,
    		"notes": null,
    		"parent_id": 280095,
    		"created_at": "2016-11-20 11:32:27-0600",
    		"updated_at": "2016-11-20 11:45:49-0600",
    		"navigation_only": true,
    		"analytics_excluded": false,
    		"mutex_children": false,
    		"rules": []
    	}],
    	"total_count": 1
    }
  2. POSTリクエストを分類カテゴリAPIに送信して、クライアントのオンボーディング・サイトIDを含むノードを作成します。
    1. nameパラメータに会社名と操作のタイプ("Partner Offline Onboard"など)を含めます。
    2. parent_idを取得したルート分類ノードのカテゴリIDに設定します(この例では280096)。
    3. descriptionパラメータで、ノードの機能を要約します("this category contains all your partner segments onboarded by partner"など)。

    : 次の例は、POSTリクエストに含めるAPIコールとJSON本文を示しています。
    APIコール

    https://services.bluekai.com/Services/WS/classificationCategories&bkuid=<Oracle Data Cloud Web Service Key>&bksig=<message signature>

    JSON本文

    {
        "name": "Partner",
        "parent_id": 280096,
        "description": "this category contains all your segments onboarded by Partner",
        "analytics_excluded": "false",
        "navigation_only": "false",
        "mutex_children": "false",
        "notes": "Partner Offline Parent Node"
    }

    レスポンス

    POSTレスポンスには、新しい親ノードのカテゴリIDが含まれます。

    {
        "name": "Partner",
        "id": 314620,
        "description": "this category contains all your segments onboarded by Partner",
        "leaf": true,
        "notes": "Partner Parent Node",
        "parent_id": 280096,
        "created_at": "2016-03-17 12:24:59-0500",
        "updated_at": "2016-03-17 12:24:59-0500",
        "navigation_only": false,
        "analytics_excluded": false,
        "mutex_children": false,
        "rules": []
    }

  3. POSTリクエストを分類カテゴリAPIに送信して、特定のオフライン・オンボーディング用に作成する新しいカテゴリをすべて含むオンボーディング・サイトIDノードを作成します。
    1. nameパラメータにオンボーディング・サイトID ("Onboarding site 123"など)を含めます。
    2. parent_idを作成したパートナ親ノードのカテゴリIDに設定します(この例では314620)。
    3. descriptionパラメータで、ノードの機能を要約します("this category contains the segments onboarded in site 123"など)。
    : 次の例は、POSTリクエストに含めるAPIコールとJSON本文を示しています。

    APIコール

    https://services.bluekai.com/Services/WS/classificationCategories&bkuid=<Oracle Data Cloud Web Service Key>&bksig=<message signature>

    JSON本文

    {
        "name": "Onboarding Site 123",
        "parent_id": 314620,
        "description": "this category contains the {Partner name} segments onboarded in site 123",
        "analytics_excluded": "false",
        "navigation_only": "false",
        "mutex_children": "false",
        "notes": "Site ID Parent Node"
    }

    レスポンス

    POSTレスポンスには、新しい親ノードのカテゴリIDが含まれます。このノードの下にクライアントのセグメントを表す新しいカテゴリを追加します。

    {
        "name": "Onboarding Site 123",
        "id": 314621,
        "description": "this category contains the Partner segments onboarded in site 123",
        "leaf": true,
        "notes": "Site ID Parent Node",
        "parent_id": 314620,
        "created_at": "2016-03-17 12:25:59-0500",
        "updated_at": "2016-03-17 12:25:59-0500",
        "navigation_only": false,
        "analytics_excluded": false,
        "mutex_children": false,
        "rules": []
    }

  4. クライアントのオフライン・マッチ・ファイルの各セグメントについて、POSTリクエストを分類カテゴリAPIに送信して、そのセグメントを表す新しいカテゴリを作成します。
    1. nameパラメータにパートナ・セグメントの名前を含めます("BK user segment 1"など)。
    2. parent_idを作成したサイトID親ノードのカテゴリIDに設定します(この例では314621)。
    3. descriptionパラメータで、ノードの機能を要約します("this category contains all users with the segment 1 attribute"など)。

    : 次の例は、POSTリクエストに含めるAPIコールとJSON本文を示しています。

    APIコール

    https://services.bluekai.com/Services/WS/classificationCategories&bkuid=<Oracle Data Cloud Web Service Key>&bksig=<message signature>

    JSON本文

    {
        "name": "User Segment 1",
        "parent_id": 314621,
        "description": "this category contains all users with the Segment 1 attribute",
        "analytics_excluded": "false",
        "navigation_only": "false",
        "mutex_children": "false",
        "notes": "Partner segment"
    }

    レスポンス: POSTレスポンスには、新しいカテゴリに関する次の情報が含まれます。カテゴリを対応するオフライン・セグメントにマッピングするルールを作成するためのルールを作成するには、idが必要です。

    {
        "name": "Segment 1",
        "id": 314639,
        "description": "this category contains all users with the Segment 1 attribute",
        "leaf": true,
        "notes": "Partner Segment",
        "parent_id": 314621,
        "created_at": "2016-03-17 13:40:49-0500",
        "updated_at": "2016-03-17 13:40:49-0500",
        "navigation_only": false,
        "analytics_excluded": false,
        "mutex_children": false,
        "rules": []
    }

バルク・インポート

セルフ分類カテゴリAPIに対する複数のコールを実行するかわりに、カテゴリAPIのバルク・インポート機能を使用して、クライアントのタクソノミにパートナ・カテゴリ、オンボーディング・サイトIDカテゴリおよびセグメント・カテゴリを作成できます。

バルク・インポートを実行するには:

  1. カテゴリAPIに対するコールの問合せ文字列には、取得したルート分類ノードのカテゴリIDを含めます(この例では280096)。

    https://servcies.bluekai.com/Services/WS/classificationCategories/280096

  2. ヘッダー・フィールドで、Content-Typemultipart/form-dataに設定し、カプセル化境界パラメータを指定します。

    headers = {"Content-Type": "multipart/form-data; boundary=a8d84ae2e7db4676843c7df172b68bfc", "Accept": "application/json", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0"}

  3. POST/PUT本文で、次のことを実行します。
    1. カプセル化を開始する境界を入力します。
    2. Content-Dispositionをform-dataに設定し、categoryFileに設定されるnameパラメータとオプションのfilenameパラメータを含めます。
    3. content typeをtext/tab-separated-valuesに設定します。
  4. 作成されるカテゴリのタブ区切りの値を入力します。指定しない値のフィールドも挿入する必要があります。次の表は、含めることができる値を表示しています。
    フィールドデータ型必須かどうかデフォルト
    1id文字列必須Self-Classificationツリーの既存のカテゴリの永続ID、またはこのファイルで定義された新しいカテゴリに指定する一時ID。
    2parent_key整数オプションこのカテゴリの親ID。これは、Self-Classificationツリーの既存のカテゴリのIDか、このファイルで定義された新しいカテゴリの一時IDになります。IDを入力すると、指定された親カテゴリの下に、このカテゴリが表示されます。空白のままにすると、サービス・エンドポイントで指定されているカテゴリIDにカテゴリが追加されます。
    3名前文字列必須簡潔なカテゴリ固有の名前。タクソノミでは、カテゴリはこの名前で表示されます。最大255文字の名前を指定できます。
    4説明文字列必須このカテゴリに含まれているユーザーのタイプの詳細なサマリー。最大255文字の説明を指定できます。
    5analytics_excludedブールオプションカテゴリがオーディエンス・アナリティクス・レポートから除外されるかどうか。デフォルト値はfalseです。
    6navigation_onlyブールオプションカテゴリが、選択できない親ノードとしてのみ機能するかどうか。デフォルト値はfalseです。
    7mutex_childrenブールオプションこのカテゴリの子カテゴリが相互排他的(1つのみ選択可能)かどうか。デフォルト値はfalseです。
    8notes文字列オプションカテゴリに関連付ける任意のノート
    9rule_idsリストオプションユーザー属性(phint)のカテゴリへのマッピングに使用されるルールIDのコロン区切りリスト(100:101:102など)
  5. カプセル化を終了する境界を入力します。次の例は、バルク・インポートPOSTリクエストの本文を示しています。次の例では、パートナ・カテゴリ、オンボーディング・サイトIDカテゴリおよびセグメント・カテゴリが作成されます。
    '''--a8d84ae2e7db4676843c7df172b68bfc
    Content-Disposition: form-data; name="categoryFile"; filename="self-classification-categories.tsv"
    Content-Type: text/tab-separated-values
    xyz123   Partner    Contextual site data onboarded by Partner
    abc124   xyz123      Onboarding Site 123  contains data onboarded under site ID 123
    abc125   abc124      Partner segment 1  contains users with segment 1 attribute
    abc126   abc124      Partner segment 2  contains users with segment 2 attribute
    abc127   abc124      Partner segment 3  contains users with segment 3 attribute
    --a8d84ae2e7db4676843c7df172b68bfc--'''

    プログラマティックなバルク・インポートのデモンストレーションを確認するには、カテゴリAPIバルク・インポートの例を参照してください。

分類ルールAPIのコール

クライアントのタクソノミで作成した新しいカテゴリのそれぞれについて、カテゴリをクライアントのオフライン・マッチ・ファイル内の対応するセグメントにマッピングするルールを作成する必要があります。これを行うには、ルールAPIに対するコールを実行し、リクエスト・ヘッダーの認可フィールドのアクセス・トークンを渡します。ルールAPIを使用して、このAPIに対するコールの実行について学習し、自分のシートでコールをテストできます。

マッピング・ルールを作成するには:

  1. GETリクエストをカテゴリAPIに送信して、Partner > Onboarding <site ID>親ノードで作成されたカテゴリのリストを取得します。

    https://services.bluekai.com/Services/WS/classificationCategories?parent_id=<Onboarding Site ID>&<Oracle Data Cloud Web Service Key>&bksig=<message signature>

  2. GETレスポンスに含まれているカテゴリ名とカテゴリIDを解析します。
  3. GETレスポンスに含まれている各カテゴリについて、ルールAPIに対してPOSTリクエストを送信して、phintベースのマッピング・ルールを作成します。
    1. nameパラメータには、名前、操作のタイプおよびマッピングされるカテゴリを含めます。たとえば、"Partner <Category Name> Rule"と入力します。
    2. typeパラメータには"phint"と入力します。
    3. phintsパラメータでは、次の規則を使用します。

      {
          "key": "category",
          "value": "<Partner segment name>",
          "operator": "is"
      }

    4. partner_idパラメータには、DMPユーザーのパートナIDを入力します。このIDは、serviceRequests API GETコールに対するレスポンスで受信します。
    5. site_idsパラメータにオンボーディング・サイトIDを入力します(この例では123)。
    6. category_idsパラメータに、マッピングしているカテゴリのIDを入力します(この例では314639)。

    : 次の例は、POSTリクエストに含めるAPIコールとJSON本文を示しています。

    APIコール

    https://services.bluekai.com/Services/WS/classificationCategories&bkuid=<Oracle Data Cloud Web Service Key>&bksig=<message signature>

    JSON本文

    {
    	"name": "Partner Segment 1 Rule",
    	"type": "phint",
    	"phints": [{
    		"key": "category",
    		"value": "Segment 1",
    		"operator": "is"
    	}],
    	"partner_id": 486,
    	"site_ids": [123],
    	"category_ids": [314639]
    }

    レスポンス

    POSTレスポンスには、分類ルールに関する次の情報が含まれます。

    {
    	"name": "Partner Segment 1 Rule",
    	"id": 898,
    	"type": "phint",
    	"status": "active",
    	"phints": [{
    		"key": "category",
    		"value": "Segment 1",
    		"operator": "is"
    	}],
    	"partner_id": 486,
    	"sites": [{
    		"id": 123,
    		"name": "Partner Onboarding Container"
    	}],
    	"categories": [{
    		"id": 314639,
    		"name": "Segment 1"
    	}],
    	"created_at": "Mon Mar 17 14:34:45 CDT 2016",
    	"updated_at": "Mon Mar 17 14:34:45 CDT 2016"
    }