批次處理策略

批次處理可匯總報表時,請務必盡量最佳化批次處理策略,以免超出隱私權限制。以下是將批次報表傳送至匯總服務的幾項建議策略。

收集報表

收集要納入批次的報告時,請注意下列事項:

報表上傳重試

注意:重試條件可能會變更。屆時,這個部分的資訊就會更新。

在網頁和 OS 平台上,平台會嘗試傳送報表三次,但如果第三次嘗試後仍無法傳送報表,系統就不會再傳送。無論何時可以傳送報表,原始 scheduled_report_time 值都會保留。各平台的重試時間表如下:

  • 網路瀏覽器會在連線時傳送報告。如果無法傳送報表,系統會等待五分鐘後再重試,第三次則會等待 15 分鐘。如果瀏覽器離線,下次重試會在瀏覽器恢復連線後一分鐘進行。在網路上傳送報表時,沒有延遲時間上限;也就是說,如果瀏覽器離線,無論報表是多久前產生,瀏覽器一旦恢復連線,就會根據重試政策嘗試傳送報表。
  • Android 手機的網路連線穩定。因此,這項工作會每小時執行一次,傳送報表。也就是說,如果報告傳送失敗,系統會在下一個小時重試,再下一個小時也會再次嘗試。如果裝置沒有連線,裝置會在下次連上網路後,透過下一個執行的報告作業重試傳送報告。延遲時間最長為 28 天,也就是說,裝置不會傳送超過 28 天前產生的報表。

等待報表

建議您在收集報表以進行批次處理時,等待延遲送達的報表。您可以根據收到報表的時間,檢查 scheduled_report_time 值,判斷報表是否延遲。這兩份報表的時間差有助於判斷要等待多久,才能取得延遲送達的報表。舉例來說,收集延遲報表時,請檢查 scheduled_report_time 欄位,並記錄收到 90%、95% 和 99% 報表時的時間延遲 (以小時為單位)。這項資料可用於判斷延遲抵達的報表應等待多久。 即時匯總報表可減少報表延遲的情況。

下圖顯示延遲送達的報表會根據排定的報表時間,儲存在適當的批次中。批次 T 代表 scheduled_report_time,而 T+X 代表等待延遲報表的時間。因此,系統會產生摘要報表,其中包含批次中大部分的報表,且這些報表會對應到排定的報表時間。

系統會根據排定的報表時間,將報表儲存在適當的批次中。
系統會根據定期報表時間,將報表儲存在適當的批次中。

可匯總報表計算

匯總服務會維持「不重複」規則。這項規則會強制規定,凡是共用相同 ID 的所有可匯總報表,都必須納入同一批次。

收集報表後,應將具有相同共用 ID 的所有報表歸入同一批。

如果報表已在其他批次中處理,處理作業可能會導致隱私權預算用盡錯誤。 正確批次處理報表,有助於避免批次因「無重複項目」規則而遭拒。

共用 ID 是系統為每份報表產生的金鑰,用於追蹤可匯總報表計算。共用 ID 可確保具有相同共用 ID 的報表只會計入一份摘要報表。也就是說,對應至同一個共用 ID 的所有報表都必須包含在單一批次中。舉例來說,如果報表 X 和報表 Y 具有相同的共用 ID,則必須納入同一批次,以免因重複而遭捨棄。

下圖顯示經過雜湊處理的 shared_info 元件,這些元件會一起產生共用 ID。

顯示共用資訊元件,這些元件會經過雜湊處理,產生共用 ID。
顯示經過雜湊處理的 shared_info 元件,這些元件會一起產生共用 ID。

下圖說明兩個不同的報表如何共用相同的 ID:

說明兩個不同的報表如何共用相同的 ID。
顯示兩個不同的報表如何共用相同的 ID。

注意: scheduled_report_time 會截斷為小時,source_registration_time 則會截斷為天。此外,建立共用 ID 時不會使用 report_id。日後可能會更新時間間隔。

批次中的重複報表

可匯總報表的 shared_info 欄位包含 report_id 欄位中的 UUID,用於識別批次中的重複報表。如果批次中有多份報告具有相同的 report_id,系統只會彙整第一份報告,其餘報告則會視為重複並無聲無息地捨棄;彙整作業會照常進行,且不會傳送任何錯誤。 雖然不是必要步驟,但廣告技術在匯總前,可以先篩除具有相同報表 ID 的重複報表,預期能獲得一些成效提升。

每個報表都有專屬的 report_id

批次間重複的報表

每份報表都會獲派共用 ID,這是由報表 shared_info 欄位中的合併資料點所產生的 ID。多份報表可以有相同的共用 ID,且每個批次可以包含多個共用 ID。凡是共用相同 ID 的所有報表,都必須放在同一批次中。如果共用 ID 相同的報表最後出現在多個批次中,系統只會接受第一個批次,其餘批次則會因重複而遭拒。為避免發生這種情況,必須適當建立批次

下圖顯示一個範例,其中批次間共用相同 ID 的報表可能會導致後續批次失敗。如圖片所示,共用 ID 相同的兩份以上報表 e679aa 會分批處理,分別歸入批次 #1 和 #2。由於系統會在產生批次 1 摘要報表時,用盡所有共用 ID e679aa 報表的預算,因此不允許批次 2,且會因錯誤而失敗。

顯示範例:批次間共用相同 ID 的報表可能會導致後續批次失敗。
顯示範例:如果批次之間共用相同的 ID,可能會導致後續批次失敗。

批次報表

建議您採用下列方式批次處理報表,避免重複並提高匯總報表會計作業效率。

依廣告主分批處理

注意:這項策略僅建議用於 Attribution Reporting 匯總。

私密匯總沒有 attribution_destination 欄位,也就是廣告主。建議您依廣告主分批處理,也就是將屬於同一廣告主的報表納入同一批次,以免每個批次都達到可匯總報表的帳戶限制。廣告主是產生共用 ID 時考量的欄位,因此如果報表中的廣告主相同,共用 ID 也會相同,這時報表就必須位於同一批次,才能避免發生錯誤。

依時間批次處理

建議您批次處理時,將報表的排定時間 (shared_info.scheduled_report_time) 納入考量。在產生共用 ID 時,系統會將定期報表時間截斷至小時,因此報表至少應以小時為間隔分批處理,也就是說,定期報表時間在同一小時內的所有報表應歸入同一批,以免多批報表出現相同共用 ID,導致工作發生錯誤。

批次頻率和雜訊

建議您考量干擾因素的影響,瞭解這類因素對可匯總報表處理頻率的影響。如果可匯總報表批次處理的頻率較高 (例如每小時處理一次),則納入的轉換事件會較少,雜訊的相對影響也會較大。如果降低頻率,且每週處理一次報表,雜訊的相對影響就會較小。如要進一步瞭解雜訊對批次的影響,請使用 Noise Lab 進行實驗。