W marcu 2022 roku udostępniliśmy interfejs API Bid Managera w wersji 2. Planujemy wkrótce opublikować datę wycofania wersji 1.1 w związku z jej wprowadzeniem. Zalecamy jak najszybsze rozpoczęcie migracji z wersji 1.1 do 2.
Migracja aplikacji
Migracja z wersji 1.1 do wersji 2 wymaga zaktualizowania adresów URL punktów końcowych tak, aby wywoływały wersję 2, a także zaktualizowania aplikacji pod kątem zmian powodujących niezgodność.
Aktualizowanie wywołań interfejsu API z wersji 1.1 do wersji 2
Aby używać wersji 2 zamiast 1.1, musisz zaktualizować żądania w taki sposób, aby korzystały z nowych punktów końcowych w wersji 2.
Zidentyfikuj równoważne metody
Aby zaktualizować wywołania interfejsu API z wersji 1.1 do v2, musisz najpierw określić odpowiednie metody w wersji 1.1 w wersji 2.
Nazwy wszystkich usług i metod różnią się nieco między wersjami 1.1 i 2.
- Usługi
Queries
iReports
w wersji 1.1 są znane jakoqueries
iqueries.reports
w wersji 2. - W wersji 2 nazwy metod zostały zmienione w ten sposób:
Nazwa metody w wersji 1.1 Metoda w wersji v2 Queries.createquery
queries.create
Queries.deletequery
queries.delete
Queries.getquery
queries.get
Queries.listqueries
queries.list
Queries.runquery
queries.run
Reports.listreports
queries.reports.list
Zaktualizuj do nowych punktów końcowych
Gdy określisz równoważne metody, musisz zaktualizować żądania. Aby np. wywołać metodę queries.getquery
z wersją 1.1, użyj tego adresu URL:
https://www.googleapis.com/doubleclickbidmanager/v1.1/query/queryId
Aby wywołać odpowiedni sposób w wersji 2, nazywany queries.get
, zaktualizuj ten adres URL:
GET https://doubleclickbidmanager.googleapis.com/v2/queries/queryId
Jeśli do przesyłania żądań do interfejsu API używasz biblioteki klienta, użyj najnowszej wersji biblioteki klienta i zaktualizuj konfigurację tak, aby używała wersji 2.
Wprowadzanie wymaganych zmian
Wprowadzamy zmiany powodujące niezgodność w wersji 2. Zapoznaj się z podanymi niżej instrukcjami i wprowadź niezbędne zmiany, które będą dotyczyć Twojego korzystania z interfejsu Bid Manager API.
Zaktualizuj połączenia z usługą queries
- Poniższe pola w zasobie
Query
reprezentowane przez ogólne obiekty zagnieżdżone zostały zmienione w taki sposób: - Poniższe pola w zasobie
Query
reprezentowane przez obiekty ogólne listy zostały zmienione na listy tych nowych typów obiektów: - Poniższe pola zasobu
Query
, pierwotnie reprezentowane przez ciągi, są reprezentowane przez typy wyliczeniowe w wersji 2 i obejmują te zmiany:- Odpowiednik
metadata.dataRange
w wersji 2 używa teraz wyliczeniaRange
. Podczas konwertowania na tę wartość typu enum wartośćPREVIOUS_HALF_MONTH
została usunięta, a wartośćTYPE_NOT_SUPPORTED
została zmieniona naRANGE_UNSPECIFIED
. metadata.format
używa teraz wyliczeniaFormat
. W konwersjach na tę wartość wyliczonoEXCEL_CSV
, a wartośćFORMAT_UNSPECIFIED
została dodana.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.match
iparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.match
używają teraz wyliczeniaMatch
.params.options.pathQueryOptions.pathFilters[].pathMatchPosition
używa teraz wyliczeniaPathMatchPosition
. W konwersjach na tę wartość wyliczeniową dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED
.schedule.frequency
używa teraz wyliczeniaFrequency
. W konwersjach na tę wartość wyliczeniową dodano wartośćFREQUENCY_UNSPECIFIED
.params.type
używa teraz wyliczeniaReportType
. W wyniku konwersji na tę wartość typu enum wprowadzono te zmiany:- Te wartości zostały wycofane:
TYPE_ACTIVE_GRP
TYPE_AUDIENCE_PERFORMANCE
TYPE_CLIENT_SAFE
TYPE_COMSCORE_VCE
TYPE_CROSS_FEE
TYPE_CROSS_PARTNER
TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER
TYPE_ESTIMATED_CONVERSION
TYPE_FEE
TYPE_KEYWORD
TYPE_LINEAR_TV_SEARCH_LIFT
TYPE_NIELSEN_AUDIENCE_PROFILE
TYPE_NIELSEN_DAILY_REACH_BUILD
TYPE_NIELSEN_ONLINE_GLOBAL_MARKET
TYPE_PAGE_CATEGORY
TYPE_PETRA_NIELSEN_DAILY_REACH_BUILD
TYPE_PETRA_NIELSEN_ONLINE_GLOBAL_MARKET
TYPE_PIXEL_LOAD
TYPE_THIRD_PARTY_DATA_PROVIDER
TYPE_TRUEVIEW_IAR
TYPE_VERIFICATION
TYPE_YOUTUBE_VERTICAL
- Pozostałe wartości zostały zaktualizowane tak, aby lepiej odzwierciedlały ich wartości w interfejsie użytkownika:
Wartości w wersji 1.1 Odpowiednik w formacie ReportType
TYPE_NOT_SUPPORTED
REPORT_TYPE_UNSPECIFIED
TYPE_GENERAL
STANDARD
TYPE_INVENTORY_AVAILABILITY
INVENTORY_AVAILABILITY
TYPE_AUDIENCE_COMPOSITION
AUDIENCE_COMPOSITION
TYPE_ORDER_ID
FLOODLIGHT
TYPE_TRUEVIEW
YOUTUBE
TYPE_NIELSEN_SITE
GRP
TYPE_PETRA_NIELSEN_AUDIENCE_PROFILE
YOUTUBE_PROGRAMMATIC_GUARANTEED
TYPE_REACH_AND_FREQUENCY
REACH
TYPE_REACH_AUDIENCE
UNIQUE_REACH_AUDIENCE
TYPE_PATH
FULL_PATH
TYPE_PATH_ATTRIBUTION
PATH_ATTRIBUTION
- Odpowiednik
- Pola
metadata.dataRange
,reportDataStartTimeMs
ireportDataEndTimeMs
zostały zastąpione polamirange
,customStartDate
icustomEndDate
. Nowe pola daty używają obiektówDate
zamiast milisekund od Unix Epoch. Te pola zastępcze zostały przeniesione do obiektuDataRange
przypisanego do poladataRange
w obiekcieQueryMetadata
. - Pola
schedule.startTimeMs
ischedule.endTimeMs
zostały zastąpione polamistartDate
iendDate
w obiekcieQuerySchedule
. Nowe pola daty używają obiektówDate
zamiast milisekund od Unix Epoch. - Pola
metadata.running
,metadata.reportCount
,metadata.googleCloudStoragePathForLatestReport
,metadata.googleDrivePathForLatestReport
imetadata.latestReportRunTimeMs
zostały usunięte. Zamiast tego informacje o najnowszych raportach danego zapytania należy pobierać za pomocą metodyqueries.reports.list
z parametrem zapytaniaorderBy
„key.reportId desc”, który gwarantuje, że żądanie wyświetla najnowsze raporty. - Pola
kind
,timezoneCode
,metadata.locale
,params.includeInviteData
ischedule.nextRunMinuteOfDay
zostały usunięte. queries.create
nie tworzy już automatycznie zapytań po usunięciu, a parametr zapytaniaasynchronous
został usunięty. Wywołajqueries.run
poqueries.create
, aby wygenerować raporty dla nowych zapytań.- Metoda
queries.run
została zaktualizowana w następujący sposób:- Parametr zapytania
asynchronous
został zastąpiony parametrem zapytaniasynchronous
. Nowy parametr zapytania obsługuje logikę odwrotną. Jeśli nie zostanie podany, ma wartość Fałsz. Z tego względuqueries.run
domyślnie generuje raporty asynchronicznie w wersji 2 (a nie synchronicznie – w wersji 1.1). - Treść żądania została zaktualizowana, aby usunąć pole
timezoneCode
i zastąpić poladataRange
,reportDataStartTimeMs
,reportDataEndTimeMs
obiektemDataRange
przypisanym do poladataRange
. - Metoda zwraca wynikowy obiekt
Report
zamiast pustej treści odpowiedzi.
- Parametr zapytania
- Pole
kind
w treści odpowiedziqueries.list
zostało usunięte.
Zaktualizuj połączenia z usługą reports
- Poniższe pola w zasobie
Report
reprezentowane przez ogólne obiekty zagnieżdżone zostały zmienione tak, aby korzystały z tych typów obiektów: - Te pola w zasobie
Report
reprezentowane przez ogólne obiekty na liście zostały zmienione na listy tych nowych typów obiektów: - Poniższe pola zasobu
Report
pierwotnie reprezentowane przez ciągi znaków zostały zmienione, więc ich pola w wersji 2 są reprezentowane przez nowe typy wyliczeń i zawierają zmiany dotyczące dopuszczalnych wartości:metadata.status.format
używa teraz wyliczeniaFormat
. W konwersjach na tę wartość wyliczonoEXCEL_CSV
, a potem dodano wartośćFORMAT_UNSPECIFIED
.metadata.status.state
używa teraz wyliczeniaState
. Podczas konwertowania na tę wartość wyliczeniową dodano wartościQUEUED
iSTATE_UNSPECIFIED
.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.match
iparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.match
używają teraz wyliczeniaMatch
.params.options.pathQueryOptions.pathFilters[].pathMatchPosition
używa teraz wyliczeniaPathMatchPosition
. W konwersjach na tę wartość wyliczeniową dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED
.params.type
używa teraz wyliczeniaReportType
. W kontekście tej wartości wprowadzono wiele zmian, które znajdziesz w poprzedniej sekcji dotyczącej aktualizowania wywołań usług zapytań.
- Pola
metadata.reportDataStartTimeMs
imetadata.reportDataEndTimeMs
zostały zastąpione polamireportDataStartDate
ireportDataEndDate
w obiekcieReportMetadata
. Nowe pola używają obiektówDate
zamiast milisekund od czasu uniksowego. - Ciąg
metadata.status.finishTimeMs
został zastąpiony polemfinishTime
w obiekcieReportStatus
. To nowe pole czasu zawiera sygnaturę czasową w formacie RFC3339 UTC "Zulu, a nie w milisekundach od czasu Unix Epoch. - Pola
metadata.status.failure
iparams.includeInviteData
zostały usunięte. - Pole
kind
w treści odpowiedzireports.list
zostało usunięte.
Aktualizacja logiki obsługi błędów
Komunikaty o błędach w interfejsie API zostały zaktualizowane w wersji 2. Te nowe komunikaty o błędach są bardziej szczegółowe. W niektórych przypadkach zawierają też informacje o wartościach w żądaniu API, które powodują wystąpienie błędu. Jeśli dotychczasowa logika obsługi błędów wymaga konkretnego tekstu komunikatu o błędzie, uogólnij obsługę błędów przed przejściem na wersję 2.