Adobe Experience Manager(AEM)からのAlgoliaへのデータ取り込みによるSearch and Discovery

こちらはAlgoliaのDebanshi Bheda, Sajid Momin, Micah Garside-Whiteが書いたIngesting Data from Adobe Experience Manager (AEM) for Search & Discoveryの翻訳記事です。


ビジネスにおいては、プロダクトのセールスをサポートするコンテンツ、ブランドやソートリーダーシップのプロモーション、ユーザーの教育、よくある質問への回答など、多くの時間とリソースを費やしてコンテンツを開発しています。それには、特定のペルソナに最も適合した情報を提供するために、コンテンツを整理することが不可欠です。マーケティング担当者やデジタルパブリッシャーにとって、これは手動でのプロセスになりがちですが、AlgoliaのようなスマートなSearch and Discoveryプラットフォームでは、これを容易にし、より強力なエンゲージメントを促進することが可能です。

AlgoliaはAPIファーストのソリューションであり、AdobeのポピュラーなCMSであるAdobe Experience Manager(AEM)を含むモノリシックおよびヘッドレスプラットフォームの両方と簡単にインテグレーションを行うことができます。より多くのAdobeのお客様がAEMの上でAlgoliaを使用してコンテンツを管理および配信をしているのを見て、私たちはお客様のgo-liveをより簡単にしたいと思いました。そこで、開発パートナーと提携をすることで、AEM connectorを構築し、それをAdobe Experienceマーケットプレイスでご提供できることになりました。

Adobe Experience Managerは、デジタルチャネルで管理されるすべてのページ、アセット、そしてコンテンツを保持します。また、それだけでなく、ZendeskやAdobe CommerceなどのeCommerceシステムなど、他のコンテンツが外部のシステムに保存されている場合もあるでしょう。これらのコンテンツを全てAlgoliaにインデクシングすることで、お客様は統合された検索体験を簡単に作成することができ、エンドユーザーは様々なコンテンツを一つの検索バーで探すことができます。例えば、メガCPG(Consumer Packaged Goods)を扱うような全てのブランドサイト、ストリーミングサービスのメディアコンテンツ、機器のプロダクト/マニュアル/FAQ などがこれにあたります。このような場合、AEMやその他のプラットフォームから来る全てのコンテンツを1つの体験に集約して表示することが重要になります。さらに、全てコンテンツが、キーストロークごとにミリ秒単位で結果がアップデートされることで、高いパフォーマンスを実現できるようになります。

PentairはB2CおよびB2B企業としてAlgoliaを活用してAEMのコンテンツとAdobe Commerceのプロダクトを結びつけている素晴らしい事例と言えます。彼らは、ユーザーがインタラクティブに操作可能な、美しく統一されたSearch and Discovery体験を構築しています。

AEMとAlgoliaを連携する方法

オプション1: Algolia Connector for Adobe Experience Manager

AEM/AlgoliaコネクターはサードパーティーのAyasyaが提供をしていて、Adobe Exchangeにインストールすることで利用可能となります。このコネクターには、コンフィギュレーションモジュール、Indexingサービス、Front-end検索コンポーネントが含まれます。

ソース元: Ayasya

コンフィギュレーション: AEM Authorのインスタンスにコネクタをインストールした後、Cloud Servicesの’Algolia’に移動し、Indexingサービスを設定する必要があります。そこで、インデックス対象のフィールド、プロパティ名、および、公開時のURLといった情報を含む、各サイトのプロパティのインデックスを設定することができます。AEMの継承が有効な場合は、設定コンソールは継承を許可するため、不足している設定プロパティは祖先ノードで見つかります。コンフィギュレーションが生成されると、任意のレベルでサイトツリーに割り当てられるようになります。

Indexing: Indexingサービスは、ページ、コンポーネント、プロパティ、アセット、およびフラグメントのインデックスを発行イベントで作成します。サイトをfull indexするために、コネクタは ‘Deployment’ の下に Algolia Indexerコンソールを提供します。作成者にはインデックスを開始するための開始パスを選択するためのパスファインダーが表示されます。’Tree Activation’チェックボックスを選択すると、Indexerはサイトツリーをクロールしてインデックスを作成します。ページ/アセットにおける’publish’アクションは、ページコンテンツで設定されたプロパティを探して、Algoliaにインデクシングを行います。’unpublish’イベントは、Algolia のインデックスからページやアセットを削除します。ページの vanity url がある場合は、それを取得するための追加サービスがpublishインスタンスにデプロイされます。

フロントエンド: 最後に、コネクターはAlgoliaのInstantSearchライブラリを使ってAlgoliaの検索体験を構築するためのAEMコンポーネントを提供します。こちらは検索体験をカプセル化するシングルコンポーネントで、Authorは検索ボックス、ファセット、そしてソーティングを有効化することができます。このコンポーネントにはベーシックなUIがセットになっており、ブランディングの要件などに併せてカスタマイズしていくことが可能です。コネクターから提供されるコンポーネントを直接変更するのではなく、AEMの継承を適切に使います。

なぜこの方法を選択するのか

AEM Algoliaコネクターは、Algoliaとのインテグレーションを加速させます。ほんの少しの投資といくつかのカスタマイズによって、全てのコンテンツのインデックスを作成することを可能にします。コネクターは’publish’の際にページに表示されないものであっても、Indexingを行う際に使うことができる全てのコンテンツのプロパティにアクセスすることができます。

オプション2: Java API Client

インデックスを直接作成する別の方法が必要な場合は、AlgoliaのJava APIを用いることができます。AlgoliaのJava APIクライアントは、オープンソースでproduction-readyなAPIラッパーで、Algolia Search APIと直接やり取りをする際の複雑さを抽象化してくれます。例えば、ネットワークのリトライ戦略、レコードのバッチ処理化、リインデックスなどをやりくりすることができます。AEMはOSGiプラットフォームであるので、その依存関係としてuber JARが必要となるため、これらのプラットフォームと互換性のあるalgoliasearch-apache-uberが提供されています。

上記オプション1のAEMコネクターは、IndexingにJava APIクライアントを使い、検索体験にInstantSearchライブラリを使っています。AEMコネクターはout-of-the-box(箱から出してすぐに使える)コンポーネントを使って開発されているため、カスタマイズをするためにはカスタムコンポーネントが必要になります。

Algolia Java APIをそのまま使うことによって、ビジネスニーズに合わせて、より高い柔軟性を実現することができます。Java APIクライアントを使うには追加の投資と実装にかかる時間が必要になりますが、コンテンツの構造や仕様にあわせて柔軟にカスタマイズをしていくことができます。AEMのイベントエンジンにレバレッジを効かせることで、コンテンツの変更時に、コンフィギュレーションで定義されたAlgolia Indexへほぼリアルタイムの連携を可能にします。

AlgoliaのAPI クライアント(Java, JavaScript, PHP, その他8つの言語)を使ってスクラッチでカスタマイズした検索体験を構築するか、Vanilla Javascript、ReactJS、AngularJS などで利用できる InstantSearch ライブラリでAlgoliaの検索ウィジェットを活用するかの2つの選択肢があります。Algoliaの InstantSearchライブラリは、Algoliaの最も近いサーバーにアクセスし、爆速なSearch-as-you-typeな検索体験を可能にします。InstantSearchウィジェットは、独自のUIコンポーネントを構築する代わりに、AEMコンポーネントに組み込み、パブリッシャーのサイトに検索体験および検索結果ページを構築し、サイトのパフォーマンスと速度をレベルアップさせること可能です。

なぜこの方法を選択するのか

多くのお客様やSI / エージェンシーパートナーは、AlgoliaのJava APIクライアントとInstantSearchライブラリを使ってAEMとAlgoliaをオーダーメードでインテグレーションすることを選びます。このin-houseなソリューションは、お客様がデータ構造をカスタマイズする方法よりも、さらに柔軟性を提供します。

オプション3: クローラー

Algolia Crawlerは、Algoliaが自分たちで独自に開発した自動Webスクレイピングプログラムです。Start URL(もしくはsitemap.xml)とデータの抽出条件を設定すると、クローラーはそのページにアクセスし、コンテンツを抽出します。そして、そのページ内でリンクされているURLを巡回して、同様のプロセスを繰り返します。クローラーはほんのわずかな設定で、スケジュールに沿って定期的にお客様のWebページからコンテンツを抽出し、Algolia Indexを最新の状態に保ちます。

クローラーは複数のサイトからコンテンツを抽出し、コンテンツを整形して、Algoliaにインデクシングさせるのに便利です。

クローラーは:

  • 散らばったコンテンツを素早く集約します
  • 自動的および定期的に収集したコンテンツの情報をAlgoliaインデックスに反映させます
  • 登録されたレコードを使って迅速かつ正確な検索を可能にします(そして、お客様に同様の検索体験を提供できます)

フロントエンドの検索体験については、オプション2で述べたのと同様に、コンポーネントを作成する必要があります。AlgoliaのInstantSearchライブラリを使えば、pre-builtな検索ウィジェットをAEMコンポーネントに埋め込んだり、ヘッドレスなフロントエンドを構築するために使用するなど、検索体験のデリバリーを加速させることができます。

なぜこの方法を選択するのか

もし、データがAEM内外の多くの場所に点在するような場合、コンテンツをカテゴライズするためのメタデータがない場合、短い期間でgo-liveしなければ行けない場合、データをAlgoliaにインデックスし、サイト構造に基づいたカテゴリで各コンテンツをタグ付けするための効率的な方法として、クローラーの利用を検討しても良いかもしれません。

まとめ

AEMのコンテンツをAlgoliaにインデックスすれば、よりディスカバリーが発展し関連性やランキング順の設定、コンテンツのエンゲージメントを高めるためのA/Bテストなど、様々なことをはじめることができます。どのAlgolia Index構築方法が最適化、また、フィードバックやベストプラクティスについて、是非シェアしていただければと思っています。

次回はAlgoliaでAdobe Launchイベントを活用して劇的に成果を上げる方法をご紹介させていただきます!

コメント

タイトルとURLをコピーしました