- 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
अभी कोई टिप्पणी नहीं है.