API・SDK

eBay Trading APIにあるItemTypeクラスのHitCount/HitCounterはまさかの動作しないらしい

APIの画像

こんにちは!ゆーたろうです。

eBayのAPI(Trading)を使っていてわかったことがあったので、個人的な備忘録も兼ねて紹介しようと思います。

前書き

この記事では、
・eBay APIはどういうものかを知っている
・自身でAPIを使ったプログラミングができる
ことを前提にしてお話ししています。

そのため、APIの使い方など、端折れるところは省いていますので、ご了承ください。

また、個人的なメモとしてこの記事を残すのがメインで作成しております。

そのため、至らぬ部分が多くあるかと思いますので、その点も併せてご了承ください。

実装したプログラム

HitCountに値が入っていないことが分かったのは、eBay-APIを使って、出品している商品情報を取得するために、このプログラムを書いたときのことです。

※変数定義やレスポンス取得などの部分は省略しています。

if ($response->Ack !== 'Failure' && isset($response->ActiveList)) {
    foreach ($response->ActiveList->ItemArray->Item as $item) {
        echo "ID:" . $item->ItemID;
        echo "<BR>商品名:" . $item->Title;
        echo "<BR>通貨:" . $item->SellingStatus->CurrentPrice->currencyID;
        echo "<BR>価格:" . number_format($item->SellingStatus->CurrentPrice->value, 2);
        echo "<BR>HitCount:" . $item->HitCount;
        echo "<BR>HCounter:" . $item->HitCounter;
        echo "<BR>残時間:" . $item->TimeLeft;
        echo "<BR>SKU:" . $item->SKU;
        echo "<BR>ウォッチ:" . $item->WatchCount;
        echo "<BR>開始時間(UnixTime):" . ($item->ListingDetails->StartTime)->format('U');
        echo "<HR>";
        }
    }
}

実行結果は以下です。

ebay-api-ItemTypeの実行結果

HitCounterとHitCountの部分が空になっているのです。

そもそもItemTypeクラスのHitCount/HitCounterとは?

ItemTypeクラスが入っているItemType.phpを見てみましょう。

プロパティの定義個所を見るとこのようになっています。

 * @property integer $HitCount
 * @property \DTS\eBaySDK\Trading\Enums\HitCounterCodeType $HitCounter

HitCountは、ページに訪問したアクセス数が取得できる

HitCountは、Integer型。つまり整数値が入るのでこれがページビューに当たります。

セラー専用ですが、セラーであれば出品ページに行くとこのようにヘッダ部分に訪れた人数が表示されます。

商品は伏せていますが、私が出品したこの商品で言うと、Page view:6となっているので、6人が訪問していることになります。

ebay-listing-page-view-position

つまり、HitCountには取得されていれば、6という数値が取得できることになります。

HitCounterは、、、分からなかった→アクセス数の表示方法を指定するもの

【2020年5月21日追記】

HitCounterについて判明したので、追記します。

HitCounterとは、アクセス数を、出品ページのどこに表示させるかを指定するもの。

でした。

例えば、「AddFixedPriceItem」のマニュアルのように、APIから出品する際、HitCounterにHitCounterCodeType に書かれているフラグをセットすることで、そのページのアクセス数をセラーが決めることができるようです。

デフォルトはNoHitCounter(=非表示)になっているので、BasicStyleやGreenLEDを指定すれば、フラグに応じた表示がされます。

結論から言うと、HitCounterは何を指すのかは分かりませんでした。

そして、もっと結論を言えば、HitCounterにおいては、2020年5月10日現在、サポートされていないので、そもそも正しく動かないことが分かりました。

もしかしたら今後、何かしらの役に立つかもしれないので、念のため調査フローをメモしておきます。

HitCounterについての調査フロー

1.ItemType.phpのプロパティ宣言により「\DTS\eBaySDK\Trading\Enums\HitCounterCodeType型」であることが分かる。

そこで、この定義個所を確認すると、以下のようになっている。

class HitCounterCodeType
{
    const C_BASIC_STYLE = 'BasicStyle';
    const C_CUSTOM_CODE = 'CustomCode';
    const C_GREENLED = 'GreenLED';
    const C_HIDDEN = 'Hidden';
    const C_HIDDEN_STYLE = 'HiddenStyle';
    const C_HONESTY_STYLE = 'HonestyStyle';
    const C_NO_HIT_COUNTER = 'NoHitCounter';
    const C_RETRO_STYLE = 'RetroStyle';
}

HitCounterには、何かのフラグ的なものが入るor設定するものだとわかります。

2.そこで、「eBay HitCounterCodeType」でググったところ、公式のドキュメントが見つかる。

HitCounterCodeType(トークン)

ここに「ページの訪問を追跡するためにeBayリストで使用できる訪問カウンタースタイルのリストを含む列挙型。」と書いてありましたが、さっぱり分かりません^^;

とりあえず、【ページに訪れた数を分析するもの】ということでしょうか?

例えば、6人訪れた内、3人はeBay内の検索から訪れた、とか、2人は外部サイトから訪れた、とか?

さらに調べを進めると「How To Send A Revised Invoice On Ebay」というサイトが見つかりました。

直訳すれば「Ebayで改訂された請求書を送信する方法」ですね。

そこにこんな記述がありました。

「Hitcountercodetype for c how to send revised invoice on ebay commerce to receive payment methods allowed, then take to. Hours 1 to are the us prior to true to keep one for how send a revised invoice ebay with.」

「CのHitcountercodetypeは、ebayコマースで改訂された請求書を送信して、許可された支払い方法を受け取り、それを受け取る方法です。 営業時間1は、修正された請求書ebayをどのように送信するかを1つに保つための真の前の私たちです。」

支払い請求書に対するフラグか何かなのでしょうか?
うむむ・・・まだよく分かりませんね。

3.最後に見つかったサイトで、サポートされていないことが判明した。

Error 21886: Andale counters are no longer available.

このサイトは、eBayに関する海外サイトです(全部英語なので必要に応じて要翻訳してください。)

そしてこのページで解説されている内容は、商品を追加する際にHitCounterを含ませてリクエストを送信した場合に返ってくる警告エラーに対するものでした。

ですが、ここに私が求める答えが書かれてあったのです。

ページの真ん中あたりに「この警告メッセージは、 サポートされなくなったHitCounterCodeTypesを使用していることを示しています 。」とあったのです。

結論:HitCount(アクセス数)を取得したいのであれば、ItemTypeではなくGetItemもしくはGetBidderListを使うべき

下記のサイトを見ると、GetItemかGetBidderListを使えばアクセス数のHitCountが取得できると書かれています。

What API calls return the HitCount for items I am selling?

また、「ebay api hitcount」でググると下記のサイトがヒットしました。

Get Item Views

ItemTypeクラスにもプロパティとしてあるのに、このプロパティは使えないのですね。。。なんとまぁ…な結果でした。

まとめ

ItemTypeにあるプロパティとしてHitCountが使えればめっちゃ便利だったのですが、2020年5月10日時点ではもうサポートされていないものだということが分かりました。

ですが今度、使えるかもしれないという「GetItem」と「GetBidderList」のクラスを調査してみようと思います。

アクセス数が取得できれば、どの商品にどれだけ訪れたのかが分かります。

そして「$WatchCount」プロパティを使えばウォッチ数はどのくらいか?が分かります。

それらを併用すれば比率が計算できるので、売れる商品、売れない商品の分析がプログラム上で可能になります。

あまり日本語情報が載っていないものを調査していくのはとても面白いです。
上記2つのクラスについて分かり次第、また記事にしていこうと思います。