• ChatGPT response stream में model output के साथ विज्ञापन unit object भी मिलकर आते हैं, और SSE के delta event के जरिए single_advertiser_ad_unit फ़ॉर्म में भेजे जाते हैं
  • विज्ञापन card की image और favicon bzrcdn.openai.com से लोड होते हैं, और target.open_externally: false लिंक ChatGPT के internal webview में खुलते हैं, जिससे click के बाद merchant page तक जाने का पूरा flow उसी stream में जारी रहता है
  • एक ही account में भी conversation topic के हिसाब से अलग-अलग advertisers जुड़ते हैं; Beijing travel, flights, NBA playoffs, fashion, productivity जैसे context में क्रमशः Grubhub, GetYourGuide, Axel, Gametime, Aritzia, Canva देखे गए
  • विज्ञापन और click URL में Fernet token आधारित identifiers साथ भेजे जाते हैं, और ads_spam_integrity_payload, oppref, olref, ad_data_token click integrity verification और identification flow में इस्तेमाल होते हैं; oppref को __oppref cookie में 30 दिन के लिए सेव किया जाता है
  • merchant page OAIQ SDK लोड करता है और measure event को bzr.openai.com पर भेजता है, जिससे ChatGPT click के बाद merchant-side event फिर OpenAI तक लौट आता है और attribution loop पूरा होता है

विज्ञापन insertion और click flow

  • ChatGPT response stream में model output के साथ single_advertiser_ad_unit फ़ॉर्म का ad object भी मिलकर आता है
    • conversation request के समय chatgpt.com/backend-api/f/conversation पर SSE response खुलता है, और कुछ delta events में ad unit भेजी जाती है
    • ad object में ads_request_id, ads_spam_integrity_payload, advertiser_brand, carousel_cards, ad_data_token आदि शामिल होते हैं
    • advertiser_brand.id का फ़ॉर्म adacct_<32-hex> है, जो merchant account identifier जैसा दिखता है
  • ad card का brand favicon और image दोनों bzrcdn.openai.com से लोड होते हैं
    • इससे पता चलता है कि ad creative merchant नहीं बल्कि OpenAI side पर host की जा रही है
  • target.open_externally: false वाले लिंक ChatGPT के internal webview में खुलते हैं
    • इससे click के बाद merchant page पर जाने वाला flow भी OpenAI सीधे observe कर सकता है
  • click URL में utm_source=chatgptpilot जैसे parameters के साथ oppref, olref जुड़ते हैं

targeting और attribution chain

  • एक ही account में भी conversation topic के हिसाब से अलग-अलग advertisers भेजे जाते हैं
    • Beijing travel plan में Grubhub का "Get Chinese Food Delivered" जुड़ा दिखा
    • Beijing tour booking में GetYourGuide का Great Wall tour और ad_id=beijing003 जुड़ा दिखा
    • Beijing flights में Axel और utm_term=vflight_beijing_03 जुड़ा दिखा
    • NBA playoffs में Gametime और utm_campaign=nba&utm_content=playoffs जुड़ा दिखा
    • spring fashion और trends में Aritzia और utm_campaign=chatgptpilot_trav3 जुड़ा दिखा
    • productivity और slides से जुड़ी conversation में Canva और utm_campaign=…link-clicks_products जुड़ा दिखा
  • इस observation में conversation context आधारित targeting साफ़ दिखती है
    • क्या इसमें पिछले conversation history तक शामिल होती है, यह confirm नहीं हुआ
  • हर ad के साथ चार Fernet tokens भेजे जाते हैं
    • ads_spam_integrity_payload सिर्फ SSE के अंदर आता है, और इसे forged clicks के खिलाफ server-side integrity check के लिए इस्तेमाल होने वाला मान बताया गया है
    • oppref click URL में जुड़ता है और OAIQ SDK इसे __oppref cookie में कॉपी करके 720 घंटे, 30 दिन TTL के साथ सेव करता है
    • olref भी oppref के साथ click URL में जुड़ता है, लेकिन observed SDK में इसे सेव नहीं किया जाता
    • ad_data_token base64 में लिपटे JSON के अंदर एक और Fernet token रखने वाली संरचना है
  • Fernet token के पहले 9 bytes public format में होते हैं, इसलिए issue time को key के बिना restore किया जा सकता है
    • इसमें version byte 0x80 और 8-byte big-endian Unix timestamp शामिल होता है
    • capture किए गए Home Depot click URL को 2026-04-26 11:30:08 UTC पर issue किया गया था, और browser ने merchant page को 11:31:43 पर fetch किया, यानी 95 सेकंड की देरी निकली

merchant-side tracking SDK

  • merchant page OAIQ SDK https://bzrcdn.openai.com/sdk/oaiq.min.js लोड करता है
    • observed version 0.1.3 है
    • initialization code oaiq('init', { pid: '<merchant pixel ID>' }); फ़ॉर्म में आता है
    • page measurement oaiq('measure', 'contents_viewed', { ... }); फ़ॉर्म में call किया जाता है
  • init के समय OAIQ URL के ?oppref= मान को पढ़कर __oppref 1st-party cookie में लिखता है
    • साथ में __oaiq_domain_probe cookie भी सेट की जाती है
  • इसके बाद हर measure call JSON को https://bzr.openai.com/v1/sdk/… पर POST करता है
    • इससे click के बाद merchant-side event OpenAI तक वापस जाने वाला attribution loop पूरा हो जाता है
  • block या inspection target के रूप में दो domains और दो cookies सीधे बताए गए हैं
    • bzrcdn.openai.com,bzr.openai.com

      • __oppref, __oaiq_domain_probe

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.