กลยุทธ์การจัดการข้อมูลเข้าสู่ระบบ

การแชร์ข้อมูลเข้าสู่ระบบในคำขอ API จะช่วยเพิ่มประสิทธิภาพและหลีกเลี่ยงค่าใช้จ่ายในการดำเนินการมากเกินไปซึ่งอาจทำให้เกิดข้อผิดพลาดเกี่ยวกับขีดจำกัดอัตราคำขอ คำแนะนำนี้จะอธิบายวิธีเพิ่มประสิทธิภาพการจัดการข้อมูลเข้าสู่ระบบ OAuth2 เพื่อให้แอปโต้ตอบกับ Google Ads API ได้อย่างมีประสิทธิภาพ

กลยุทธ์การแชร์ข้อมูลเข้าสู่ระบบจะขึ้นอยู่กับว่าแอปของคุณเป็นแบบมัลติเธรดหรือมัลติโปรเซส (หรือแบบกระจาย) แอปที่เป็นทั้งแบบหลายกระบวนการและแบบหลายชุดข้อความภายในแต่ละกระบวนการควรใช้ทั้ง 2 กลยุทธ์ นอกจากนี้ คุณยังปรับกลยุทธ์เหล่านี้สำหรับบัญชี Google Ads หลายบัญชีได้อีกด้วย

หลายเทรด

แต่ละเซสชันหรือผู้ใช้ที่วาดโดยเทรดควรใช้ออบเจ็กต์ข้อมูลเข้าสู่ระบบเดียวกัน นอกจากนี้ การรีเฟรชโทเค็นเพื่อการเข้าถึงยังต้องดำเนินการพร้อมกันเพื่อหลีกเลี่ยงเงื่อนไขการแข่งขัน

ไลบรารีของไคลเอ็นต์ของเราช่วยให้มั่นใจว่าข้อมูลเข้าสู่ระบบเป็นออบเจ็กต์ที่ปลอดภัยของเทรด ซึ่งจะรีเฟรชตัวเองพร้อมกันเมื่อโทเค็นเพื่อการเข้าถึงหมดอายุ ไลบรารีของไคลเอ็นต์แต่ละรายการของเรามีออบเจ็กต์เซสชัน (หรือผู้ใช้) ที่มีข้อมูลรับรองซึ่งจะใช้ซ้ำตลอดอายุ ในการแชร์ข้อมูลเข้าสู่ระบบในชุดข้อความต่างๆ เพียง คุณสร้างแต่ละเซสชันโดยใช้ข้อมูลเข้าสู่ระบบเดียวกัน ตัวอย่างเช่น ในไลบรารีของไคลเอ็นต์ Java คุณจะสร้างซิงเกิลตัน Credential และแชร์ในเซสชันทั้งหมด

แบบหลายกระบวนการหรือเผยแพร่

สำหรับกระบวนการแบบหลายกระบวนการหรือกระบวนการแบบกระจาย คุณจะต้องยืนยันข้อมูลเข้าสู่ระบบก่อนจึงจะแชร์ได้ เพื่อให้แน่ใจว่าการประมวลผลหรือเซิร์ฟเวอร์หลายรายการจะไม่พยายามรีเฟรชข้อมูลเข้าสู่ระบบพร้อมกัน ซึ่งส่งผลให้เกิดการส่งคำขอรีเฟรชมากเกินไป คุณควรกำหนดการรีเฟรชให้กับกระบวนการเดียว

ตัวอย่างเช่น งานหรือบริการที่แยกต่างหากอาจมีหน้าที่รับผิดชอบในการรีเฟรชข้อมูลเข้าสู่ระบบเป็นระยะๆ และพุชไปยังที่เก็บข้อมูลที่แชร์โดยกลุ่มเซิร์ฟเวอร์ จากนั้นแต่ละเซิร์ฟเวอร์จะเรียกข้อมูลเข้าสู่ระบบจากที่เก็บข้อมูลได้เมื่อส่งคำขอ API

รีเฟรชงาน

งานการรีเฟรชไม่ควรรอจนกว่าข้อมูลเข้าสู่ระบบปัจจุบันจะหมดอายุก่อนที่จะเริ่มต้นการรีเฟรช การดำเนินการดังกล่าวอาจทำให้แอปหยุดทำงานเนื่องจากไม่มีข้อมูลเข้าสู่ระบบที่ถูกต้อง แต่หากโทเค็นเพื่อการเข้าถึงของข้อมูลเข้าสู่ระบบหมดอายุขณะที่ระบบกำลังประมวลผลคำขอ API คำขอจะยังคงเสร็จสมบูรณ์และจะแสดงผล

เราขอแนะนำให้ติดตามเวลาที่มีการรีเฟรชโทเค็นเพื่อการเข้าถึงครั้งล่าสุด และบังคับให้รีเฟรชหากมีเวลาถึงวันหมดอายุไม่ถึง 5 นาที

หากไม่ทราบว่าโทเค็นเพื่อการเข้าถึงมีการรีเฟรชครั้งล่าสุดเมื่อใด คุณอาจลองรีเฟรชโดยสมมติว่าโทเค็นหมดอายุแล้ว หากโทเค็นเพื่อการเข้าถึงไม่ใกล้หมดเวลา เซิร์ฟเวอร์จะส่งคืนโทเค็นเพื่อการเข้าถึงเดียวกันพร้อมกับมิลลิวินาทีที่เหลืออยู่จนกว่าโทเค็นจะหมดอายุ

ที่เก็บข้อมูล

คุณสามารถใช้พื้นที่เก็บข้อมูลที่มีอยู่ หรือจะใช้ที่เก็บข้อมูลเฉพาะสำหรับการแชร์ข้อมูลเข้าสู่ระบบระหว่างเซิร์ฟเวอร์ก็ได้ โซลูชันรวมถึงเซิร์ฟเวอร์การแคช เช่น Memcached หรือ Infinispan หรือที่เก็บข้อมูล NoSQL เช่น MongoDB

ควรมีการเพิ่มประสิทธิภาพพื้นที่เก็บข้อมูลสำหรับการดำเนินการอ่านที่รวดเร็วเพราะจะมีคำขออ่านมากกว่าการเขียนมาก และข้อมูลเข้าสู่ระบบจะต้องจัดเก็บ อย่างปลอดภัย

เมื่อจัดเก็บข้อมูลเข้าสู่ระบบ คุณควรจัดเก็บ expiry_time ที่คำนวณแล้ว (ปัจจุบัน + expires_in) และ refresh_token ไว้ข้าง access_token ระบบจะคำนวณ expiry_time เป็นเวลาของคำขอรีเฟรชaccess_tokenบวกเวลา expires_in

พูลเซิร์ฟเวอร์

เซิร์ฟเวอร์หรือกระบวนการแต่ละรายการในพูลจะเรียกข้อมูลเข้าสู่ระบบล่าสุดจากพื้นที่เก็บข้อมูลก่อนส่งคำขอ ตราบใดที่งานการรีเฟรชทำงาน อย่างถูกต้อง ข้อมูลเข้าสู่ระบบก็จะใช้งานได้ อย่างไรก็ตาม หากงานการรีเฟรชหรือพื้นที่เก็บข้อมูลล้มเหลว คุณควรมีกลไกสำรอง

หากเซิร์ฟเวอร์หรือกระบวนการไม่สามารถรับข้อมูลเข้าสู่ระบบจากที่เก็บข้อมูลได้ หรือหากข้อมูลเข้าสู่ระบบหมดอายุ เซิร์ฟเวอร์ควรรีเฟรชข้อมูลเข้าสู่ระบบของตนเองเพื่อให้แอปทำงานกับ API ต่อไปได้จนกว่าปัญหาจะได้รับการแก้ไข

การจัดการข้อมูลเข้าสู่ระบบสำหรับหลายบัญชี

คุณจะใช้ข้อมูลเข้าสู่ระบบที่สร้างขึ้นสำหรับบัญชีดูแลจัดการ Google Ads เพื่อเข้าถึงบัญชีย่อยทั้งหมดได้ ดังนั้น สำหรับผู้ใช้ที่มีลำดับชั้นบัญชีดูแลจัดการเดียว การสร้างข้อมูลเข้าสู่ระบบสำหรับบัญชีดูแลจัดการระดับบนสุดที่นำไปใช้กับบัญชี Google Ads ทั้งหมดที่อยู่ภายใต้บัญชีดูแลจัดการนั้นก็ถือว่าเพียงพอแล้ว

หากแอปจำเป็นต้องเข้าถึงบัญชี Google Ads ที่ไม่เกี่ยวข้องซึ่งกันและกันในลำดับชั้นของบัญชีดูแลจัดการใดๆ คุณควรสร้างและรักษาข้อมูลเข้าสู่ระบบที่แตกต่างกันสำหรับบัญชีต่างๆ เช่น สำหรับบัญชีลูกค้า Google Ads แต่ละบัญชีที่คุณเข้าถึง หรือบัญชีดูแลจัดการระดับบนสุดแต่ละบัญชีในลำดับชั้นอิสระที่คุณเข้าถึง

คุณสามารถใช้กลยุทธ์เดียวกันสำหรับแอปแบบหลายชุดข้อความหรือมัลติโปรเซส / จัดจำหน่ายโดยมีการปรับเปลี่ยนเล็กน้อย เมื่อใช้พื้นที่เก็บข้อมูลที่แชร์ ตัวระบุบัญชีต้องจัดทำดัชนีข้อมูลเข้าสู่ระบบด้วย customerId เพื่อให้แน่ใจว่าข้อมูลเข้าสู่ระบบเชื่อมโยงกับบัญชีที่ถูกต้อง นอกจากนี้ งานรีเฟรชควรรีเฟรชข้อมูลเข้าสู่ระบบทั้งหมดเสมอ หากลิงก์บัญชีใหม่แล้ว คุณอาจต้องทริกเกอร์งานการรีเฟรช

และสุดท้าย ในแอปที่มีหลายเทรด คุณควรแชร์เฉพาะออบเจ็กต์ข้อมูลเข้าสู่ระบบข้ามเทรดที่ทำงานในบัญชีที่มีออบเจ็กต์ข้อมูลเข้าสู่ระบบเชื่อมโยงอยู่