Checkout Extensibilityへ移行後のYahoo広告のCV計測について

Checkout Extensibilityへ移行後、Thank youページに埋め込まれていた追加タグをShopify Pixelに書き換えました。

それ移行、CVが計測されなくなりました。

試したこと### Yahoo!広告 連携

ハックルベリー社が提供している、Yahoo!広告 連携を試しましたが、自分で運用した場合も追加費用がかかることや、既存のヤフーアカウントが使えないことを理由を使用を断念しました。

Shopifyピクセル

下記のようにShopify Pixelを設定しています。一部実際のタグとは異なる部分がありますが、概ね下記のようなコードになります。

  const script = document.createElement('script');
  script.setAttribute('src', 'https://s.yimg.jp/images/listing/tool/cv/ytag.js');
  script.setAttribute('async', '');
  document.head.appendChild(script);
  
  window.yjDataLayer = window.yjDataLayer || [];
  function ytag() { yjDataLayer.push(arguments); }
  ytag({"type":"ycl_cookie", "config":{"ycl_use_non_cookie_storage":true}});

analytics.subscribe("checkout_completed", async (event) => {
  try{
    const obj = {
    "type": "yss_conversion",
    "config": {
      "yahoo_conversion_id": "000000000",
      "yahoo_conversion_label": "sample",
      "yahoo_conversion_value": "999"
      }
    }
    ytag(obj);
  }catch(error){
    const message = error.message
  }
});

その他にTagManagerにYahoo タグを入れてテストしましたが、どうようにCVを計測出来ませんでした。

なぜ、Yahoo広告のCVは計測出来ないのでしょうか?

@akky

最後に確認したのは、3ヶ月以上前ですが、

その際には、コンバージョンタグを、カスタムピクセルに移してもコンバージョンの計測はできませんでした。

現状のYahooが提供している機能でCV計測を行おうと思うと下記のような手順になるのではないかと考えています。

※十分な検証はしておりません。必ずこれでうまくいくとも言い切れない点、ご留意ください。

  1. Yahoo広告管理ツールにて、Yahoo Conversion APIを申し込む。https://ads-developers.yahoo.co.jp/ja/ads-api/startup-guide/apply-api-use.html
  2. 上記URLに記載された手順に従い、認可処理を行う。https://ads-developers.yahoo.co.jp/ja/ads-api/startup-guide/api-call.html
  3. カスタムアプリ (ではなくてもいいのですが)を開発し、下記の機能を実装する。
    1. コンバージョンを受け取るためのAPI
    2. コンバージョンを一定時間保持し、定期的にCSV出力する機能
    3. 主力されたCSVをYahoo Conversion APIのOfflineConversionService/uploadを使って、Yahooに送信する機能
  4. カスタムピクセルにて、locationにyclidがあればyclidを保存しておくようにする。https://ads-help.yahoo-net.jp/s/article/H000044354?language=ja
  5. カスタムピクセルにて、checkout_completedで、カスタムアプリに用意したコンバージョン受取用APIに、yclidとその他コンバージョン計測に必要なデータを送信する

開発は必要ですが、

そこまでの難易度ではないので、

開発パートナー様がいらっしゃるのであれば、

相談してみると良いかもしれません。

ご参考まで。

(キュー田辺)

ご返信が遅くなり申し訳ございません。

頂いた案を元にコンバージョン計測の検証を行ったので、コンバージョン計測が上手く行きませんでした。

Shopify Custom Pixelの部分で 下記のようなコードを実装しました。

Show More

javascript const urlParams = new URLSearchParams(window.location.search); if(urlParams.has('yclid')){ const yclid = urlParams.get('yclid'); browser.cookie.set('yclid', yclid); } analytics.subscribe("checkout_completed", async (event) => { const yclid = await browser.cookie.get('yclid'); if (yclid && yclid !== "") { const url = "sample.com"; const payload = { timestamp: event.timestamp, currency: event.data.checkout.currencyCode, total_price: event.data.checkout.totalPrice.amount, yclid: yclid }; fetch(url, { method: "POST", body: JSON.stringify(payload), keepalive: true }); } });

実際にYahoo広告を稼働し、GA4からYahoo広告からコンバージョンを確認出来ているので、こちらのShopify Custom Pixelが正常に動いていないようで、自社APIまでリクエストがたどり着いていない状況です。

おそらく注文完了ページでCookie内のyclidが参照出来ないことが原因だと思うのですが、上記のコードに誤りなどはございますでしょうか?

ご指摘頂けましたら、幸いです。

@akky

1行目を下記のようにすると良いですよ。

const urlParams = new URLSearchParams(init.context.document.location.search);

※カスタムピクセルは、iframeとしてページに展開されます。windowは、iframeのwindowになってしまいページ(親フレーム)のURLを取得できません。親フレームの情報は大体、"init"に入っていますので、"init"からURLを取得します。

(キュー田辺)

なぜ、Yahoo広告のCVは計測出来ないのでしょうか?

@akky

「App Unity Tracking ‑ 広告・GA4計測連携」を提供しているリワイアの北林と申します。

上記の件ですが、タグはサンドボックス環境下で動作し、外部との通信に一定の制約が課されるため、従来のYahoo!広告の計測手法ではコンバージョンの取得が困難となっていました。

弊社では、ShopifyのCheckout Extensibility(チェックアウト機能の新仕様)への移行後でも、Yahoo!広告のコンバージョン計測が可能となる機能を「App Unity Tracking」アプリにて提供しております。

この機能では、Yahoo!広告の「オフラインコンバージョンAPI」を活用して計測を行う仕組みとなっており、すでに運用中の広告アカウントをそのままご利用いただけます。対応範囲としては、検索広告・ディスプレイ広告のどちらにも対応しております。

参考:「 Shopify 対応広告計測アプリ「App Unity Tracking」、Yahoo!広告コンバージョン測定を可能にする新機能をリリース

1 Like