こんにちは。Feedmatic広告運用コンサルタントの齋藤です。

優れた機械学習エンジンによる費用対効果の高さから、多くの企業が取り組んでいるCriteo広告。
そのCriteo広告の要となる機械学習エンジンの精度を高めるためには、データフィードの改善が重要です。

今回は、Criteo広告に置けるデータフィードの役割から、規定の仕様、改善ポイントまでを解説します。

Criteoにおけるデータフィードの役割

Criteoでダイナミック広告を配信するためには、仕様に沿った「データフィード」が必要です。

データフィードとは、サイトの商品リストをもとに、各広告媒体の仕様に合わせたデータのこと。商品カタログ、商品フィード、フィードなどと呼ばれることもあります。

Criteoにおいてデータフィードは大きく二つの役割を担います。

ひとつは、広告のクリエイティブに表示されるタイトルや説明文などを定義すること

Criteoを含め一般的なダイナミック広告では、データフィードの情報が自動的にクリエイティブに反映されます。

データフィードと広告クリエイティブ

タイトルや説明文、価格、商品画像などをデータフィード上に登録しておくことで、Criteoエンジンが最適な組み合わせ・レイアウトで広告上に表示させます。

他の広告と同様に広告サイズは限られているため、大事な訴求ポイントはタイトルや説明文などの文頭に表示させるなどの工夫が必要です。

また、タイトルや説明文などのテキスト表示だけでなく、バッジ機能を活用する際にも活用されます。(バッジ機能については、3章でご紹介します)

バッジ内の文言は指定できない媒体もありますが、Criteoはデータフィードでどの商品にどのバッジを表示させるかを指定することが可能です。

ダイナミック広告(データフィード広告)では商品ごとに適したクリエイティブになるよう、データフィードをチューニングすることが重要となります。

そしてもう一つの役割は、エンジンのレコメンド精度を高めること

ユーザーがサイト上で閲覧した商品ID情報をCriteoが受け取ると、データフィードの情報と突き合わせて広告表示すべきアイテムを選定します。

例えば、閲覧したのが商品ID「A123」であった場合、データフィード上のidカラム(もしくはitem_group_idカラム)上で「A123」に一致するIDを探し出し、その商品に登録されたデータフィード上の情報を広告表示させます。

また、広告表示させるのは閲覧済み商品だけではありません。

データフィードに登録してある情報から商品の属性を読み取り、似たような属性の商品など、そのユーザーが興味をもつであろう商品をレコメンドします。(必ずしも似たような属性の商品がレコメンドされる訳ではなく、他ユーザーのデータを含め過去の様々な傾向からレコメンドすべきアイテムをエンジンが判断します)

クリエイティブには反映されないデータフィードカラムも、裏側ではエンジンがどの商品をレコメンドすべきか判断する材料になっているので、Criteo広告の成果に大きなインパクトを与えます。

このように、データフィードには、広告のクリエイティブを定義する、レコメンドの精度を上げる、という重要な役割があります。そのため、データフィード改善がCriteo広告の成果に与えるインパクトは、他施策と比較しても非常に大きいといえます

Criteoフィードの仕様

Criteoでは業界別に推奨のデータフィード仕様があります。(引用:公式ヘルプ 商品カタログの仕様について | Criteo

  • 一般/小売
  • フライト
  • ホテルと宿泊施設
  • 求人広告
  • 求人掲示板

ここでは一般/小売向けのデータフィードである「Criteo Performance Product Feed(CPPF)」の概要をご紹介します。

任意の項目はなくても配信は可能ですが、任意カラムも含め学習に活用されるため出来る限りすべての項目に情報を入れることをおすすめします。

項目概要
id(必須)単一の商品を表す一意の識別子abc123-hogehoge-45
title(必須)titleは商品の名前で、通常は商品の詳細ページに表示されます。タイトルは、バナーで商品名を表示するために利用されます。プルオーバー(ブラック)
link(必須)linkは商品詳細ページのURLhttps://example.com/item/knit/12345678
image_link(必須)特定の商品の画像へのファイルパスを指定するURLhttps://example.com/item/image/12345678.png
additional_image_link(任意)特定の商品の画像へのファイルパスを指定するURLhttps://example.com/item/image/12345678_2.png
price(必須)priceはバナーに表示される商品の価格1234.56
sale_price(任意)sale_priceはセール中の商品の価格99.99
availability(任意)商品がサイトで購入できるかどうかを次の3つの値で指定
・「preorder」(仮注文: 商品は現在出荷できないが注文は可能である場合)
・「out of stock」(在庫切れ: 商品は出荷しておらず、注文も受け付けていない場合)→バナーの表示対象から除外
・「in stock」(在庫あり: 商品は出荷中で注文を受付可能である場合)
in stock
description(任意: ※但しFacebookに広告を出稿する場合、description は必須)バナーに表示される商品説明文女の子らしく可愛く仕上げたキャミソール。伸縮性にも優れ着心地バツグンです。
google_product_category(任意)Googleの商品分類に基づいて商品アイテムのカテゴリーを指定2271またはアパレル&アクセサリー > トップス > キャミソール
product_type(任意)「>」の区切り文字で、3つまでの商品属性を指定ユーザーが興味のある他の商品を予測するために利用FFブランド > Tシャツ > 女性向け
brand(Criteoリテールメディアで必須)商品のブランド名を指定(ブランドが明確でない商品の場合、省略可)Feedmatic
star(任意)アイテムの評価(小数点を区切り記号として使用)4.5
item_group_id商品カタログ内でバリエーション商品をグループ化する一意の商品識別子。商品の詳細(size [サイズ]、color [色]、material [素材]、pattern [柄]など)のみが異なる類似したバリエーション商品をグループ化できる。abc123
adult(任意)すべてのユーザーやオーディエンスに商品を提示しても安全かどうかを示す属性。「yes」または「no」のいずれかで指定。no

尚、より詳しい商品カタログの仕様は以下Criteo社サイトでご確認ください。

特に重要なデータフィードカラムと改善Tips

なかでも特に改善インパクトが大きいフィードカラムとその改善ポイントをご紹介します。

item_group_idで同一商品のレコメンドを管理

Criteoエンジンがユーザーが閲覧した商品を判定するのに使っているのがidカラムとitem goup idカラムです。

item_group_idカラムは、商品データ内でのバリエーション商品をグループ化するものです。例えば、同じTシャツに赤、白、青の3カラーバリエーションが存在する場合、IDはすべて固有である必要がありますが同一商品のカラーバリエーションであることをエンジンに知らせるためにitem_group_idには同一の文字列を記載します。

これにより得られるメリットは二つです。

  1. 閲覧した商品が在庫切れだった場合、同一商品のなかから在庫のある他カラーを広告でレコメンドが可能
  2. item_group_idが同一の商品は1つのみ広告表示されるため、色違いの商品がバナー上で同時に表示されることがなくなる

item_group_idは任意カラムになりますが、同一商品に複数のSKUIDが存在する際は是非活用することをおすすめします。

product_typeは細かすぎず、粗すぎず。

product_typeカラムは、ユーザーが閲覧した商品の属性から、そのユーザーが興味のある他の商品を予測するために活用されるカラムです。

たとえばユーザーがproduct_typeに「FFブランド > Tシャツ > 女性向け」と登録された商品を閲覧していた場合、類似するproduct_typeが登録されている他商品である「FFブランド > パーカー > 女性向け」(ブランドと性別が同一、商品カテゴリが異なる他アイテム)や「GGブランド>Tシャツ>女性向け」(商品カテゴリと性別が同一、ブランドが異なる他アイテム)などのレコメンドが可能となります。

例にも記載の通り、product_typeは「>」の区切り文字で、3つまでの商品属性を指定することできます。

3つの商品属性を選定する際には、同一product_typeのアイテムが少なすぎることのないように気を付けましょう。同一のproduct_typeが少なすぎると、他にレコメンドすべきアイテムの選択肢が狭まってしまうリスクがあります。1product_typeあたりのアイテム数が10点未満となってしまうようであれば、一段階product_typeの粒度を粗くしてあげると良いかとおもいます。

バッジ機能の活用

冒頭でもすこしご紹介しましたが、Criteoではバッジ機能と呼ばれる商品の訴求ポイントをアイコン表示で目立たせる機能を活用できます

下記のうち、「10%OFF」や「送料無料」といったアイコン表示がバッジに該当します。

Criteo バッジ機能のメリット

バッジ機能は、データフィードに登録されている情報から、どのような条件の商品にどのバッジをつけるといった出し分けが可能です。

例えば、データフィード上で「price」カラムに登録された定価より「saleprice」カラムに登録された割引後価格の方が10%安価である場合にのみ、「10%OFF」バッジを表示させるという条件指定です。

バッジ機能についての詳細は以下の記事をご覧ください。機能の詳細、設定方法などを詳しくご紹介しています。

尚、これらのバッジは登録したからといって必ず表示されるわけではなく、エンジンがバッジ表示することで成果がよいだろうと判断された場合にのみ表示されます。

訴求したいポイントはバッジで訴求できるように登録しておき、エンジンがクリエイティブを最適化するにあたって選択肢をより広く設定しておくことをおすすめします。

additional_image_linkで複数画像をみせる

additional_image_linkは、image_linkカラムで指定したメイン画像以外の画像が登録できる機能です。

下記画像のように、メイン画像とは別方向から撮影された画像などやモデル着用画像などの登録で、メイン画像だけでは伝わりにくい細かい商品のデザインなどを訴求できるようになります。

Criteo additional_image_link
(媒体資料「ダイナミックパフォーマンスバナー仕様書」より引用)

データフィード上のadditional_image_linkカラムに追加したい画像のURLを追加したのち、媒体社への取込依頼と専用レイアウトの追加が必要となります。カラムに情報を追加しただけでは表示されないので、注意が必要です。

また、複数画像URLを登録する際は、複数画像のURLをカンマで区切り、一つのセル内に収めるようにしましょう。

データフィードは更新頻度が重要です!

ここまでCriteoにおいてデータフィードのチューニングが重要であることをお伝えしてきましたが、いくらデータフィードの設計をこだわってもその情報が最新でなければ成果を出すことは難しくなります。

サイトでは在庫切れになっている商品を広告訴求してしまったり、サイトとは異なる価格が広告表示されてしまうと、広告成果が下がるだけでなくサイトやブランドへの信頼も損なわれる危険性があります。

Criteoでは通常1日最大4回まで更新が可能となりますので、サイト上で価格や商品が頻繁に変動するようなサイトは特に更新頻度を出来るだけ多く設定しておくことをおすすめします。

以上、Criteoにおけるデータフィードの仕様やチューニングするときのポイントについてお伝えしました。今一度自社のCriteoデータフィード設計チェックし、より改善できるポイントがないかを見直す機会となれば幸いです。