Optymalizacja limitów

Optymalizacja limitów jest niezbędna w każdej aplikacji używającej interfejsu Display & Video 360 API. Optymalizacja wykorzystania limitu poprawia wydajność przez upraszczanie żądań do interfejsu API i pomaga uniknąć błędów zwracanych przy przekroczeniu ustawionych limitów liczby.

Na tej stronie przedstawiamy ogólne sprawdzone metody i wyróżniamy dodatkowe funkcje interfejsu Display & Video 360 API, które mogą pomóc w zmniejszaniu wykorzystania limitu.

Przesyłanie równoczesnych żądań do różnych reklamodawców

Większość metod dostępnych w interfejsie Display & Video 360 API określa reklamodawcę w adresie URL. Przy wywołaniach określających tego samego reklamodawcę oprócz limitu dla całego projektu egzekwowane są bardziej restrykcyjne limity stawki „na reklamodawcę na projekt” dla tych metod.

Aby zoptymalizować kampanię pod kątem tego limitu, ogranicz liczbę równoczesnych żądań do tych, które określają różnych reklamodawców.

Używaj parametrów filter i orderBy

Podczas pobierania wielu zasobów używaj metod list zamiast get. Wywołania list mogą jednak nadal zużywać duży limit z powodu ograniczeń rozmiaru strony. Jeśli chcesz pobrać tylko część odpowiedzi z pełnej listy, możesz zoptymalizować wykorzystanie limitu, korzystając z opcjonalnych parametrów filter i orderBy.

Parametr filter pozwala ograniczyć zasoby pobierane przez wywołanie list do tych, których właściwości są zgodne z określonymi wyrażeniami. Ten parametr jest przydatny podczas próby pobrania:

  • Konkretny zasób o nieznanym identyfikatorze, ale znanymi właściwościami. Wyszukując określony zasób, możesz przefiltrować zwróconą listę według znanych właściwości odpowiedniego zasobu. Może to być np. filtrowanie elementów zamówienia według znanych displayName, kreacji według oczekiwanych creativeType i źródeł zasobów reklamowych według odpowiednich exchange.
  • Powiązane zasoby. Zasoby w Display & Video 360 są często ze sobą powiązane. Za pomocą filtrów możesz ograniczyć zwracane zasoby do tych, które mają określony związek z innymi. Może to być na przykład pobieranie wszystkich zamówień reklamowych w ramach określonego elementu campaignId oraz wszystkich kreacji przypisanych do elementu zamówienia.
  • Tylko zasoby, które mają przydatne właściwości. Interfejs API pozwala łatwo sprawdzać stan zasobów i reagować automatycznie. Za pomocą filtrów możesz używać wywołań list do pozyskiwania zasobów tylko wtedy, gdy potrzebne jest działanie. Może to być na przykład pobranie wszystkich elementów zamówienia z określonymi działaniami lineItemWarningMessage, wszystkich zamówień reklamowych, które zostały zaktualizowane od określonej daty i godziny, oraz wszystkie kreacje, w przypadku których wystąpiły błędy.approvalStatus

Parametr orderBy umożliwia sortowanie pobranych zasobów według określonych właściwości w kolejności rosnącej lub malejącej. Parametr orderBy, zwłaszcza używany razem z tagiem filter, może służyć do ograniczania liczby stron, które trzeba przejrzeć przed znalezieniem konkretnego zasobu. Dzięki temu możesz też łatwo określić górne i dolne granice listy zasobów. Na przykład sortowanie według updateTime pozwoli Ci szybko znaleźć ostatnio zaktualizowane elementy zamówienia lub zamówienia reklamowe reklamodawcy.

Korzystanie z funkcji zbiorczych i obejmujących wszystkie zasoby

Interfejs Display & Video 360 API udostępnia wiele funkcji obejmujących wiele zasobów i zbiorczych, wykonujących wiele działań w ramach jednego żądania. Przykłady tego rodzaju funkcji:

  • Edytowanie zbiorcze witryn należących do jednego kanału. Kanały mogą mieć tysiące witryn. Zamiast zarządzać listą witryn kanału za pomocą pojedynczych żądań create lub delete, możesz użyć pojedynczej prośby o bulkEdit lub replace, aby dodać lub usunąć wiele witryn albo zastąpić całą zawartość kanału.
  • Zarządzanie całym zestawem ustawień kierowania reklamodawcy. Pakiet kierowania zasobu jest przypisany do różnych typów kierowania. Funkcje kierowania na poziomie zasobów, takie jak listAssignedTargetingOptions i editAssignedTargetingOptions w usłudze advertisers, umożliwiają pobieranie, tworzenie i usuwanie kierowania w różnych typach kierowania w jednym żądaniu. Pozwala to zmniejszyć koszt konfiguracji zestawu kierowania dla pojedynczego żądania.
  • Ustawianie tego samego ograniczenia kierowania w wielu elementach zamówienia. Jeśli chcesz wprowadzić te same zmiany kierowania w wielu elementach zamówienia naraz, możesz to zrobić za pomocą pojedynczego żądania advertisers.lineItems.bulkEditAssignedTargetingOptions.
  • Aktywowanie lub wstrzymywanie wielu elementów zamówienia. Przed rozpoczęciem wyświetlania elementy zamówienia muszą zostać aktywowane po ich utworzeniu. Jeśli krótko po sobie tworzysz wiele elementów zamówienia, możesz aktywować je wszystkie za pomocą jednego żądania advertisers.lineItems.bulkUpdate. W ten sam sposób można wstrzymać wiele elementów zamówienia i zatrzymać ich wyświetlanie.

Przechowywanie i sprawdzanie regularnie używanych identyfikatorów

Wiele operacji w interfejsie Display & Video 360 API wymaga użycia identyfikatorów zasobów pobieranych bezpośrednio przez interfejs API, w tym identyfikatorów opcji kierowania, identyfikatorów odbiorców Google itp. Aby uniknąć pobierania identyfikatorów z interfejsu API przy każdym użyciu, zalecamy ich przechowywanie lokalnie.

Niektóre zasoby mogą jednak zostać wycofane, usunięte lub w inny sposób staną się niedostępne do użytku. Próba użycia identyfikatorów tych zasobów może spowodować zwrócenie błędu. Dlatego zalecamy sprawdzanie wszystkich identyfikatorów zapisanych w pamięci podręcznej co tydzień za pomocą odpowiedniej metody get lub przefiltrowanej list, aby się upewnić, że nadal można je pobrać i czy ma oczekiwany stan.

Wdrażanie wykładniczego ponowienia w przypadku długo trwających operacji

Podczas odpytywania w celu sprawdzenia, czy długo trwająca operacja, np. zadanie pobierania plików SDF, została zakończona, użyj strategii wykładniczego ponawiania, aby zmniejszyć częstotliwość i łączną liczbę wysyłanych żądań.

Wykładnicze ponawianie to standardowa strategia obsługi błędów w aplikacjach sieciowych, w których klient okresowo ponawia próbę żądania w coraz większym czasie. Właściwe użycie wykładniczego ponowienia zwiększa wydajność wykorzystania przepustowości, zmniejsza liczbę żądań wymaganych do uzyskania skutecznej odpowiedzi i maksymalizuje przepustowość żądań w środowiskach równoczesnych.

Strategia dotyczącą wykładniczego ponowienia zaimplementowana za pomocą bibliotek klienta znajdziesz w naszych przykładach kodu pobierania plików SDF. Procedura wdrażania prostego, wykładniczego ponowienia jest następująca:

  • Wyślij do interfejsu API żądanie sdfdownloadtasks.operations.get.
  • Pobierz obiekt operacji.
    • Jeśli wartość w polu done nie jest prawidłowa, musisz ponowić żądanie.
    • Zaczekaj 5 sekund (plus losowa liczba milisekund) i spróbuj ponownie.
  • Pobierz obiekt operacji.
    • Jeśli wartość w polu done nie jest prawidłowa, musisz ponowić żądanie.
    • Zaczekaj 10 sekund + losową liczbę milisekund i spróbuj ponownie.
  • Pobierz obiekt operacji.
    • Jeśli wartość w polu done nie jest prawidłowa, musisz ponowić żądanie.
    • Zaczekaj 20 sekund + losową liczbę milisekund i spróbuj ponownie.
  • Pobierz obiekt operacji.
    • Jeśli wartość w polu done nie jest prawidłowa, musisz ponowić żądanie.
    • Zaczekaj 40 sekund + losową liczbę milisekund i spróbuj ponownie.
  • Pobierz obiekt operacji.
    • Jeśli wartość w polu done nie jest prawidłowa, musisz ponowić żądanie.
    • Zaczekaj 80 sekund + losową liczbę milisekund i spróbuj ponownie.
  • Kontynuuj ten wzorzec, dopóki obiekt zapytania nie zostanie zaktualizowany lub nie upłynie maksymalny czas, który upłynął.