()
コンポーネントの vars プロパティに文字列値を渡すと、文字列メソッドの正規表現<amp-analytics>
により文字列が切り捨てられます。getNameArgs_
例えば:
リクエスト ヘッダーからユーザー エージェントを渡すと、次のようにレンダリングされます。
"vars": {
"userAgentHeader": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
}
ただし、分析リクエストでは次のように渡されますMozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)
これは、正規表現 ( ) が一致する (最初の一致として、および 2 番目として)encodeVars_
生の値が渡されるためです。getNameArgs_
([^(]*)(\([^)]*\))?
Mozilla/5.0
(Macintosh; Intel Mac OS X 10_10_4)
データは AMP とメイン サイトで一致する必要があります。そのため、ブラケットをエンコードする Java URLEncoder (UTF-8) を使用できますが、同等の JS の encodeURIComponent()はブラケットをエンコードしないため、変換する必要があります。戻る 。したがって、正規表現は同等のエンコーディングで引き続き一致します。
URLEncoder を使用すると、これがリクエストのクエリ パラメータとして使用されます (ダブル エンコーディング...):
Mozilla%252F5.0%2B%2528Macintosh%253B%2BIntel%2BMac%2BOS%2BX%2B10_10_4%2529%2BAppleWebKit%252F537.36%2B%2528KHTML%252C%2Blike%2BGecko%2529%2BChrome%252F53.0.2785.116%2BSafari%252F537.36
これと通常の GA リクエストの比較:
Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10_4)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F53.0.2785.116%20Safari%2F537.36
Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10_4)
オブジェクトに直接貼り付けた場合、その正確な文字列でさえ切り捨てられます...
たぶん私は何か完全に間違っているのでしょうか?