統合の問題のトラブルシューティング

トラブルシューティングに関する一般的なヒント

JavaScript エラーがないことを確認

ブラウザの JavaScript コンソールにエラーが表示されていないか確認してください。未処理のエラーにより、後続のコードが正しく実行されない可能性があります。エラーがある場合は、どのスクリプトがどの領域でエラーの原因となっているのか確認してください。スクリプトへのパスにより、そのスクリプトがどの機能に属しているかがわかる場合があります。

コンポーネントレベルでのログ

コンポーネントレベルでステートメントを追加すると便利な場合があります。コンポーネントがレンダリングされることで、一時的なマークアップを追加して変数値を表示し、潜在的な問題を特定するのに役立ちます。次に例を示します。

<%
log.info("myVariable={}", myVariable);
%>

<!--
<%= myJspVariable %>
-->

<!--
${ myHtlVariable }
-->

ログ記録に関する詳細については、ログページおよび監査レコードとログファイルの操作ページを参照してください。

Analytics 統合の問題

レポートインポーターが原因で CPU/メモリ使用量が多い

レポートインポーターが原因で CPU/メモリの使用量が多くなる、または OutOfMemoryError 例外となる。

解決策

この問題を解決するには、次の方法を試してください。

  • 大量の PollingImporter が登録されていないことを確認します(下記の「PollingImporter が原因でシャットダウンに時間がかかる」を参照)。
  • ManagedPollingImporterOSGi コンソール を設定する CRON 式を使用して、特定の時刻にレポートインポーターを実行します。

AEMでのカスタムデータインポーターサービスの作成について詳しくは、次の記事https://helpx.adobe.com/experience-manager/using/polling.htmlを参照してください。

PollingImporter が原因でシャットダウンに時間がかかる

Analytics は継承メカニズムを念頭に置いて設計されています。通常、ページプロパティの「クラウドサービス」タブ内の Analytics 設定への参照を追加することで、サイトの Analytics を有効にします。ページで別の設定が必要な場合を除き、設定は再度参照する必要はなく、自動的にすべてのサブページに継承されます。サイトへの参照の追加により、複数のノードが自動的に作成されます(AEM 6.3以前の場合は12、AEM 6.4の場合は6) 以降)をcq;PollConfig型に変更します。この型は、AnalyticsデータのAEMへのインポートに使用するPollingImportersをインスタンス化します。 そのため、以下のようなことが起こりえます。

  • Analytics を参照しているページがたくさんあると、大量の PollingImporter につながります。
  • さらに、Analytics 設定への参照とともにページをコピーして貼り付けると、PollingImporters が重複します。

解決策

まず、error.logを分析すると、アクティブなPollingImportersまたは登録されているPollingImportersの量を知ることができます。 次に例を示します。

# Count PollingImporter entries
$ sed -n "s/.*(aem-analytics-integration-.*).*target=\(.*\),interval.*/\1/p" error.log | wc -l
86415
# Count PollingImporter entries for last30days
$ sed -n "s/.*(aem-analytics-integration-last30Days).*target=\(.*\),interval.*/\1/p" error.log | wc -l
14531
# Count unique paths of PollingImporter registrations
sed -n "s/.*(aem-analytics-integration-.*).*target=\(.*\)\/jcr:content.*/\1/p" error.log | sort | uniq -c
28115

次に、トップページ(階層の上位)のみに Analytics 設定が参照されていることを確認します。

AEMでのカスタムデータインポーターサービスの作成について詳しくは、次の記事https://helpx.adobe.com/experience-manager/using/polling.htmlを参照してください。

DTM(レガシー)の問題

DTM スクリプトタグがページソースにレンダリングされない

設定がページプロパティのクラウドサービスタブで参照されているにもかかわらず、DTM スクリプトタグがページに正しく含まれていない。

解決策

この問題を解決するには、次の方法を試してください。

  • 暗号化されたプロパティが復号化できることを確認します(暗号化では各 AEM インスタンスで異なる自動生成キーが使用される可能性があることに注意してください)。詳細については、構成プロパティの暗号化サポートも参照してください。

  • /etc/cloudservices/dynamictagmanagementにある設定を再公開します

  • /etc/cloudservices上のACLをチェックします。 ACL は次のようになります。

    • allow; jcr:read; webservice-support-servicelibfinder
    • 許可;jcr:read;みんなrep:glob:&ast;/defaults/&ast;
    • 許可;jcr:read;みんなrep:glob:&ast;/defaults
    • 許可;jcr:read;みんなrep:glob:&ast;/public/&ast;
    • 許可;jcr:read;みんなrep:glob:&ast;/public

ACL 管理の詳細については、ユーザー管理とセキュリティページを参照してください。

Target 統合の問題

カスタムページコンポーネントを使用しているときに Target コンテンツがプレビューモードで表示されない

この問題は、カスタムページコンポーネントに Target DTM 統合を処理する正しい JSP またはクライアントライブラリが含まれていないために発生します。

解決策

次の解決策を試してください。

  • カスタムheadlibs.jsp/apps/<CUSTOM-COMPONENTS-PATH>/headlibs.jspが含まれる場合)に次の内容が含まれていることを確認します。
<%@include file="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp?lang=ja" %>
<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>
  • カスタムhead.html (任意の/apps/<CUSTOM-COMPONENTS-PATH>/head.htmlの場合) ​が、次の例のように特定の統合ヘッドライブを選択的に含めないようにします。
<!-- DO NOT MANUALLY INCLUDE SPECIFIC CLOUD SERVICE HEADLIBS LIKE THIS -->
<meta data-sly-include="/libs/cq/dtm/components/dynamictagmanagement/headlibs.jsp?lang=ja" data-sly-unwrap/>

この servicelibs.jsp によって、必要な分析用 Javascript オブジェクトが追加され、Web サイトに関連付けられているクラウドサービスライブラリが読み込まれます。ターゲットサービスの場合、ライブラリは/libs/cq/analytics/components/testandtarget/headlibs.jspを介して読み込まれます

読み込まれるライブラリのセットは、Target の設定で使用されているターゲットクライアントライブラリのタイプ(mbox.js または at.js)によって異なります。

mbox.js または at.js 送信に DTM を使用する場合、コンテンツがレンダリングされる前にライブラリがロードされていることを確認してください。これらのライブラリを非同期的にロードするタグ管理システムを使用すると、ターゲット固有の JavaScript コードの実行に問題が生じる可能性があります。

追加情報については、ターゲットコンテンツ向けの開発ページを参照してください。

「Missing Report Suite ID in AppMeasurement initialization」というエラーがブラウザーコンソールに表示される

この問題は、Adobe AnalyticsがDTMを使用してWebサイトに実装され、カスタムコードを使用している場合に発生する可能性があります。 原因は、s = new AppMeasurement()を使用してsオブジェクトをインスタンス化することです。

解決策

new AppMeasurementインスタンス化メソッドの代わりにs_giを使用します。 次に例を示します。

var s_account="INSERT-RSID-HERE"
var s=s_gi(s_account)

正しいオファーではなく、デフォルトのオファーがランダムに表示される

この問題には複数の原因が考えられます。

  • サードパーティのTag Management Systemを使用してターゲットのクライアントライブラリ(mbox.jsまたはat.js)を非同期的に読み込むと、ターゲティングがランダムに中断する場合があります。 ターゲットライブラリはページヘッドに同期的にロードされることになっています。ライブラリが AEM から配信される場合、これは常に当てはまります。

  • 2つのターゲットクライアントライブラリ(at.js)を同時に読み込む(例えば、DTMを使用するライブラリとAEMのターゲット設定を使用するライブラリ)。 adobe.target バージョンが異なる場合、これが原因で at.js の定義がクラッシュする可能性があります。

解決策

次の解決策を試してください。

  • DTM のようなライブラリをロードするカスタムコード(Target ライブラリを順番にロードする)が、ページヘッド で同期的に実行されることを確認します。
  • サイトがDTMを使用してターゲットライブラリを配信するように設定されている場合は、サイトのターゲット設定で、DTM​が配信するClientlibがオンになっていることを確認してください。

AT.js 1.3+を使用する場合、正しいオファーの代わりにデフォルトのオファーが常に表示されます。

標準の AEM 6.2 および 6.3 は、AT.js バージョン 1.3.0 以降と互換性がありません。AT.jsバージョン1.3.0では、APIのパラメーター検証が導入されているので、adobe.target.applyOffer()には、atjs-itegration.jsコードで提供されていない「mbox」パラメーターが必要です。

解決策

この問題を解決するには、atjs-itegration.jsを編集し、adobe.target.applyOffer()のパラメーターオブジェクトに次のように"mbox": mboxNameフィールドを追加します。

adobe.target.getOffer({
    "mbox": mboxName,
    "params": params,
    "success": function (response) {
        adobe.target.applyOffer({
            "mbox": mboxName, //<--- ADDED PARAM
            "selector": "#" + mboxName,
            "offer": response
        })
    },

目標と設定ページにレポートソースセクションが表示されない

この問題は、A4TAnalytics Cloud構成のプロビジョニングの問題である可能性が高くなります。

解決策

AEM に次の確認要求を発行して、Target アカウントに対して A4T が正しく有効になっていることを確認する必要があります。

http://localhost:4502/etc/cloudservices/testandtarget/<YOUR-CONFIG>/jcr:content.a4t.json

{
    "a4tEnabled": true,
    "sharedsecret": "SECRET",
    "proxyUrl": "/libs/cq/contentinsight/content/proxy.reportingservices.json",
    "active": "true",
    "pageName": "",
    "url": "https://api5.omniture.com/rs/0.5/",
    "username": "USER@DOMAIN"
}

応答に a4tEnabled:false という行が含まれている場合、アドビカスタマーケアに連絡して、アカウントを正しくプロビジョニングするようご依頼ください。

参考 Target API

Target の問題をトラブルシューティングするときに、以下の 2 つのTarget API が参考になるかもしれません。

  • 特定のクライアントコードのTarget エンドポイントを取得する
https://admin.testandtarget.omniture.com/rest/v1/endpoint/<CLIENTCODE>.json

{"api":"https://admin<N>.testandtarget.omniture.com/admin/rest/v1"}
  • クライアントのプロファイルを取得する
https://admin<N>.testandtarget.omniture.com/admin/rest/v1/clients/<CLIENT>?email=<EMAIL>&password=<PASSWORD>

Response for N=4, CLIENT-dayintegrationintern
{
    "clientCode": "dayintegrationintern",
    "companyName": "Day Integration - Internal",
    "omnitureCompanyId": "Day Integration Internal",
    "softTraxId": -1,
    "address1": "XYZ",
    "city": "San Francisco",
    "state": "ca",
    "zip": "94107",
    "country": "UNITED STATES",
    "locale": "de_DE",
    "timeZone": "Europe/Berlin",
    "phone": "XX-XX-XXXX",
    "serviceLevel": "Up to 100,000",
    "privileges": [
        "a4t",
        "hosts",
        "TnT-SC-integration",
        "mvt",
        "steps",
        "testing-campaigns",
        "view-snapshot",
        "on-site-editor",
        "optimizing-campaign",
        "third-party-id-support",
        "landing-page-campaigns",
        "segment",
        "rest-create-user",
        "advanced-targeting",
        "mobile-device-targeting",
        "beta",
        "geolocation"
    ]
}

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now