2022年1月30日 星期日

[開箱] 小米 4K 電視棒 / Android TV OS 11 / 國際版 2021 年 12 月發表


雖然 2021 年初也買了個 Chromecast with Google TV 體驗,這次小米 4K 電視棒在 2022年01月下旬,在台灣電商推出販售且特價便宜一百元,只要 1795元就買了一隻來嚐鮮 XD 老家的舊電視太多台,基本上都可以買個支援 DRM 的電視棒來補強一下。至於為何不買 Chromecast with Google TV?單純有台灣可以買到的通路,且又通過 Google 認證的產品,這樣就不需要一直等 Google 牌了(2021年黑色星期五美國 Google Store 也有特價過,有門路的都可以搶到一波便宜的 Chromecast with Google TV,只要40美金即可,但原價也不貴才 50美金)


此外,這次試一下 UVC 擷取卡,之前也忘了測試 Chromecast with Google TV 有沒做好保護,但確定 Chromecast 其他代則是有做保護,當發現的 HDMI 接收器可能有被側錄的機會,就會做不輸出訊號的設計。我覺得小米 4K電視棒貌似沒有很詳細的保護?但用不到 500元的截取卡,其實也不順,卡到幾乎不能用。可能是擷取卡太便宜(?)或是運行的筆電太舊(2011 年的筆電),慢到不能擷取,也稱得上是一種保護的。當初擷取卡只是讓我方便測試不用 DRM 保護的產品啦。這是測試是 VLC + HDMI Video Capture (HDMI -> USB) + macOS 10.13.6 (Macbook Pro, 13-inch Late 2011)。

這次使用小米 4K 電視棒電視棒的體驗不錯,跟 Chromecast with Google TV 沒啥兩樣,且過程也不用登入什麼小米帳號,因此人在台灣的話,就直接買小米 4K 電視棒。唯一的缺點大概是初次啟動後,可以升級系統,可能是老鄉網路差,光升級就等了半小時以上。其他的好處就是 Disney+ 跟 Netflix 都很家喻戶曉了,登陸一下就可以在老電視上享受了。

至於其他人可能會在意 小米盒子 跟 小米4K電視棒 的差異,有興趣可以再找找討論去比較囉,個人是覺得 小米4K電視棒 就很夠用了,包括使用最新的 Android TV OS 11 ,以及遙控器支援音控呼叫,據說小米盒子有支援 Airplay 啦,但我太少用 Airplay 了,幾乎可以略過它。

2021年11月14日 星期日

起秋了



哈,前陣子跟好友哈拉一些心情,得到的回應就如標題三個字。最近心情的確很三溫暖,但過程都是滿不錯的,在天冷的時段可以靜下心來欣賞周邊的一切。

最近認識了 Youtuber 嘟嘟人 ,是一對年紀落在三十一二的年輕人,從台灣到矽谷求學(國小跟高中起),接著取得不錯的就業成就後,可能因事件體悟人生,選擇類似 GAP YEAR 的機制,想到處旅遊拍片增加人生閱歷,在 2020 年初上傳了第一支影片,並在該年秋天都辭職了。因疫情打亂步調而回台灣創作,又因美國疫情回穩而回去。近期感謝他們拍了一些美國大學,如 Harvard University, UCLA 和 Brown University,倒讓我羨慕起美式教育,恰恰好最近在看 modern family 練練口語英文,有那種更深的感受美國文化,看幾集後也開始懂些美式幽默 XD

綜合著近兩個月新多認識的人,反而感受到自己的步伐緩慢跟沈重,感嘆了一下後,倒是被摯友提醒一下,先看個阿德勒的自卑與超越吧 XD 時間就這般的累積著,大家都有各自的成果及包袱,真的是各處開花的,還是要記得回穩一下心情,繼續珍惜身邊的一切。

恰逢 Disney+ 終於可以在台灣看了,順手看了 尚氣脫稿玩家 (Free Guy) ,後者立馬讓我想起 一級玩家 (Ready Player One),只是格局是不一樣的電影。然而,Free Guy 倒也呼應的一些心境,在一成不變的生活中去追求突破框架,小品電影也非常有趣的。像周邊也有三十多歲的學弟翻山越嶺順利進入了 FB 工作,薪酬的確跟嘟嘟人 Ian 所提的水準差不多,台灣人飛過去起薪會差,但隔1, 2年後就轉成當地水準的(不然公司留不住人才),甚至隨著公司半年審查制度,不進步也難(考績不佳就被fire)。

隨著年紀的增長跟機緣,認識了很多有趣的人,然而,大家的足跡,都建立在不同時空背景的資源跟風險努力而來的,沒有人可以完美複製別人的足跡,也千萬不要小看自己珍惜環境成長的過程。

回過頭來,還是留意 影響圈 和 關注圈 的變化,把時間留給影響圈吧!

2021年10月26日 星期二

Python 筆記 - 使用 AdSense / AdMob API 製作 Dashboard

約莫經營流量變現三年多,大部分的工作都是靠 adsense/admob 網站就夠用了,但如果要整合到其他儀表板的話,就必須靠 AdMob/AdSense API 來撈點資料。

原先一直只靠 AdSense API 做事,但是舊版 AdSense API 在 2021-10-12 下線了,接著新版 AdSense API 就不在有 AdMob 數據,因此需要分開存取。

筆記瑣事:
  • 使用 Python3 開發,並安裝套件相關套件
    • google-api-python-client
    • google-auth-oauthlib
  • AdSense 跟 AdMob 授權的 Scope 是分開的
    • 'https://www.googleapis.com/auth/admob.readonly'
    • 'https://www.googleapis.com/auth/adsense.readonly'
  • Google 專案必須分別啟用 AdSense Management api 跟 AdMob api 使用權
  • Google 專案的憑證,只需使用 "OAuth 2.0 用戶端 ID" ,並採用 "電腦版應用程式" 即可
  • AdSense 跟 AdMob API 輸出的 DATE 欄位的格式不同
    • "2021-10-26"
    • "20211026"
因此,若要符合之前舊版 Adsense 的輸出,需要分別使用 AdSense api v2 跟 AdMob API v1 來整理數據,例如先將 AdMob 收益用日期作為關鍵字紀錄,接著輸出 AdSense 來源時,在計算當日營收時,再順便查表累計 AdMob 收益。

完整程式碼:

    result = service.accounts().reports().generate(
        account=account_id,
        dateRange='CUSTOM',
        startDate_year=startDate['year'],
        startDate_month=startDate['month'],
        startDate_day=startDate['day'],
        endDate_year=endDate['year'],
        endDate_month=endDate['month'],
        endDate_day=endDate['day'],
        metrics=output['data']['metrics'],
        dimensions=output['data']['dimensions'],
        currencyCode="USD",
        reportingTimeZone="ACCOUNT_TIME_ZONE",
    ).execute()

AdMob API 片段程式碼:

    result = service.accounts().networkReport().generate(
        parent=account_id,
        body= {
            'reportSpec': {
                'dateRange' : {
                    'startDate': output['data']['startDate'],
                    'endDate': output['data']['endDate'],
                },
                'dimensions': output['data']['dimensions'],
                'metrics': output['data']['metrics'],
                'localizationSettings': {
                    'currencyCode': 'USD',
                    'languageCode': 'en-US',
                },
            },
        },
    ).execute()

2021年10月25日 星期一

2021年秋天

一些機會遠遠地接觸了幾位約莫三十的年輕人,瞬間發現大家的思維已經像當年我在看 35, 40 歲那些人的眼界。時間輪轉的步調比我想像中快的多,可能是近十年對岸資訊及蓬勃網路交流發展所致?那種感覺就像自己過時了似的。

上一次有這種感觸到自己步調慢了,大概是十年前吧!那時在研究單位時常看到新東西也挽起衣袖嘗試,常寫些技術筆記,還會有類似出版社小編問有沒興趣出書。當時在研究單位約滿後,就衝離職,想趕緊去外頭闖闖,意外又加入到一間小公司上班,但說真的沒有沒太顯著的貢獻 orz 除了自己還不給力外,則是老闆的路線專注在重新設計有趣的事物,屬於重複造輪子的工作哲學,在這種方式上可以享受樂趣,步調反而又更慢了許多,自己也沒了耐心,選擇了其他跑道。

這幾天聽了李開復與樊登在2019.02年新書 AI.未來 訪談,大聊 AI 的發展,那時李開復說的角度至今2021年末了,我還滿認同的,就是 AI 會稍微侷限在特定領域跟維度,主因是身處資訊領域略知AI訓練的方式,AI的強項是單點深耕去突破,但很難像人類可以做 general-purpose learning。這對談已經過了近三年,卻還是一樣的新鮮且呼應著,代表 AI 的進程還是持續地找突破吧!像特斯拉的自動駕駛尚未完全可以無人的概念,但已經有一些有條件的領域可以無人了,如固定路線的公車、掃地機器人等。

瞬間,因為聽了李開復跟樊登2019年初的訪談,讓自己的心態又回穩了點?當年公司的老闆不知不覺也在今年退休,好像什麼事都沒發生的停滯著。或許,這正是高估了近幾年的發展,而低估了十年的狀態?想想自己和周邊好友,也跟十年前的彼此身處在不同知識水準跟產業位置,只要正念持著複利思維跟學習,慢慢地進步就好,勝過凡事完美而躊躇不進。

此外,最近學弟哈拉著投資,談論起對指數開槓桿的事,想想也是一樣的概念,可能都過於看重最近的動作。這時,想起股癌的一些思維還滿不錯的,只要能賺錢,慢慢賺就好。雖說股癌爆料本身是開槓桿起家的,卻也深知自己是多麽幸運避開了歸零,並努力不讓運氣賺來的又靠實力賠回去,做了不少學習精進跟風險配置。面對著這幾天川普社群網站要搭的順風車 SPAC 標的兩天十倍的井噴,只會遠遠的 respect!! 但依舊過著自己的生活步調。

我想,此刻的心情就是這樣吧!回穩了。當大家的背景、資源和包袱都不同時,靜靜地欣賞著彼此,也是不錯的。

2021年10月22日 星期五

使用中國境內公司建立 Google Adsense 帳號以及收匯事宜:Google 合同、發票



起因是2021年春天起,Google開始對 Youtube Ads 項目開始有預扣稅額,原本一直用香港收匯,這時美國與香港關係上,在 Youtube Ads 項目上需預扣 30% 稅額。後來發現中國跟美國有租稅優惠,可以省掉這段,因此改用中國境內公司來收稅,由於公司剛好有這樣的組織架構,就來試試看吧。

首先,建立個中國 Google Adsense 上,最容易踩到的雷就是地址驗證無法通過 XD Google 永遠都寄平信去驗證地址,接著地址是在園區內,不知是不是少寫了聯絡人跟電話啥關係?連寄了四次都沒收到,是的,一次要耗時一個月。

最後跟 Adsense 客服要求,能否公司支付快遞費,請用快遞吧!誰知道,只要累積四次沒驗證通過後,這時就蹦出了另一種驗證方式:主動遞交公司資訊證明文件(需有地址資訊)。就這樣,拿個公司營業執照上傳後一天就搞定了,那過去四個月的時間是?接著 Google Adsense 立馬就匯錢到指定的中國境內銀行,又是另一個故事了。

Google Adsense 匯款到中國境內銀行時,銀行會先把錢擺在虛擬帳號(中間帳),並且要求公司提交文件,包括與 Google 合同以及發票。故事的起因是廣告費歸類在服務費,這時就得提供這些資訊,中國境內收匯真的滿嚴格的,這些在香港銀行沒有碰到。

其實 Adsense 網站上並沒有哪邊可以下載 Google 合同,並且討論區只有滿滿的抱怨文,可能大多都是使用個人身份收匯吧?大部分的解法是嘗試拿 "Adsense 服務條款" 列印下來去申請看看。

再次詢問 Adsense 客服,才發現這也是個申請服務 XD 在信中說明後,得到回信,要求提供公司中英文名字和公司銀行中英文名字後,可以在一週內收到 Google 合同(就一份文件帶有 Google 章),而發票部分,請用原先的 付款收據 即可,把網頁輸出成 PDF 遞交即可,如此終於可以收下錢了。

如此,結案 Orz 一段將近半年的旅程真是漫長。