このガイドでは、サードパーティ製アプリのデベロッパーが
MerchantSupport
サービスを使用して、販売者向けのアプリ内診断ページを作成できます。
次を使用: このサービスを使用すると、Merchant Center アカウントと同様の UI を作成できます。 診断とプロダクト 問題のページをご覧ください。
MerchantSupport
サービスはサードパーティの UI 専用です。リクエストに含める
販売者がアプリの UI を操作したときにトリガーされます。自動化
診断ツールについて詳しくは、こちらの
status、product
ステータス、商品のステータス
フィルタリング ガイドをご覧ください。
アプリ内で次のページを提供することで、 販売者様が対処すべき問題:
- アカウント診断
- 商品の診断
診断ページを実装するためのさまざまなオプション
診断ページはさまざまな方法で実装できます。必要に応じて
オプションを選択して、複雑な診断アクションの処理方法を決定します。イン
リクエストでは、user_input_action_option
を次のいずれかに設定できます。
オプション:
REDIRECT_TO_MERCHANT_CENTER
: これはデフォルトのオプションです。アクション 追加のコンテンツを表示する、またはプロンプトから追加の入力を アプリに完全に実装されていない可能性があります。そのため API は、 Merchant Center の対応するページにリダイレクトするリンクです。 確認できます。BUILT_IN_USER_INPUT_ACTIONS
: 次の要素を必要とする複雑なアクションを実装できます。 ユーザー入力をアプリ内のソリューションとして活用します。
診断ページを実装する
このセクションでは、診断ページの実装方法について説明します。デフォルトの (シンプル)オプション: Merchant Center へのリダイレクトとして複雑なアクションを処理します。
アプリ内コンバージョンを使ったより高度な実装については、以下をご覧ください ユーザー入力で組み込みアクションを実装するをご覧ください。
実装
診断ページのフローは次のようになります。
- 販売者がアプリで診断ページを開きます。
アプリは
MerchantSupport
サービスを呼び出して診断をリクエストします。リクエストの例を次に示します。
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/renderaccountissues?timeZone=America/Los_Angeles&languageCode=en-GB {}
{merchantId} は、一意の ID に置き換えます。 アカウントを選択します。
レスポンスの診断と推奨される対応がアプリに表示されます 必要があります。レスポンスの例を次に示します。
{ "issues": [ { "title": "Misrepresentation", "impact": { "message": "Prevents all products from showing in all countries", "severity": "ERROR", "breakdowns": [ { "regions": [ { "code": "001", "name": "All countries" } ], "details": [ "Products not showing organically" ] } ] }, "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eBased on the information available about your business, there is reason to believe that customers are being misled on Google. Review the Misrepresentation policy and make changes to your Merchant Center and/or online store.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure your Merchant Center and online store follow the following best practices / guidelines\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eProvide transparency about your business identity, business model, policies and how your customers can interact with you\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003ePromote your online reputation by showing reviews or highlighting any badges or seals of approval\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eUse a professional design for your online store that includes an SSL certificate\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eMake sure it's accessible for all users without any redirects and doesn't have any placeholders for text and images.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eProvide information in the business information settings in your Merchant Center\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eLink any relevant third-party platforms to your Merchant Center and create a Google Business Profile.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eFollow SEO guidelines, improve your eligibility for seller ratings and match your product data in your Merchant Center with your online store\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/6150127?hl=en-US\" class=\"content-element\"\u003eLearn more about the Misrepresentation policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e", "actions": [ { "externalAction": { "type": "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER", "uri": "https://merchants.google.com/mc/products/diagnostics/accountissues?a=672911686&hl=en-US" }, "buttonLabel": "Request review", "isAvailable": true } ] }, { "title": "Adult-oriented content", "impact": { "message": "Prevents all products from showing in all countries", "severity": "ERROR", "breakdowns": [ { "regions": [ { "code": "001", "name": "All countries" } ], "details": [ "Products not showing organically" ] } ] }, "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"callout-banners\"\u003e\u003cdiv class=\"callout-banner callout-banner-info\"\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eReview requested on Aug 9, 2023. It can take a few days to complete.u003c/span\u003e\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eThere was a problem identified with the sale of prohibited adult products on your online store. In the case that you are intentionally selling adult items, enable Adult content in Settings in your Merchant Center. In your product file, use the \u003c/span\u003e\u003cspan class=\"segment segment-attribute\"\u003eadult\u003c/span\u003e\u003cspan class=\"segment\"\u003e attribute for specific products.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure the products meet the policy requirements\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eAdult oriented content may be prohibited or restricted depending on the product sold and the country it is sold\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eSee a full list of countries in the HelpCenter\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eDon't list sexually explicit content that is intended to arouse or includes content such as text, image, audio, or video of graphic sexual acts intended to arouse\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eExamples: Graphic depictions of sexual acts in progress, including hardcore pornography, any type of genital, anal, or oral sexual activity; graphic depictions of masturbation or genital arousal and language explicitly referencing arousal, masturbation, cartoon porn, or hentai\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/6150138?hl=en-US#wycd-restricted-adult-content\" class=\"content-element\"\u003eLearn more about the Adult-oriented content policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e" }, { "title": "Missing return and refund policy", "impact": { "message": "Limits visibility of all products in all countries", "severity": "ERROR", "breakdowns": [ { "regions": [ { "code": "001", "name": "All countries" } ], "details": [ "Limited visibility for products showing organically" ] } ] }, "prerenderedContent": "\u003cdiv class=\"issue-detail\"\u003e\u003cdiv class=\"issue-content\"\u003e\u003cp class=\"content-element\"\u003e\u003cspan class=\"segment\"\u003eThere was a problem identified with the return and/or refund policy of your online store. Update your return or refund policy to provide customers a transparent shopping experience.u003c/span\u003e\u003c/p\u003e\u003cp class=\"content-element root-causes-intro\"\u003e\u003cspan class=\"segment\"\u003eMake sure your products meet the Shopping policy requirements\u003c/span\u003e\u003c/p\u003e\u003cul class=\"content-element root-causes\"\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eIt's available on your online store\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eWe recommend that you have a separate landing page for your policy and link to it from the other pages on your online store, so that it's easy to find.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp class=\"tooltip tooltip-style-info\"\u003e\u003cspan class=\"segment\"\u003eIt's available in the language of the country you're selling in or in English\u003c/span\u003e\u003cspan class=\"tooltip-icon\"\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"tooltip-text\"\u003e\u003cspan class=\"segment\"\u003eMake sure that the return and/or refund policy is available in the target language or in English. Ideally, users should be given the option to select the return and/or refund policy in their own language.u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cspan class=\"segment\"\u003eIt's accessible to everyone visiting your online store, without having to log in, sign up or enter any personal information\u003c/span\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003ca href=\"https://support.google.com/merchants/answer/9158778?hl=en-US\" class=\"content-element\"\u003eLearn more about Missing return and refund policy\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e", "actions": [ { "externalAction": { "type": "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER", "uri": "https://merchants.google.com/mc/products/diagnostics/accountissues?a=672911686&hl=en-US" }, "buttonLabel": "Request review", "isAvailable": true } ] } ], "alternateDisputeResolution": { "uri": "https://support.google.com/european-union-digital-services-act-redress-options?hl=en-US", "label": "Additional options available to you" } }
返品された順に問題を表示することをおすすめします。
title
とimpact.message
。また、Google Chat で 販売者が問題にカーソルを合わせると、その問題のimpact.breakdowns
指定します。販売者がリスト内の問題をクリックします。
アプリは、各問題の詳細な
impact
をcountry
ごとに表示します。destination
、prerendered_content
、ボタン のactions
をお支払いください。他にも さまざまな種類のアクションがあります。- 外部アクション: 外部ページ( Merchant Center。販売者が問題を解決できます。
- 組み込みのシンプル アクション: アプリケーション内で 問題を解決できます。
- 組み込みのユーザー入力アクション: 販売者が
必要な情報を入力してアクションをリクエストします。このタイプの
アクションは、
BUILT_IN_USER_INPUT_ACTIONS
が 渡されます。
販売者は手順に沿って問題を解決します。
販売者がアプリの診断ページを再読み込みします。
アプリが別のリクエストを
MerchantSupport
サービスに送信する。 問題の最新リストが表示されます。
完成したアプリで表示される情報と、 Merchant Center の診断ページ Center を使用して、 説明します。
UI モック
次は、Pub/Sub から取り込まれた
アカウント診断ページの renderaccountissues
レスポンス。オブジェクトの
UI は、モック内の対応する API フィールドにマッピングされています。同様の
確認してください
入力されたアカウント診断ページは次のように表示されます。
プリレンダリングされた HTML のスタイルを設定する
MerchantSupport
サービスを呼び出すと、レスポンスには以下が含まれます。
prerendered_content
フィールド。HTML での各問題の詳細。スペースの
この HTML コンテンツを UI に直接取り込んで、問題を読み取れる形式で表示します。
使用できます。
new-element
クラスの HTML 要素が表示される場合があります。new-element
クラスは、統合後に HTML に追加される要素に適用されます。
MerchantSupport
サービスを使用します。クラスで要素を非表示にすることをおすすめします
new-element
- これらの要素が表示される前にスタイルを設定できる
測定します
prerendered_content
フィールド値の例を次に示します。
<div class="issue-detail">
<div class="callout-banners">
<div class="callout-banner callout-banner-info"><p><span class="segment">Review requested on Aug 9, 2023. It can take a few days to complete.</span>
</p></div>
</div>
<div class="issue-content"><p class="content-element"><span class="segment">There was a problem identified with the sale of prohibited adult products on your online store. In the case that you are intentionally selling adult items, enable Adult content in Settings in your Merchant Center. In your product file, use the </span><span
class="segment segment-attribute">adult</span><span class="segment"> attribute for specific products.</span>
</p>
<p class="content-element root-causes-intro"><span class="segment">Make sure the products meet the policy requirements</span>
</p>
<ul class="content-element root-causes">
<li><p class="tooltip tooltip-style-info"><span class="segment">Adult oriented content may be prohibited or restricted depending on the product sold and the country it is sold</span><span
class="tooltip-icon"><br></span><span class="tooltip-text"><span class="segment">See a full list of countries in the HelpCenter</span></span>
</p></li>
<li><p class="tooltip tooltip-style-info"><span class="segment">Don't list sexually explicit content that is intended to arouse or includes content such as text, image, audio, or video of graphic sexual acts intended to arouse</span><span
class="tooltip-icon"><br></span><span class="tooltip-text"><span class="segment">Examples: Graphic depictions of sexual acts in progress, including hardcore pornography, any type of genital, anal, or oral sexual activity; graphic depictions of masturbation or genital arousal and language explicitly referencing arousal, masturbation, cartoon porn, or hentai</span></span>
</p></li>
</ul>
<a href="https://support.google.com/merchants/answer/6150138?hl=en-US#wycd-restricted-adult-content"
class="content-element">Learn more about the Adult-oriented content policy</a></div>
</div>
先ほどの HTML を埋め込みた場合、次のようになります。
スタイリングなしのアプリで prerendered_content
を使用する場合:
複数の CSS クラスを使用して、UI でのコンテンツのレンダリング方法を調整できます。 次の CSS サンプルを使用できます。
issue-detail {
text-align: left;
width: 700px;
border-radius: 8px;
background: white;
margin: 16px;
padding: 16px;
}
.content-element {
margin: 8px 0 8px 0;
display: block;
}
/* callout banners */
.callout-banners {
margin: 0 0 16px 0;
}
.callout-banner {
display: block;
padding: 16px 16px 6px 16px;
margin: 0 0 8px 0;
border-radius: 8px;
}
.callout-banner-info {
background: #e8f0fe;
}
.callout-banner-warning {
background: #fef7e0;
}
.callout-banner-error {
background: #fce8e6;
}
/* add an icon to the callout banner */
.callout-banner p {
background-repeat: no-repeat;
padding-left: 32px;
}
.callout-banner-error p {
background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/error/default/20px.svg");
}
.callout-banner-warning p {
background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/warning/default/20px.svg");
}
.callout-banner-info p {
background-image: url("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/search/default/20px.svg");
}
/* segments with style */
.segment-attribute {
color: #198639;
font-family: monospace, monospace;
}
.segment-bold {
font-weight: bold;
}
.segment-italic {
font-style: italic;
}
/* tooltip */
.tooltip {
position: relative;
}
.tooltip-style-info .tooltip-icon:before {
content: '(i)';
font-style: normal;
font-weight: normal;
text-decoration: inherit;
margin-left: 5px;
}
.tooltip-style-question .tooltip-icon:before {
content: '(?)';
font-style: normal;
font-weight: normal;
text-decoration: inherit;
margin-left: 5px;
}
.tooltip .tooltip-text {
visibility: hidden;
text-align: left;
background: white;
border-radius: 8px;
padding: 5px 0;
border: 1px solid;
padding: 10px;
box-shadow: 3px 7px 12px #c1c1c1;
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltip-text {
visibility: visible;
}
/* table */
table.content-element {
margin: 16px 0 16px 0;
border: 1px solid #ccc;
border-collapse: collapse;
margin: 1em 0;
}
table.content-element th {
background-color: #eee;
}
table.content-element th, table td {
border: 1px solid #ddd;
font-size: 0.9em;
padding: 0.3em 1em;
}
/* hidde elements added in future, until they are supported in your application */
.new-element {
visibility: hidden;
}
上記の CSS を使用した場合のレンダリングされたコンテンツは次のようになります。
CSS でツールチップを設定して表示することもできます。
ユーザー入力で組み込みアクションを実装する
ユーザー入力を含む組み込みアクションを使用して、複雑な診断情報を提供 アプリ内ソリューションとして利用できます。おすすめは ダイアログで入力できます。販売者は、このダイアログで リクエストを確認します。
各アクションには 1 つ以上のアクション フローが含まれます。アクションによっては、 できます。たとえば、ユーザーがリクエストする 販売者が決定に異議があるため、追加の審査を要求している 別のフローを試します
ユーザー入力による複雑なアクションを実装するためにデータをリクエストするには、
user_input_action_option
フィールドを BUILT_IN_USER_INPUT_ACTIONS
値に設定します。
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/renderaccountissues
{
"user_input_action_option": "BUILT_IN_USER_INPUT_ACTIONS"
}
{merchantId} は、一意の ID に置き換えます。 アカウントを選択します。
実装
診断ページでユーザーにリクエストするフローを 入力は次のようになります。
販売者が操作ボタンをクリックします。
- 利用可能なフローが複数ある場合は、そのすべてを提供するため、 販売者は意向に応じていずれかを選択できます。
- 販売者がフローを選択します。
タイトル、メッセージ、コールアウト、ユーザー入力フォームが アクション フローを選択します。これらの詳細情報は、 クリックします。
- コールアウトには、お客様をサポートすることを目的とした アクションの仕組みや対処方法を ありますメッセージをハイライト表示してスタイル設定することをおすすめします コールアウトの重大度に応じて変わります。
- フローに入力フィールドがある場合は、それらを表示する必要があります。 販売者は値を指定できます入力フィールドが [required] とマークされている場合は、 その場合、アプリで販売者がリクエストを送信する前に 値を指定します。
販売者が情報を読み取り、リクエストされた値を指定します。
販売者はボタンをクリックしてリクエストを確定します。
アプリは
MerchantSupport
サービス。リクエストの例を次に示します。POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/merchantsupport/triggeraction { actionContext: "ActionContextValue=", actionInput: { actionFlowId: "flow1", inputValues: [ { input_field_id: "input1", checkbox_input_value: { value: true } } ] }
{merchantId} は、一意の ID に置き換えます。 アカウントを選択します。
BuiltInUserInputAction
のtriggeraction
メソッドにアクセスするには、 こちらの フォームに記入してください。MerchantSupport
から返された確認メッセージがアプリに表示される あります。- サービスが
INVALID_ARGUMENT
で検証エラーを返した場合 status が表示されます。ここには、詳細な情報と 販売者に表示されるローカライズされたエラー メッセージ。おすすめの方法 該当する入力フィールドの近くにエラーが表示されます。例 追加します。
{ "error": { "code": 400, "message": "[actionInput.inputValues] Invalid user input", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "invalid", "domain": "global" }, { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "actionInput.inputValues.input", "description": "The field is required" } ] } ] } }
- サービスから無効な状態または内部エラーが返された場合、
FAILED_PRECONDITION
およびINTERNAL
ステータスの場合、アプリは ページを再読み込みするか、しばらくしてからもう一度お試しください。
- サービスが