บล็อก

🎯 การรันแคมเปญ AppSumo สำหรับ Gato GraphQL ด้วย Gato GraphQL และ Lemon Squeezy

Leonardo Losoviz
โดย Leonardo Losoviz ·

Gato GraphQL เปิดตัววันนี้บน AppSumo! 🙌

ในฐานะข้อกำหนด ทีม Gato GraphQL ต้องส่งโค้ดแลกรับ 10,000 รหัสให้กับ AppSumo โค้ดเหล่านี้เป็นสะพานเชื่อมระหว่าง AppSumo (ที่ผู้ใช้ชำระเงินสำหรับผลิตภัณฑ์) กับ Gato GraphQL (ที่ผู้ใช้ดาวน์โหลดปลั๊กอิน)

เมื่อผู้ใช้มายัง gatographql.com เพื่อแลกโค้ด เราจะสร้าง "โค้ดส่วนลด 100%" ที่สอดคล้องกัน (ใช้ได้เพียงครั้งเดียว และจำกัดเฉพาะผลิตภัณฑ์นั้น ๆ) และให้ผู้ใช้ "ซื้อ" ปลั๊กอินโดยใช้โค้ดส่วนลดนั้น

การแลก Gato GraphQL ด้วยโค้ด AppSumo - โค้ดส่วนลด 100% ถูกใช้งานโดยอัตโนมัติ

โค้ดส่วนลดหลายพันรหัสต้องถูกสร้างไว้ล่วงหน้าและจัดเก็บไว้กับผู้ให้บริการ marketplace ของเรา คือ Lemon Squeezy

Lemon Squeezy รองรับการสร้างส่วนลดผ่าน API ของตน เนื่องจาก Gato GraphQL มี HTTP Client เราจึงได้รัน GraphQL query ที่เชื่อมต่อกับ Lemon Squeezy API และสร้างโค้ดส่วนลดหลายพันรหัส (กล่าวคือ Gato GraphQL กำลังขับเคลื่อนแคมเปญ AppSumo ของตัวเอง 😆)

โค้ดแลกรับ 10,000 รหัสสำหรับ AppSumo ถูกสร้างขึ้นโดยการรัน GraphQL query นี้:

โค้ดส่วนลดที่สอดคล้องกันถูกสร้างขึ้นโดยการรัน GraphQL query นี้:

query แรกนั้นเรียบง่ายมาก ส่วน query ที่สองซับซ้อนกว่าเล็กน้อย มาดูรายละเอียดกัน

การสร้างโค้ดส่วนลด

GraphQL query ใช้ field _generateRandomString เพื่อสร้างโค้ดส่วนลดเป็นสตริงสุ่ม โดยใช้อักขระ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

โค้ดยังถูกนำหน้าด้วย namespace (ผ่านตัวแปร $codePrefix) เพื่อให้สอดคล้องกับผลิตภัณฑ์และระดับที่กำหนด

ตัวอย่างเช่น namespace APSMV1T1 หมายถึง:

  • แคมเปญ AppSumo
  • ผลิตภัณฑ์ Variation 1
  • Tier 1

โค้ดส่วนลดทั้งหมดยังได้รับชื่อที่สื่อความหมายที่ไม่ซ้ำกัน เพื่อช่วยให้เราค้นหาได้ใน Lemon Squeezy dashboard:

  • Appsumo campaign #1
  • Appsumo campaign #2
  • Appsumo campaign #3
  • ...
  • Appsumo campaign #{recordNumber}

จากนั้น เมื่อค้นหา Appsumo campaign # เราสามารถดูโค้ดทั้งหมดได้:

โค้ดส่วนลดที่สร้างขึ้นใน Lemon Squeezy
โค้ดส่วนลดที่สร้างขึ้นใน Lemon Squeezy

และเมื่อคลิกที่โค้ดใดโค้ดหนึ่ง เราจะเห็นว่ามันใช้ได้กับผลิตภัณฑ์และ variation เดียวเท่านั้น:

โค้ดส่วนลดใน Lemon Squeezy
โค้ดส่วนลดใน Lemon Squeezy

การรัน query หลายครั้งผ่าน bash script

query นี้รัน (โดยค่าเริ่มต้น) HTTP request แบบ async 100 รายการไปยัง LemonSqueezy API โดยแต่ละ request สร้างโค้ดส่วนลดหนึ่งรหัส ดังนั้นการรัน query จะสร้างโค้ดส่วนลด 100 รหัส

เราไม่รัน request ทั้ง 10,000 รายการพร้อมกันในครั้งเดียว เพราะในบางจุด (แน่นอนว่าเมื่อมี 500 การเรียก) LemonSqueezy API จะส่งข้อผิดพลาด "Too many requests"

นั่นคือเหตุผลที่เราแบ่งการรัน query ออกเป็นชุด 100 request และเพิ่มการหน่วงเวลาระหว่างแต่ละชุด

ขั้นตอนแรกคือการสร้าง persisted query ในเว็บไซต์ WordPress ของเรา คัดลอก/วาง query และเผยแพร่:

Persisted query
Persisted query

เมื่อเผยแพร่แล้ว เราสามารถรัน persisted query ได้ตามต้องการภายใน bash script โดยใช้ curl และส่ง GraphQL variables เป็นพารามิเตอร์ให้กับ URL ของ persisted query

batch script นี้รัน persisted query 100 ครั้ง (100 x 100 = 10,000) โดยส่งตัวแปรที่เหมาะสมให้แต่ละ request และรอ 30 วินาทีระหว่างแต่ละครั้ง (นี่คือโค้ดสำหรับโค้ดส่วนลด 300 รหัสแรก):

curl --user "{username}:{applicationPassword}" "https://my-wp-site.com/graphql-query/create-redemption-codes-for-appsumo-in-lemonsqueezy/?codePrefix=APSMV1T1&storeID={storeId}&variantIDs[]={productVariantId}&lemonSqueezyAccessToken={accessToken}&postId={postId}"
sleep 30
curl --user "{username}:{applicationPassword}" "https://my-wp-site.com/graphql-query/create-redemption-codes-for-appsumo-in-lemonsqueezy/?firstRecordNumber=101&codePrefix=APSMV1T1&storeID={storeId}&variantIDs[]={productVariantId}&lemonSqueezyAccessToken={accessToken}&postId={postId}"
sleep 30
curl --user "{username}:{applicationPassword}" "https://my-wp-site.com/graphql-query/create-redemption-codes-for-appsumo-in-lemonsqueezy/?firstRecordNumber=201&codePrefix=APSMV1T1&storeID={storeId}&variantIDs[]={productVariantId}&lemonSqueezyAccessToken={accessToken}&postId={postId}"
# ...

การรวบรวมโค้ดทั้งหมดที่สร้างขึ้น

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

เมื่อระบุพารามิเตอร์ $postId ทุกครั้งที่รัน query มันจะต่อท้ายโค้ด 100 รหัสใหม่ที่ท้าย post นั้น

การรวบรวมโค้ดแลกรับ
การรวบรวมโค้ดแลกรับ

เมื่อรัน bash script เสร็จสิ้น post จะมีโค้ดทั้งหมด 10,000 รหัส

งานเสร็จสมบูรณ์แล้ว

ฉันรัน query แรก คัดลอกสตริงสุ่ม 10,000 รายการทั้งหมด วางลงในไฟล์ codes.csv ใหม่ และส่งให้ AppSumo

ฉันรัน query ที่สอง คัดลอกโค้ดส่วนลด 10,000 รหัส และวางลงในลอจิกของแอปพลิเคชันเพื่อให้ผู้ใช้ดาวน์โหลดปลั๊กอินได้

Gato GraphQL พร้อมสำหรับแคมเปญ AppSumo แล้ว

ขอให้โชคดีกับเรา 🙏


สมัครรับจดหมายข่าวของเรา

ติดตามการอัปเดตทั้งหมดของ Gato GraphQL